Quickchat AI сохраняет все разговоры на всех каналах. Эти endpoints позволяют получать список разговоров и их данные.
Quickchat AI автоматически сохраняет и анализирует каждый разговор AI-агента на всех каналах: виджет, Slack, WhatsApp, Telegram и других. API разговоров предоставляет программный доступ к этим данным для собственных панелей мониторинга, аналитических процессов, CRM-сценариев и интеграции с существующими средствами бизнес-аналитики.
Каждый разговор включает анализ AI: определение тональности, классификацию тем, отслеживание решения вопроса и автоматическую отметку разговоров, которым может понадобиться внимание человека. Вместе с полной историей сообщений, отслеживанием переходов по ссылкам и пользовательскими метаданными это помогает понять взаимодействие посетителей с AI-агентом.
Данные разговоров распределены по нескольким endpoints:
- Список разговоров: основные сведения, данные посетителя, статус. Для панелей, обзоров и запросов с фильтрацией
- Детали разговора: полная информация, включая
unified_analysis(аналитику AI) иclient_metadata - События разговора: полная история сообщений, отслеживаемые переходы и записи журнала
- Получение и запись метаданных: пользовательские данные в виде пар ключ-значение (см. Метаданные разговора)
Список разговоров
Заголовок раздела «Список разговоров»GET https://app.quickchat.ai/v1/api_core/conversations
Параметры запроса
| Параметр | Описание |
|---|---|
limit целое число | Число элементов на странице |
offset целое число | Число пропускаемых элементов |
query строка | Поиск по порядковому номеру, UUID или тексту сообщения |
assignee_type строка | "ai_assistant", "human_operator" или "unassigned" |
source строка | "widget", "slack", "telegram", "whatsapp" и т. д. |
resolution_status строка | "open" или "resolved" |
created_timestamp_start_date дата и время | Фильтр по дате создания (начало) |
created_timestamp_end_date дата и время | Фильтр по дате создания (конец) |
last_message_at_start_date дата и время | Фильтр по дате последнего сообщения (начало) |
last_message_at_end_date дата и время | Фильтр по дате последнего сообщения (конец) |
most_frequent_language строка | Фильтр по определённому языку |
order строка | "desc" (по умолчанию, сначала новые) или "asc" (сначала старые). Возрастание предназначено для обхода вперёд от известного разговора, поэтому сочетайте его с last_message_at_start_date |
curl 'https://app.quickchat.ai/v1/api_core/conversations?limit=10&resolution_status=open' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10, "resolution_status": "open"},)data = response.json()Ответ 200 OK
{ "items": [ { "id": "conv-uuid-1234", "ord": 42, "created_at": "2026-01-15T10:30:00Z", "last_message_at": "2026-01-15T10:35:00Z", "title": "Return policy question", "source": "widget", "terminated": false, "resolution_status": "open", "has_unread_messages": true, "supports_inbox_control": true, "last_message_content": "What is your return policy?", "most_frequent_language": "en", "assignee": { "type": "ai_assistant" }, "visitor_name": "John", "visitor_email": "john@example.com", "visitor_phone_number": null, "visitor_label": null } ], "offset": 0, "limit": 10, "count": 42}| Поле | Описание |
|---|---|
id строка | UUID разговора |
ord целое число | Последовательный номер разговора |
created_at строка | Время создания разговора |
last_message_at строка | Время последнего сообщения |
title строка | Заголовок разговора, созданный AI |
source строка | Канал, из которого пришёл разговор (например, "widget", "slack", "whatsapp") |
terminated логическое значение | Завершён ли разговор |
resolution_status строка | "open" или "resolved" |
has_unread_messages логическое значение | Есть ли непрочитанные сообщения |
supports_inbox_control логическое значение | Поддерживает ли источник управление во Входящих (назначение, передачу) |
last_message_content строка | Содержимое последнего сообщения разговора |
most_frequent_language строка | Наиболее часто определяемый язык разговора |
assignee объект | Текущий исполнитель (type: "ai_assistant", "human_operator" или "unassigned") |
visitor_name строка или null | Имя посетителя (из формы перед чатом или профиля канала) |
visitor_email строка или null | Email посетителя |
visitor_phone_number строка или null | Телефон посетителя |
visitor_label строка или null | Пользовательская метка посетителя |
Получение деталей разговора
Заголовок раздела «Получение деталей разговора»GET https://app.quickchat.ai/v1/api_core/conversations/{conversation_id}/
curl https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/ \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Ответ 200 OK
{ "id": "conv-uuid-1234", "ord": 42, "created_at": "2026-01-15T10:30:00Z", "last_message_at": "2026-01-15T10:35:00Z", "title": "Return policy question", "source": "widget", "terminated": false, "resolution_status": "open", "has_unread_messages": true, "supports_inbox_control": true, "last_message_content": "What is your return policy?", "most_frequent_language": "en", "assignee": { "type": "ai_assistant" }, "url": null, "client_metadata": {"userId": 12}, "last_visitor_message_at": "2026-01-15T10:34:00Z", "unified_analysis": { "sentiment": "neutral", "resolution_status": "open", "topic": "Return policy", "is_flagged": false, "flag_reason": null }, "visitor_name": "John", "visitor_email": "john@example.com", "visitor_phone_number": null, "visitor_label": null}Ответ с деталями содержит все поля ответа со списком, а также:
| Поле | Описание |
|---|---|
url строка или null | URL страницы, где начался разговор (только виджет) |
client_metadata объект или null | Пользовательские пары ключ-значение, прикреплённые к разговору |
last_visitor_message_at строка | Время последнего сообщения посетителя |
unified_analysis объект или null | Анализ разговора, выполненный AI (см. ниже) |
Поля unified_analysis:
| Поле | Описание |
|---|---|
sentiment строка | Определённая AI тональность (например, "positive", "neutral", "negative") |
resolution_status строка | Оценка решения вопроса AI (может отличаться от верхнеуровневого resolution_status) |
topic строка | Тема разговора, определённая AI |
is_flagged логическое значение | Отметил ли AI разговор для проверки человеком |
flag_reason строка или null | Причина отметки разговора |
Верхнеуровневое поле resolution_status ("open" или "resolved") является основным статусом, заданным вручную или правилами автоматизации.
unified_analysis.resolution_status вычисляется анализом AI и может отличаться. Например, AI может считать вопрос решённым по содержимому разговора, хотя основной статус всё ещё "open". Используйте верхнеуровневое поле для фильтрации и рабочих процессов, а unified_analysis для аналитики и выводов.
Получение событий разговора
Заголовок раздела «Получение событий разговора»Получите все события разговора: сообщения, отслеживаемые ссылки и журналы.
Права: read_allGET https://app.quickchat.ai/v1/api_core/conversations/{conversation_id}/events/
Параметры запроса
| Параметр | Описание |
|---|---|
limit целое число | Число элементов на странице |
offset целое число | Число пропускаемых элементов |
curl 'https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/events/?limit=20' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/events/", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 20},)data = response.json()Ответ 200 OK
{ "items": [ { "type": "message", "data": { "id": "msg-uuid-001", "ord": 1, "created_at": "2026-01-15T10:30:00Z", "content": "Hello! How can I help you today?", "author": "ai_assistant", "handoff_state": null, "message_insights": null, "feedback": null, "client_metadata": null, "sources_generated": [], "is_welcome": true, "attachments": [] } }, { "type": "message", "data": { "id": "msg-uuid-002", "ord": 2, "created_at": "2026-01-15T10:31:00Z", "content": "What is your return policy?", "author": "visitor", "handoff_state": null, "message_insights": null, "feedback": null, "client_metadata": null, "sources_generated": [], "is_welcome": false, "attachments": [] } } ], "offset": 0, "limit": 20, "count": 2}Типы событий: message, tracked_link, log
Типы авторов: ai_assistant, visitor, human_operator
| Поле | Описание |
|---|---|
type строка | Тип события: "message", "tracked_link" или "log" |
data.id строка | Уникальный идентификатор сообщения |
data.ord целое число | Последовательный номер сообщения |
data.created_at строка | Время события |
data.content строка | Содержимое сообщения |
data.author строка | "ai_assistant", "visitor" или "human_operator" |
data.handoff_state строка или null | Состояние передачи, если применимо |
data.message_insights объект или null | Аналитика сообщения, созданная AI |
data.feedback объект или null | Отзыв пользователя о сообщении |
data.client_metadata объект или null | Пользовательские метаданные сообщения |
data.sources_generated массив | Статьи Базы знаний, использованные AI при создании ответа |
data.is_welcome логическое значение | Является ли сообщение приветственным |
data.attachments массив | Прикреплённые файлы |