Quickchat AI зберігає кожну розмову в усіх каналах. Ці ендпоїнти дають змогу отримувати список розмов і їхні дані.
Quickchat AI автоматично зберігає й аналізує всі розмови AI-агента в усіх каналах: віджеті, Slack, WhatsApp, Telegram та інших. API розмов надає програмний доступ до цих даних для власних панелей, аналітичних конвеєрів, процесів CRM або інтеграції з вашими інструментами бізнес-аналітики.
Кожна розмова містить результати аналізу AI: визначення тональності, класифікацію тем, відстеження вирішення й автоматичне позначення розмов, які можуть потребувати уваги людини. Разом із повною історією повідомлень, переходами за посиланнями та власними метаданими це дає змогу зрозуміти, як відвідувачі взаємодіють з AI-агентом.
Дані розмов доступні через кілька ендпоїнтів:
- Список розмов: основні відомості, дані відвідувача, статус. Використовуйте для панелей, оглядів і запитів із фільтрами
- Деталі розмови: повна інформація, зокрема
unified_analysis(висновки AI) іclient_metadata - Події розмови: повна історія повідомлень, відстежувані переходи за посиланнями й записи журналу
- Отримання та запис метаданих: власні пари ключ-значення, прикріплені до розмов (див. Метадані розмови)
Список розмов
Section titled “Список розмов”GET https://app.quickchat.ai/v1/api_core/conversations
Параметри запиту
| Параметр | Опис |
|---|---|
limit integer | Кількість елементів на сторінці |
offset integer | Кількість елементів, які слід пропустити |
query string | Пошук за номером розмови, UUID або текстом повідомлення |
assignee_type string | "ai_assistant", "human_operator" або "unassigned" |
source string | "widget", "slack", "telegram", "whatsapp" тощо |
resolution_status string | "open" або "resolved" |
created_timestamp_start_date datetime | Фільтр за датою створення (початок) |
created_timestamp_end_date datetime | Фільтр за датою створення (кінець) |
last_message_at_start_date datetime | Фільтр за датою останнього повідомлення (початок) |
last_message_at_end_date datetime | Фільтр за датою останнього повідомлення (кінець) |
most_frequent_language string | Фільтр за визначеною мовою |
order string | "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 string | UUID розмови |
ord integer | Порядковий номер розмови |
created_at string | Час створення розмови |
last_message_at string | Час найновішого повідомлення |
title string | Назва розмови, згенерована AI |
source string | Канал, у якому почалася розмова (наприклад, "widget", "slack", "whatsapp") |
terminated boolean | Чи завершилася розмова |
resolution_status string | "open" або "resolved" |
has_unread_messages boolean | Чи є непрочитані повідомлення |
supports_inbox_control boolean | Чи підтримує джерело розмови керування через Вхідні (призначення, передавання) |
last_message_content string | Вміст останнього повідомлення в розмові |
most_frequent_language string | Мова, яку найчастіше визначали в розмові |
assignee object | Поточний виконавець (type: "ai_assistant", "human_operator" або "unassigned") |
visitor_name string or null | Ім’я відвідувача (із форми перед чатом або профілю каналу) |
visitor_email string or null | Email відвідувача |
visitor_phone_number string or null | Номер телефону відвідувача |
visitor_label string or null | Власна мітка, призначена відвідувачу |
Деталі розмови
Section titled “Деталі розмови”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 string or null | URL сторінки, де почалася розмова (лише віджет) |
client_metadata object or null | Власні пари ключ-значення, прикріплені до розмови |
last_visitor_message_at string | Час останнього повідомлення відвідувача |
unified_analysis object or null | Аналіз розмови, створений AI (див. нижче) |
Поля unified_analysis:
| Поле | Опис |
|---|---|
sentiment string | Тональність розмови, визначена AI (наприклад, "positive", "neutral", "negative") |
resolution_status string | Статус вирішення за оцінкою AI (може відрізнятися від resolution_status верхнього рівня) |
topic string | Тема розмови, визначена AI |
is_flagged boolean | Чи позначив AI розмову для перегляду людиною |
flag_reason string or null | Причина позначення розмови |
Поле resolution_status верхнього рівня ("open" або "resolved") є основним статусом, який задається вручну або правилами автоматизації.
Значення unified_analysis.resolution_status обчислює AI, тому воно може відрізнятися. Наприклад, AI може визначити розмову як вирішену за її вмістом, хоча статус верхнього рівня залишається "open". Використовуйте поле верхнього рівня для фільтрів і робочих процесів, а unified_analysis для аналітики та висновків.
Події розмови
Section titled “Події розмови”Отримайте всі події розмови: повідомлення, відстежувані посилання й записи журналу.
Область доступу: read_allGET https://app.quickchat.ai/v1/api_core/conversations/{conversation_id}/events/
Параметри запиту
| Параметр | Опис |
|---|---|
limit integer | Кількість елементів на сторінці |
offset integer | Кількість елементів, які слід пропустити |
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 string | Тип події: "message", "tracked_link" або "log" |
data.id string | Унікальний ідентифікатор повідомлення |
data.ord integer | Порядковий номер повідомлення |
data.created_at string | Час події |
data.content string | Вміст повідомлення |
data.author string | "ai_assistant", "visitor" або "human_operator" |
data.handoff_state string or null | Стан передавання, якщо застосовно |
data.message_insights object or null | Висновки AI щодо повідомлення |
data.feedback object or null | Відгук користувача про повідомлення |
data.client_metadata object or null | Власні метадані повідомлення |
data.sources_generated array | Статті Бази знань, використані AI для формування відповіді |
data.is_welcome boolean | Чи є це вітальним повідомленням |
data.attachments array | Вкладення файлів |