Информация |
---|
В сценарии рецепте рассылки в WhatsApp с последующим стартом ботов используется два независимых друг от друга сервиса:
Данный рецепт объясняет как после отправки сообщений связать эти самые сообщения и их идентификаторы с чатами, которые они запустили. |
Оглавление | ||
---|---|---|
|
Шаг 1 - Отправка рассылки
WhatsAppДля отправки сообщения используем следующий метод:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
curl --location 'https://notify.twin24.ai/notify/api/v1/messages' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {auth_token} \ --data '{ "messages": [ { "channels": { "chat": { "chatId": "2daadc7bbce7d22e-2b7cdde6-4fa34427-822fb391-6ce3b2337f94ebbdfda44de6", "botId": "913d39f6bce7d22e-066ddde6-4bee4427-b6f7b391-c3fdeb321c50ebbdfda44de6", "messengerType": "WHATSAPPTELEGRAM", "chatSessionName": "Название сессииbce7d22e-dde6-4427-b391-ebbdfda44de6", "provider": "TWIN", "text": "bce7d22e-dde6-4427-b391-ebbdfda44de6" } }, "callbackUrl": "http://example.com", "callbackData": "123", "destinations": [ { "variables": { "name": "Иван", "age": "23" }, "phonemessengerUserId": "74992868344123456789" } ] } ] }' |
Предупреждение | ||
---|---|---|
| ||
В полях chatSessionName и text указываем идентификатор во внешней системе для последующего удобного поиска и маппинга данных. |
Примечание | ||
---|---|---|
| ||
С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье - [Рассылки] Создание рассылки (массовая отправка сообщений). |
В ответ вы получите массив со всеми кандидатами которые были в рассылке:
Информация |
---|
Объекты с идентификаторами в ответе будут идти ровно в таком же порядке, как были отправлены кандидаты в destinations в запросе |
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[ { "id": "a06bc3d9bce7d22e-7980dde6-42834427-a5ecb391-77fb8133c50bebbdfda44de6", "bulkId": "b973b50ebce7d22e-988adde6-4cb94427-ad92b391-93d7cbe4d8d9ebbdfda44de6", "groupId": "fb4c65dcbce7d22e-993cdde6-430f4427-a68db391-8fa1c149697febbdfda44de6", "flowId": "83f5d058bce7d22e-8ed8dde6-47f74427-bddbb391-dd69a9b249a8ebbdfda44de6", "status": "CREATED", "channel": "CHAT", "error": null } ] |
a06bc3d9-7980-4283-a5ec-77fb8133c50b
Шаг 2 - Используем метод статистики для получения информации по рассылке
Метод: GET
Authorization: Bearer Token
URL: https://analyse.twin24.ai/api/v1/statistics/messaging/messages
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
curl --location 'https://analyse.twin24.ai/analyse/api/v1/statisticssearch/messaging/messages?limit=1000&from=2023-11-22T12%3A00%3A00%2B00%3A00&to=2023-11-22T23%3A00%3A00%2B00%3A00&pages=0&channel=CHAT&fields=id%2CproviderMessageId%2Cstatuskeyword=%22bce7d22e-dde6-4427-b391-ebbdfda44de6%22' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {auth_token}' \ |
Предупреждение | ||
---|---|---|
| ||
Обязательно использовать поля "id","providerMessageId" и "status"В keyword указываем идентификатор, который на прошлом шаге прокинули в chatSessionName и text |
Примечание | ||
---|---|---|
| ||
С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье - [Рассылки] Получение статистики по рассылке. |
Ответ:
В полученном ответе мы получаем результат рассылки.
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "count": 3, "items": [ { "id": "a06bc3d9-7980-4283-a5ec-77fb8133c50b", "providerMessageId": "15d2652c-ada6-4505-9dee-81ce77b528dc", "status": "DELIVERED" }, { "id": "a54b4351-ada6-4b6d-a84c-21900e22b77f", "providerMessageId": "53129a1e-0bd7-4be2-bfeb-ba51dac34e4d", "status": "DELIVERED" }, { "id": "de1b45f8-e06c-4169-8140-55b4f81841d6", "providerMessageId": "a31bfabe-7a1e-4d79-97e0-d2b211c876f5", "status": "PENDING" } ] } |
В полученном ответе нас интересует поле providerMessageId, которое содержит идентификатор начатой чат сессии.
Теперь в нашу таблицу с идентификаторами сообщений можно добавить соответствующий идентификатор чат сессии.
chatId
a06bc3d9-7980-4283-a5ec-77fb8133c50b
Шаг 3 - Используем метод получения статистики по чат сессиям
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
curl --location 'https://analyse.twin24.ai/api/v1/statistics/chat/sessions?from=2023-11-22T13%3A00%3A00%2B07%3A00&to=2023-11-22T15%3A00%3A00%2B00%3A00&withoutCount=false&withoutItems=false&limit=1000&page=0&chatId=15d2652c-ada6-4505-9dee-81ce77b528dc&fields=id%2Cname%2CclientId%2CmessengerType%2Cnps' \ --header 'Authorization: Bearer {auth_token} |
Примечание |
---|
С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье - [Рассылки] Получение статистики по диалогам, запущенным рассылкой |
Ответ:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "count": 3, "items": [ { "id": "15d2652c-ada6-4505-9dee-81ce77b528dc", "name": "TWIN TEST", "clientId": "6ca5c47d-0a4c-4ee3-b4a9-5015b9ec0073", "dialogResultsFromBotJson": { "nps": "Тест", "confirmation": "Отказ", "initialVariables": [] } }, { "id": "0efdab28-c7ce-4dc1-b528-138f0aeceb03", "name": "TWIN TEST", "clientId": "06bf70f8-5ea0-47ec-9744-6cc120272d20", "dialogResultsFromBotJson": { "nps": "Тест", "confirmation": "Отказ", "initialVariables": [] } }, { "id": "a9928f86-42c4-41e0-8aac-921da6fd4dd2", "name": "TWIN TEST", "clientId": "a9928f86-42c4-41e0-8aac-921da6fd4dd2", "dialogResultsFromBotJson": { "nps": "Тест", "confirmation": "Отказ", "initialVariables": [] } } ] } |
Теперь мы можем добавить результат общения бота в конкретной чат сессии и связать его со стартовым сообщением, которое отправили в самом начале.
messageId | chatId | result |
---|---|---|
a06bc3d9-7980-4283-a5ec-77fb8133c50b | 15d2652c-ada6-4505-9dee-81ce77b528dc | Отказ |
Подсказка | ||
---|---|---|
| ||
Используйте поле fields для фильтрации значений. |
Вывод:
Используя вышеперечисленные методы мы установили, что для сообщения с id a06bc3d9-7980-4283-a5ec-77fb8133c50b стартовала сессия с id 15d2652c-ada6-4505-9dee-81ce77b528dc, в результаты которой было записано значение "Отказ".
Используя данную инструкцию можно идентифицировать каждое сообщение из рассылки и получить любую информацию о её результатах, статусе и т.д.
...