Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация

В данном рецепте используется несколько независимых сервисов TWIN:

1) сервис отправки рассылок в WhatsApp;

сценарии рассылки в WhatsApp с последующим стартом ботов используется два независимых друг от друга сервиса:

  • Сервис нотификаций(рассылок) - отправка первого сообщения
  • Сервис чатов - дальнейший сценарий общения бота

Данный рецепт объясняет как после отправки сообщений связать эти самые сообщения и их идентификаторы с чатами, которые они запустили. 2) сервис аналитики.

Шаг 1 - Отправка рассылки WhatsApp

Для отправки сообщения используем следующий метод:

Метод: POST

Authorization: Bearer Token

URL: https://notify.twin24.ai/api/v1/messages

Блок кода
languageyml
themeDJango
titlecURL
curl --location 'https://notify.twin24.ai/api/v1/messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {auth_token} \
--data '{
    "messages": [
        {
            "channels": {
                "chat": {
                    "chatId": "2daadc7b-2b7c-4fa3-822f-6ce3b2337f94",
                    "botId": "913d39f6-066d-4bee-b6f7-c3fdeb321c50",
                    "messengerType": "WHATSAPP",
                    "chatSessionName": "Название сессии",
                    "text": "Текст сообщения",
 
                    "provider": "TWIN"
                }
            },
            "callbackUrl": "http://example.com",
            "callbackData": "123",
            "destinations": [
                {
                    "variables": {
                        "name": "Иван",
                        "age": "23"
                    },
                    "phone": "74992868344",
                    "messengerUserId": "74992868344"
                }
            ]
        }
    ]
}'
Примечание
titleПодробнее

С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье - [WhatsApp] Создание рассылки (массовая отправка сообщений)

В ответ вы получите массив со всеми кандидатами которые были в рассылке:

Информация

Объекты с идентификаторами в ответе будут идти ровно в таком же порядке, как были отправлены кандидаты в destinations в запросе


Блок кода
languageyml
themeDJango
titleОтвет на запрос
linenumberstrue
[
    {
        "id": "a06bc3d9-7980-4283-a5ec-77fb8133c50b",
        "bulkId": "b973b50e-988a-4cb9-ad92-93d7cbe4d8d9",
        "groupId": "fb4c65dc-993c-430f-a68d-8fa1c149697f",
        "flowId": "83f5d058-8ed8-47f7-bddb-dd69a9b249a8",
        "status": "CREATED",
        "channel": "CHAT",
        "error": null
    }
]

Сохраняем ID отправленных сообщений

idmessageId
a06bc3d9-7980-4283-a5ec-77fb8133c50b

Шаг 2 - Используем метод статистики для получения информации по рассылке

Метод: GET

Authorization: Bearer Token

URL: https://analyse.twin24.ai/api/v1/statistics/messaging/messages

Блок кода
languageyml
themeDJango
titlecURL
curl --location 'https://analyse.twin24.ai/api/v1/statistics/messaging/messages?from=2023-11-22T12%3A00%3A00%2B00%3A00&to=2023-11-22T23%3A00%3A00%2B00%3A00&pages=0&channel=CHAT&fields=id%2CproviderMessageId%2Cstatus' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {auth_token}' \
Предупреждение
titleТребование

Обязательно использовать поля "id","providerMessageId" и "status"

Примечание
titleПодробнее

С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье  - [WhatsApp] Получение статистики по рассылке

Ответ:

Блок кода
languageyml
themeDJango
titleОтвет на запрос
{
    "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

соответствующее ранее сохраненному id

, которое содержит идентификатор начатой чат сессии. 
Теперь в нашу таблицу с идентификаторами сообщений можно добавить соответствующий идентификатор чат сессии. 

messageId
chatId
id
providerMessageId
a06bc3d9-7980-4283-a5ec-77fb8133c50b
15d2652c-ada6-4505-9dee-81ce77b528dc

Шаг 3 - Используем метод получения статистики по чат сессиям

Метод: GET

Authorization: Bearer Token

URL: https://analyse.twin24.ai/api/v1/statistics/chat/sessions

Блок кода
languageyml
themeDJango
titlecURL
linenumberstrue
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}
Примечание

С подробной информацией по составлению данного запроса можно ознакомиться в нашей статье  - [WhatsApp] Получение статистики по диалогам, запущенным рассылкой

Ответ:

Блок кода
languageyml
themeDJango
linenumberstrue
{
    "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
resultid сообщения
providerMessageId
id чат сессии
a06bc3d9-7980-4283-a5ec-77fb8133c50b
15d2652c-ada6-4505-9dee-81ce77b528dc15d2652c-ada6-4505-9dee-81ce77b528dc
Отказ
Подсказка
titleСовет

Используйте поле fields для фильтрации значений.

Вывод:
Используя вышеперечисленные методы мы установили, что для сообщения с id a06bc3d9-7980-4283-a5ec-77fb8133c50b стартовала сессия с id 15d2652c-ada6-4505-9dee-81ce77b528dc, в результаты который было записано значение "Отказ".
Используя данную инструкцию можно идентифицировать каждое сообщение из рассылки и получить любую информацию о её результатах, статусе и т.д.