Чем мы можем помочь?

Исходящая интеграция

Исходящая интеграция:
Whatsapp > CRM и другие ваши системы

Поделитесь этой статьей со своим разработчиком или используйте Zapier для интеграции вашей системы с Whatsapp

Настройка

TimelinesAI позволяет уведомлять внешнюю систему о получении или отправке нового сообщения в любой подключенной учетной записи Whatsapp в рабочей области. Сюда входят сообщения Whatsapp, отправленные через мобильное приложение Whatsapp или из Timelines.

Часто такая интеграция осуществляется через какой-либо сервис-посредник, например Zapier, где каждая активация веб-хука учитывается при расходовании квоты на выполнение задачи.

Для более эффективного использования квоты заданий TimelinesAI предоставляет возможность агрегировать несколько сообщений, отправленных или полученных в конкретном чате за выбранный период времени. Сообщения передаются через webhook в виде одного "пакета". Для удобства пользователя такой "пакет" содержит поле с предварительно отформатированной совокупностью сообщений (и ссылку на точку в беседах в TimelinesAI), но вы можете реализовать собственное форматирование, используя данные, предоставленные с помощью webhook.

Снимок экрана 2021 11 23 в 12 06 26
Пакет сообщений, отправленных через веб-крючок

Для настройки интеграции с помощью исходящих Webhooks:

  1. Перейдите к разделу Webhooks в меню вашей учетной записи TimelinesAI
  2. Выберите вкладку Outbound (Исходящие ).

Снимок экрана 2021 11 23 в 11.47.21

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

  • Агрегация - сообщения будут агрегироваться и отправляться с помощью webhook в соответствии с выбранным вариантом (каждые 1 / 6 / 12 / 24 часа) или будут отправляться сразу же после их появления во временной шкале ("Не агрегировать").
  • Webhook URL - здесь необходимо ввести фактический URL-адрес, по которому должно приходить уведомление.
  • Webhook включен - вы можете отключить webhook, если хотите прекратить интеграцию.

После включения Webhook и отправки некоторых сообщений будет отображен журнал активности (до 10 последних действий).

Ошибки и поиск неисправностей

Для обеспечения корректной работы интеграции при возникновении более 10 последовательных ошибок со стороны принимающей стороны (любая ошибка, начиная от недействительного URL и заканчивая кодом ответа не 200) система автоматически отключит интеграцию. В этом случае владелец рабочего пространства получит уведомление по электронной почте.

В случае необходимости устранения ошибки можно загрузить подробный журнал (ссылка станет доступна в нижней части страницы), в котором будет отображено до 100 последних запросов со всеми подробностями отправленных данных и полученного ответа.

Формат данных

Данные будут отправлены на URL Webhook посредством HTTP POST-запроса в формате JSON. Данные предоставляются в двух различных форматах, в зависимости от настройки Aggregation Granularity, как описано ниже.

Агрегатирование каждые X часов

Сообщения будут агрегироваться в "пакет". При этом будут доступны следующие данные:

  • "whatsapp account" - данные аккаунта Whatsapp (и соратника по рабочей области, подключившего аккаунт), через который было получено или отправлено сообщение
    • "телефон" - номер телефона счета WA
    • "full_name" - полное имя владельца счета WA, зарегистрированное в Timelines
    • "email" - адрес электронной почты владельца учетной записи WA, зарегистрированный в Timelines
  • "чат" - реквизиты чата (прямого чата или группы), в котором было отправлено или получено сообщение
    • "full_name" - имя чата (как отображается в Timelines)
    • "имя_ответственного" - имя товарища по команде, назначенного ответственным за данный чат
    • "responsible_email" - адрес электронной почты члена команды, назначенного ответственным за данный чат
    • "chat_url" - URL, по которому можно получить доступ к чату в TimelinesUI
    • "chat_id" - идентификатор чата в TimelinesUI (может быть использован для построения URL чата или при использовании входящих веб-хуков)
    • "is_new_chat" - true, если данный чат был только что создан, false - в противном случае
    • "is_group" - true, если данный чат является прямым чатом, false - в противном случае
    • "phone" - номер телефона чата (пустой для группового чата)
  • "messages" - список сообщений, в котором каждый объект сообщения содержит следующие поля
    • "направление" - может быть "получено" или "отправлено"
    • "timestamp" - временная метка сообщения, в часовом поясе UTC
    • "message_id" - не используется
    • "message_uid" - внутренний уникальный идентификатор сообщения, который может быть использован в Public API для загрузки подробностей сообщения и обновления статуса (подробности здесь)
    • "отправитель" - данные об отправителе (участнике чата) сообщения
      • "full_name" - название чата или имя товарища по команде в Timelines (если отправлено из Timelines)
      • "phone" - номер телефона отправителя (или пустой для группового чата)
    • "получатель" - данные об отправителе (участнике чата) сообщения
      • "full_name" - название чата или имя товарища по команде в Timelines
      • "phone" - номер телефона получателя (или пустой для группового чата)
    • "text" - текст сообщения (plaintext)
    • "attachment" - объект, описывающий вложение сообщения, включающий следующие поля
      • "temporary_download_url" - временный URL-адрес загрузки, действительный в течение 15 минут
      • "filename" - имя файла
      • "size" - размер файла, в байтах
      • "mimetype" - mime-тип файла
  • "first_message_timestamp" - временная метка самого раннего сообщения в пачке, в часовом поясе UTC
  • "last_message_timestamp" - временная метка последнего сообщения в пачке, в часовом поясе UTC
  • "агрегация" - агрегированный текст сообщения в формате HTML, пригодный для использования в CRM или аналогичных системах в качестве контента для заметок, включая прямую ссылку на первое сообщение в Timelines.

Пример

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97254000000"
    },
    "messages" :
    [
        {
            "direction": "sent", 
            "timestamp": "2021-02-24T16:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        },
        {
            "direction": "received", 
            "timestamp": "2021-02-24T16:30:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum"
        }
    ],
    "first_message_timestamp" : "2021-02-24T16:25:29+0000",
    "last_message_timestamp" : "2021-02-24T16:30:29+0000",
    "aggregation":
        "from John Doe on 2021-02-24 16:25: Hi! How are you?<br/>from Jane Smith on 2021-02-24 16:30: I am fine, how are you?<br/>Click <a href='https://app.timelines.ai/permalink/77a28d55-5345-5435-8c72-3a7bcad8ded9/'>here</h> to open the conversation in TimelinesAI"
}

Не агрегировать

Каждое сообщение отправляется отдельно, как только оно становится доступным. Никакого "пакетирования" не происходит. Будут доступны следующие данные:

  • "whatsapp account" - данные аккаунта Whatsapp (и соратника по рабочей области, подключившего аккаунт), через который было получено или отправлено сообщение
    • "телефон" - номер телефона счета WA
    • "full_name" - полное имя владельца счета WA, зарегистрированное в Timelines
    • "email" - адрес электронной почты владельца учетной записи WA, зарегистрированный в Timelines
  • "чат" - реквизиты чата (прямого чата или группы), в котором было отправлено или получено сообщение
    • "full_name" - имя чата (как отображается в Timelines)
    • "имя_ответственного" - имя товарища по команде, назначенного ответственным за данный чат
    • "responsible_email" - адрес электронной почты члена команды, назначенного ответственным за данный чат
    • "chat_url" - URL, по которому можно получить доступ к чату в TimelinesUI
    • "chat_id" - идентификатор чата в TimelinesUI (может быть использован для построения URL чата или при использовании входящих веб-хуков)
    • "is_new_chat" - true, если данный чат был только что создан, false - в противном случае
    • "is_group" - true, если данный чат является прямым чатом, false - в противном случае
    • "phone" - номер телефона чата (пустой для группового чата)
  • "сообщение" - сведения о сообщении
    • "направление" - может быть "получено" или "отправлено"
    • "timestamp" - временная метка сообщения, в часовом поясе UTC
    • "message_id" - внутренний уникальный идентификатор сообщения
    • "отправитель" - данные об отправителе (участнике чата) сообщения
      • "full_name" - название чата или имя товарища по команде в Timelines (если отправлено из Timelines)
      • "phone" - номер телефона отправителя (или пустой для группового чата)
    • "получатель" - данные об отправителе (участнике чата) сообщения
      • "full_name" - название чата или имя товарища по команде в Timelines
      • "phone" - номер телефона получателя (или пустой для группового чата)
    • "text" - текст сообщения (plaintext)
    • "attachment" - объект, описывающий вложение сообщения, включающий следующие поля
      • "temporary_download_url" - временный URL-адрес загрузки, действительный в течение 15 минут
      • "filename" - имя файла
      • "size" - размер файла, в байтах
      • "mimetype" - mime-тип файла

Пример

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97251111111"
    },
    "message" :
       {
            "direction": "sent", 
            "timestamp": "2021-02-24T06:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        }
}
Оглавление