Рассылки в Edna Pulse
В этой статье вы узнаете, как запустить рассылки через канал Edna Pulse.Первым делом перед созданием Слота необходимо создать Канал Проекта Edna Pulse. Подробнее об этом: Edna Pulse
Создание шаблона рассылки
Шаблоны — это сообщения, с помощью которых Бот в WhatsApp стартует Чат с Собеседником. Чтобы произвести рассылку по Собеседникам в WhatsApp, необходимо создать шаблон, отправить на согласование, в случае неуспеха переформулировать и отправить новый шаблон, а в случае согласования инициировать рассылку с помощью Слота Notification.Подробнее: https://docs.edna.ru/kb/template-types/
Создание слота
После создания шаблона рассылки, создайте Слот Notification и заполните поля Слота на всех вкладках.
Вкладка General
Вкладка General содержит основные настройки Слота.
Вид вкладки:
Элементы и поля вкладки:
Name* — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.
Destination channel* — Конечный канал, через который будет осуществляться рассылка.
Chatbot webhook — вебхук, на который Агент будет получать Запрос на рассылку. Значение появится в поле после сохранения и повторного открытия Слота. Вебхук начнет работать после Обучение Агента.
Кнопка копирования вебхука.
По нажатию кнопки адрес вебхука копируется в буфер обмена.
Кнопка становится доступной к нажатию, только когда поле Chatbot webhook заполнено значением вебхука.
Кнопка GENERATE NEW WEBHOOK.
Кнопка становится доступной к нажатию, только когда поле Chatbot webhook заполнено значением вебхука.
По нажатию кнопки происходит генерация нового вебхука.
Изменения после перегенерации вебхука вступают в силу после переобучения Агента.
Вкладка Incoming Data
Вкладка Incoming Data предназначена для настроек парсинга тела Запрос на рассылку для последующего использования полученных данных в Сценарий агента.
Вид вкладки:
Поля вкладки:
PARSE REQUEST BODY — массив пар Context key — Request key.
Context key — имя Контекстная переменная для парсинга;
Request key — ключ из тела Запрос на рассылку, значение которого будет записано в Context key либо Выражение.
Важно: обращение к ключу объекта, если его имя совпадает с именем Зарезервированные методы объектов происходит через квадратные скобки и кавычки.
Пример: {{ data["keys"] }}
Вкладка Destination
На вкладке Destination происходит настройка отправки рассылочных сообщений в выбранный на вкладке General Конечный канал, исходя из его требований.
Вид вкладки:
Поля вкладки:
Cascade id* — значение поля подтягивается из поля Сhannel webhook Token из настроек Канал Проекта. Подробнее о настройке Канал Проекта: Edna Pulse.
Content* — JSON-объект с содержимым рассылки.
Формат (красным курсивом выделены опциональные элементы, которые необходимо добавлять только при наличии соответствующего контента в шаблоне рассылки): { "whatsappContent": { "contentType": "TEXT", "header": { "headerType": "<тип заголовка (видео/изображение/документ)>", "text": "<текст заголовка>", "headerExampleMediaUrl": "<ссылка на пример файла заголовка>" }, "text": "Текст рассылки", "footer": { "text": "<текст подписи>" }, "keyboard": { "rows": [ { "buttons": [ { "text": "<текст кнопки>", "buttonType": "<URL (для кнопки-ссылки)>", "url": "" }, { "text": "", "buttonType": "", "phone": "" } ] } ] } } }
Необходимо прописывать данные согласованного шаблона рассылки, в противном случае адресат не получит рассылку (подробнее: Notification fail).
Запуск рассылки
После того, как Канал Проекта создан, шаблон рассылки создан и согласован, а Слот Notification настроен, можно запускать рассылку. Для этого необходимо отправит запрос на рассылку.
Формат запроса на рассылку
Запрос на рассылку должен обязательно включать идентификатор Собеседника в конечном канале на первом уровне JSON-а, случае c WhatsApp, это номер телефона. По этому идентификатору Платформа вычислит Чат или в случае, если он не существует, создаст новый Чат для отправки запроса. Название ключа зависит от Конечный канал.
Формат идентификатора:
поле типа “текст”;
От 10 до 18 цифр (от 11 до 19 с учетом +);
Допускается знак + в начале.
Запрос на рассылку может быть срочным или несрочным (параметр "is_urgent"):
значение true — для срочного Запрос на рассылку — выполняется незамедлительно и прерывает Активный диалог.
значение false — для несрочного Запрос на рассылку — выполняется после закрытия Диалога.
если ключ is_urgent не найден, используется значение по умолчанию false.
Запрос на рассылку должен быть POST-запросом с валидным телом JSON и заголовком "Content-Type": "application/json"
Лимит на запросы на рассылку по умолчанию — 20 запросов в секунду на Компания. Лимит можно изменить через техподдержку.
Пример запроса на рассылку: POST <https://admin.chatme.ai/api/notification/42282::0a04b116e59032ef014d649602cc0b54/chat'> headers: {"Content-Type": "application/json"} body: { "phone_number": "79291642944", "is_urgent": true }
Работа слота
Работа слота начинается с момента получения Платформа Запрос на рассылку из внешней системы.
1. Обработка входящего запроса на рассылку
В процессе обработки входящего запроса на рассылку выполняется ряд операций. По итогу выполнения операций вы можете получить один из указанных в таблице статусов:
HTTP status: 429
Превышение Лимит на запросы на рассылку для Компания
HTTP status: 405
Запрос на рассылку не с POST-методом
HTTP status: 400
в Запрос на рассылку нет заголовка content-type: application/json
невалидный JSON в теле Запрос на рассылку
HTTP status: 404
Не найдена Компания, связанная с Идентификатор рассылки (он содержится в вебхуке в поле Chatbot webhook)
HTTP status: 400 invalid BODY: “status”: “Recipient ID not found or invalid.”
идентификатор Собеседника не был найден или он невалидный
HTTP status: 404 Not Found BODY: “status”: “Notification not found”
нет обученного Агента со Слотом с таким вебхуком
HTTP status: 404 Not Found BODY: “status”: “There is no active channel for received event”
Канал Проекта данного слота Notification удален\неактивен
HTTP status: 200 OK BODY: “status”: “Accepted for execution” “task_id”:
Запрос на рассылку поставлен в очередь на выполнение
2. Выполнение задачи на рассылку
Далее слот Notification выполняет отправку запроса на рассылку в выбранный в поле Destination Channel Конечный канал.
По итогу выполнения данного шага вы можете получить один из указанных в таблице результатов:
Не удалось составить запрос по какой-либо причине, например, не удалось спарсить и создать переменную, которая используется в id шаблона
{‘description’:’failed to build request’}
‘failed’
переход в ветку Notification fail
Edna Chat Center,Edna Pulse,360dialog (Whatsapp),360dialog (cloud),Chat2Desk
Конечный канал принял запрос и ответил успешным ответом
{‘description’:’received by channel’, ‘channel_response’: тело ответа от канала (объект)}(если application/json = объект, если text = str; в иных cлучаях записывается null).
‘sent’
Агент ожидает статуса обработки рассылки от Конечный канал
Edna Chat Center,Edna Pulse,360dialog (Whatsapp),360dialog (cloud),Chat2Desk
Запрос в Конечный канал ушел, но в ответ получен response с кодом 4хх или 5хх
{‘description’:’channel error <код ответа> ’channel_response’: тело ответа от канала}Если в ответе на запуск рассылки пришел JSON-объект, то в ’channel_response’ сохраняется этот JSON-объект. Если в ответе пришел текст, то сохраняется текст. В ином случае сохраняется None.
‘failed’
переход в ветку Notification fail
Edna Chat Center,Edna Pulse,360dialog (Whatsapp),360dialog (cloud),Chat2Desk
Не удалось выполнить запрос в Конечный канал (канал недоступен, пинг не идет и т.д.)
{‘description’:’channel inaccessible’}
‘failed’
переход в ветку Notification fail
Edna Chat Center,Edna Pulse,360dialog (Whatsapp),360dialog (cloud),Chat2Desk
В поле Content слота указаны данные несуществующего или несогласованного шаблона рассылки, при этом нет Активный диалог с получателем рассылки
{‘status’: ‘UNDELIVERED’, ‘error’: ‘not-template-match’}
переход в ветку Notification fail
Edna Chat Center,Edna Pulse
В поле Content слота указаны данные несуществующего или несогласованного шаблона рассылки, при этом естьАктивный диалог с получателем рассылки
получателю придет текст, указанный в поле Content, переход в ветку Notification success
Edna Chat Center,Edna Pulse
3. Переход в ветки подслотов и ответы из канала
После того как Конечный канал принял запрос на рассылку, происходит переход в один из Подслотов:
Переход в ветку Notification Fail
Любые проблемы, относящиеся к данной конкретной задаче на рассылку, кроме отсутствия аккаунта на данном идентификаторе Собеседника
{‘description’:’channel couldn’t sent message’, ‘channel_response’: тело ответа от канала}Если в ответе на запуск рассылки пришел JSON-объект, то в ’channel_response’ сохраняется этот JSON-объект. Если в ответе пришел текст, то сохраняется текст. В ином случае сохраняется None
‘failed’
Переход в ветку Notification no account
Отсутствие аккаунта на данном идентификаторе Собеседника (в случае WhatsApp — номере телефона)
{‘description’:’no account on <номер телефона\ключевой идентификатор собеседника>’, ‘channel_response’: тело ответа от канала as is (объект)} (если application/json = объект, если text = str; в иных cлучаях записывается null).
‘no_account’
Переход в ветку Notification Success
Получение статуса отправки, доставки или прочтения сообщения Собеседником
{‘description’:’success’,‘channel_response’: тело ответа от канала (объект)} (если application/json = объект, если text = str; в иных cлучаях записывается null).
‘delivered’
Переход в ветку Notification Success
получение Сообщение собеседника
{‘description’:’success’, ‘channel_response’: тело принятного запроса от канала (объект), откуда распарсили текст Сообщение собеседника} (если application/json = объект, если text = str; в иных cлучаях записывается null).
‘delivered’
Last updated