Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 6 Следующий »

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

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

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

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

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

Метод: POST

Authorization: Bearer Token

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

cURL
curl --location 'https://twin24.ai/notify/api/v1/messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {auth_token} \
--data '{
    "messages": [
        {
            "channels": {
                "chat": {
                    "chatId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "botId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "messengerType": "TELEGRAM",
                    "chatSessionName": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "provider": "TWIN",
					"text": "bce7d22e-dde6-4427-b391-ebbdfda44de6"
                }
            },
            "destinations": [
                {
                    "variables": {
                        "name": "Иван",
                        "age": "23"
                    },
                    "messengerUserId": "123456789"
                }
            ]
        }
    ]
}'

Требование

В полях chatSessionName и text указываем идентификатор во внешней системе для последующего удобного поиска и маппинга данных. 

Подробнее

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

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

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

Ответ на запрос
[
    {
        "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "bulkId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "groupId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "flowId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "status": "CREATED",
        "channel": "CHAT",
        "error": null
    }
]

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

Метод: GET

Authorization: Bearer Token

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

cURL
curl --location 'https://twin24.ai/analyse/api/v1/search/messaging/messages?limit=1000&from=2023-11-22T12%3A00%3A00%2B00%3A00&to=2023-11-22T23%3A00%3A00%2B00%3A00&pages=0&channel=CHAT&keyword=%22bce7d22e-dde6-4427-b391-ebbdfda44de6%22' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {auth_token}' \

Требование

В keyword указываем идентификатор, который на прошлом шаге прокинули в chatSessionName и text

УКАЗЫВАЕМ В КАВЫЧКАХ "

Подробнее

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

Ответ:

В полученном ответе получаем результат рассылки. 

Ответ на запрос
{
    "count": 2,
    "items": [
        {
            "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "bulkId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "groupId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "flowId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "taskId": null,
            "status": "READ",
            "statusRu": "Сообщение прочитано.",
            "statusEn": null,
            "statusCode": 11,
            "companyId": 1,
            "companyName": "Компания",
            "channel": "CHAT",
            "destination": "74992868344",
            "from": null,
            "text": null,
            "price": "0.000000",
            "network": null,
            "mccMnc": null,
            "templateId": null,
            "templateName": null,
            "variables": "null",
            "partCount": 1,
            "tracks": [],
            "read": null,
            "createdAt": "2023-10-31T04:00:33.135139Z",
            "sentAt": "2023-10-31T04:01:55.587763Z",
            "deliveredAt": "2023-10-31T04:02:02.873465Z",
            "sendAt": "2023-10-31T04:00:33.135139Z",
            "expiredAt": null,
            "billedAt": "2023-10-31T04:02:02.876837Z",
            "providerMessageId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "resellerPrice": "0.000000",
            "resellerCompanyId": 1,
            "resellerCompanyName": "1 | Компания"
        },
        {
            "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "bulkId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "groupId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "flowId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "taskId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "status": "READ",
            "statusRu": "Сообщение прочитано.",
            "statusEn": null,
            "statusCode": 11,
            "companyId": 1,
            "companyName": "Компания",
            "channel": "CHAT",
            "destination": "74992868344",
            "from": null,
            "text": null,
            "price": "0.000000",
            "network": null,
            "mccMnc": null,
            "templateId": null,
            "templateName": null,
            "variables": "{\"phoneNo\": 74992868344, \"fullName\": \"Иванов Иван Иванович\"}",
            "partCount": 1,
            "tracks": [],
            "read": null,
            "createdAt": "2023-10-31T06:49:45.337901Z",
            "sentAt": "2023-10-31T06:49:49.642247Z",
            "deliveredAt": "2023-10-31T06:49:55.432778Z",
            "sendAt": "2023-10-31T06:49:45.337901Z",
            "expiredAt": null,
            "billedAt": "2023-10-31T06:49:55.439442Z",
            "providerMessageId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "resellerPrice": "0.000000",
            "resellerCompanyId": 1,
            "resellerCompanyName": "1 | Компания"
        }
    ]
}

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

Метод: GET

Authorization: Bearer Token

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

cURL
curl --location 'https://twin24.ai/analyse/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=bce7d22e-dde6-4427-b391-ebbdfda44de6&keyword=bce7d22e-dde6-4427-b391-ebbdfda44de6' \
--header 'Authorization: Bearer {auth_token}

Требование

В keyword указываем идентификатор, который на первом шаге прокинули в chatSessionName и text

УКАЗЫВАЕМ БЕЗ КАВЫЧЕК

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

Ответ:

В полученном ответе получаем результат чат-сессий, которые были запущены рассылкой. 

{
    "count": 1,
    "items": [
        {
            "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "dialogLink": "https://twin24.ai/app/chats/bce7d22e-dde6-4427-b391-ebbdfda44de6/dialogs?sessionId=bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "name": "dialogName",
            "chatId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "chatName": "Имя Чата",
            "markedAsSpam": "Нет",
            "operatorId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "operatorName": "Имя оператора",
            "operatorAssignedAt": null,
            "previousOperators": [],
            "firstOperatorName": null,
            "firstOperatorAssignedAt": null,
            "previousOperatorsAsString": null,
            "botName": "Имя Бота",
            "clientId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
            "clientExternalId": null,
            "clientIp": null,
            "userAgent": null,
            "messengerType": "WHATSAPP",
            "status": "INACTIVE",
            "startedAt": "2023-10-31 01:00:40",
            "closedAt": "2023-10-31 11:01:00",
            "operatorFirstMessageCreatedAt": null,
            "operatorLastMessageCreatedAt": null,
            "botLastMessageCreatedAt": "2023-10-31 01:00:40",
            "lastMessageCreatedAt": "2023-10-31 01:00:40",
            "clientLastMessageCreatedAt": "2023-10-31 01:00:40",
            "clientOnlineAt": null,
            "clientOfflineAt": null,
            "referer": "",
            "price": "0.000000",
            "messages": [
                {
                    "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "authorId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "authorName": null,
                    "authorType": "CLIENT",
                    "type": "REGULAR",
                    "price": "0.000000",
                    "body": "Ответ Клиента",
                    "attachments": [],
                    "answers": [],
                    "createdAt": "2023-10-31 01:00:40"
                },
                {
                    "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "authorId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
                    "authorName": "Имя Чата",
                    "authorType": "BOT",
                    "type": "REGULAR",
                    "price": "0.000000",
                    "body": "Вопрос Бота",
                    "attachments": [],
                    "answers": [
                        "Вариант ответа 1",
                        "Вариант ответа 2",
                        "Вариант ответа 3"
                    ],
                    "createdAt": "2023-10-31 01:00:40"
                }
            ],
            "messagesAsString": "CLIENT: Ответ Клиента\nBOT: Вопрос Бота\n",
            "operatorMessageCount": 0,
            "botMessageCount": 1,
            "clientMessageCount": 1,
            "messageCount": 2,
            "dialogResultsFromBot": "текст подтверждения",
            "dialogResultsFromBotJson": {
                "nps": "текст nps",
                "confirmation": "текст подтверждения",
                "Var": "значение произвольного результата",
                "markers": [
                    "1",
                    "2"
                ],
                "initialVariables": []
            },
            "dialogResultsFromOperator": "",
            "nps": "текст nps",
            "csi": "",
            "fcr": "",
            "whatsappPhone": "74992868344",
            "markers": "1,2",
            "rating": null,
            "closedBy": null,
            "timerFirstAnswer": 0,
            "timerNextAnswers": 0,
            "operatorFirstAnswer": 0,
            "operatorNextAnswers": 0
        }
    ]
}

Шаг 4 - Связь чат-сессий и рассылок

Связать рассылку и запущенную ей чат-сессию можно по следующим полям:

providerMessageId в рассылках == id в чат-сессиях

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

Варианты экспорта данных

Данные можно получить 2мя способами:

  1. В json формате (как выше)
  2. В excel/csv файле (подробнее в описаниях методов по получению статистики)
  • Нет меток