Интеграция с CarrotQuest

Инструкция по настройке Webhook CarrotQuest для интеграции с MacroCRM

Для специалистов CarrotQuest и тех, кто настраивает интеграцию CarrotQuest с MacroCRM

Данная инструкция описывает типы Webhook запросов, структуру данных, матрицу полей и API описание для интеграции CarrotQuest с MacroCRM.


4. Типы Webhook запросов

MacroCRM поддерживает два типа Webhook запросов от CarrotQuest:

  • TYPE_CLASSIC (event): Классический тип Webhook, отправляет данные о различных системных событиях, происходящих с пользователями на вашем сайте (просмотр страниц, изменение данных профиля, UTM инициализация и т.д.). Эти события инициируются системой CarrotQuest автоматически при определенных действиях пользователя.

  • TYPE_TRIGGER (message_webhook): Webhook, отправляемый при срабатывании триггеров в CarrotQuest. Эти триггеры могут быть настроены для срабатывания при определенных условиях, например, при заполнении формы в чате или при отправке сообщения через триггерное сообщение. Данный тип Webhook предназначен для передачи данных, собранных в рамках триггерных сценариев.

Важно! При настройке Webhook в CarrotQuest, необходимо выбрать, какой тип запросов будет отправляться в MacroCRM. Для полноценной интеграции лидов рекомендуется настроить отправку обоих типов Webhook запросов. TYPE_CLASSIC для отслеживания системных событий (например, UTM меток, изменений контактных данных), и TYPE_TRIGGER для получения данных из диалогов и форм, настроенных в триггерах CarrotQuest.

5. Структура данных Webhook запроса

5.1. Общая структура для обоих типов

Независимо от типа Webhook, запрос от CarrotQuest к MacroCRM представляет собой POST запрос в формате application/json. Основная структура данных для обоих типов включает следующие обязательные поля:

  • token: Строка токена для аутентификации запроса. Этот токен должен быть настроен как в CarrotQuest, так и в MacroCRM (в настройках интеграции CarrotQuest в MacroCRM).

  • type: Строка, указывающая тип Webhook запроса. Возможные значения: "event" (для TYPE_CLASSIC) или "message_webhook" (для TYPE_TRIGGER).

5.2. Структура данных для TYPE_CLASSIC (event)

Для Webhook типа event, данные об событии и пользователе передаются вложенными объектами event и user соответственно.

{
  "token": "your_webhook_token",
  "type": "event",
  "event": {
    "type": {
      "name": "[Название системного события]"  // Например, "$session_start", "$utm_hit", "$phone_changed"
    },
    "props": {
      // Объект со свойствами события, зависят от типа события
      // Например, для "$utm_hit": "$utm_campaign", "$utm_source", "$utm_medium", ...
      // Для "$phone_changed": "old_value", "new_value"
    },
    // ... другие поля объекта события (см. документацию CarrotQuest)
  },
  "user": {
    "id": "[ID пользователя в CarrotQuest]",
    "props": {
      "$phone": "[Номер телефона пользователя]",
      "$email": "[Email пользователя]",
      "$name": "[Имя пользователя]",
      "$initial_utm_campaign": "[UTM кампания]",
      "$initial_utm_source": "[UTM источник]",
      "$initial_utm_medium": "[UTM medium]",
      "$initial_utm_content": "[UTM content]",
      "$initial_utm_term": "[UTM term]",
      // ... другие свойства пользователя (см. документацию CarrotQuest)
    },
    // ... другие поля объекта пользователя (см. документацию CarrotQuest)
  }
}

Ключевые поля TYPE_CLASSIC:

  • event.type.name: Название системного события CarrotQuest. MacroCRM обрабатывает следующие системные события:

    • $utm_hit: Событие инициализации UTM меток при первом посещении сайта пользователем.

    • $phone_changed: Событие изменения номера телефона пользователя.

    • $email_changed: Событие изменения email пользователя.

  • event.props: Свойства события, специфичные для каждого типа системного события.

  • user.props: Свойства пользователя, включая контактные данные ($phone, $email, $name) и UTM метки, зафиксированные при первом посещении ($initial_utm_*).

5.3. Структура данных для TYPE_TRIGGER (message_webhook)

Для Webhook типа message_webhook (триггерные сообщения), данные передаются непосредственно в корне JSON объекта.

{
  "token": "your_webhook_token",
  "type": "message_webhook",
  "CarrotID": "[ID пользователя в CarrotQuest]",
  "Имя": "[Имя пользователя из формы триггера]",
  "Телефон": "[Номер телефона из формы триггера]",
  "email": "[Email из формы триггера]",
  "utmCampaign": "[UTM кампания]",
  "utmSource": "[UTM источник]",
  "utmMedium": "[UTM medium]",
  "utmContent": "[UTM content]",
  "utmTerm": "[UTM term]",
  "Комментарий CQ": "[Комментарий 1, настроенный в триггере]",
  "Комментарий CQ 2.0": "[Комментарий 2, настроенный в триггере]",
  // ... другие поля, добавленные в триггерном сообщении CarrotQuest
}

Ключевые поля TYPE_TRIGGER:

  • CarrotID: ID пользователя в CarrotQuest.

  • Имя, Телефон, email: Данные пользователя, собранные через форму в триггерном сообщении CarrotQuest. Названия полей соответствуют русскоязычным названиям, как показано в примере.

  • utmCampaign, utmSource, utmMedium, utmContent, utmTerm: UTM метки, если настроена их передача в триггерном сообщении. Важно! Названия UTM параметров в TYPE_TRIGGER отличаются от TYPE_CLASSIC (отсутствует префикс $initial_utm_).

  • Комментарий CQ, Комментарий CQ 2.0: Поля для передачи комментариев к лиду, которые могут быть добавлены в настройках триггерного сообщения CarrotQuest.

6. Матрица полей для настройки Webhook в CarrotQuest

Для обеспечения корректной интеграции и передачи данных из CarrotQuest в MacroCRM, особенно для TYPE_TRIGGER Webhook, необходимо согласовать названия полей в CarrotQuest с ожидаемыми полями в MacroCRM.

6.1. TYPE_CLASSIC (event) Webhook

Для системных событий (TYPE_CLASSIC), дополнительная настройка полей в CarrotQuest не требуется. CarrotQuest автоматически отправляет данные в предопределенном формате, который MacroCRM ожидает для системных событий.

6.2. TYPE_TRIGGER (message_webhook) Webhook (Триггерные сообщения)

При настройке триггерных сообщений в CarrotQuest, важно убедиться, что названия полей, используемые в триггере (особенно в формах), соответствуют следующей матрице, чтобы MacroCRM мог корректно распознать и обработать данные.

Поле в форме триггера CarrotQuest

Название поля в Webhook запросе (TYPE_TRIGGER)

Поле в MacroCRM (Лид)

Описание

Имя

Имя

name

Имя клиента

Телефон

Телефон

phone

Номер телефона клиента

Email

email

email

Email клиента

UTM кампания

utmCampaign

utm.utm_campaign

UTM кампания

UTM источник

utmSource

utm.utm_source

UTM источник

UTM medium

utmMedium

utm.utm_medium

UTM medium

UTM content

utmContent

utm.utm_content

UTM content

UTM term

utmTerm

utm.utm_term

UTM term

Комментарий CQ

Комментарий CQ

notes

Комментарий к лиду (заметка 1)

Комментарий CQ 2.0

Комментарий CQ 2.0

notes

Комментарий к лиду (заметка 2)

CarrotQuest ID (скрытое поле)

CarrotID

carrotquest_cid

ID пользователя в CarrotQuest (для связки)

Тип лида (скрытое поле)

(не передается явно)

type: 'living'

Тип лида (живой лид)

Активность (скрытое поле)

(не передается явно)

activity: 'buy'

Активность лида (покупка)

Источник (скрытое поле)

(не передается явно)

from_source: 'carrotquest'

Источник лида (CarrotQuest)

Рекомендации по настройке полей в триггерах CarrotQuest:

  • Используйте указанные названия полей в формах триггерных сообщений CarrotQuest (например, "Имя", "Телефон", "Email").

  • Для UTM меток, если необходимо их передавать через триггер, убедитесь, что названия полей в CarrotQuest соответствуют: utmCampaign, utmSource, utmMedium, utmContent, utmTerm.

  • Для комментариев, используйте поля с названиями "Комментарий CQ" и "Комментарий CQ 2.0", если требуется передавать комментарии к лиду из триггерных сообщений.

  • Скрытые поля: Поля "CarrotQuest ID", "Тип лида", "Активность", "Источник" не нужно добавлять в настройки триггера CarrotQuest. MacroCRM автоматически добавляет эти данные при обработке Webhook запроса типа TYPE_TRIGGER.

7. Описание API (с точки зрения MacroCRM)

Endpoint URL: [URL вашей MacroCRM]/api/web/carrotquest/[ID компании]/[Ключ безопасности]

HTTP Method: POST

Request Body Format: application/json

Request Body Parameters:

Для TYPE_CLASSIC (event)

{
  "token": "string", // Обязательный, токен для аутентификации
  "type": "string", // Обязательный, всегда "event"
  "event": {
    "type": {
      "name": "string" // Обязательный, название системного события (например, "$utm_hit", "$phone_changed")
    },
    "props": {
      // Объект, свойства события (зависит от типа события)
    },
    // ... другие поля объекта события (см. документацию CarrotQuest)
  },
  "user": {
    "id": "integer", // Обязательный, ID пользователя в CarrotQuest
    "props": {
      "$phone": "string", // Номер телефона пользователя
      "$email": "string", // Email пользователя
      "$name": "string", // Имя пользователя
      "$initial_utm_campaign": "string", // UTM кампания
      "$initial_utm_source": "string", // UTM источник
      "$initial_utm_medium": "string", // UTM medium
      "$initial_utm_content": "string", // UTM content
      "$initial_utm_term": "string", // UTM term
      // ... другие свойства пользователя
    },
    // ... другие поля объекта пользователя
  }
}

Для TYPE_TRIGGER (message_webhook)

{
  "token": "string", // Обязательный, токен для аутентификации
  "type": "string", // Обязательный, всегда "message_webhook"
  "CarrotID": "integer", // Обязательный, ID пользователя в CarrotQuest
  "Имя": "string", // Имя пользователя (из формы триггера)
  "Телефон": "string", // Телефон пользователя (из формы триггера)
  "email": "string", // Email пользователя (из формы триггера)
  "utmCampaign": "string", // UTM кампания
  "utmSource": "string", // UTM источник
  "utmMedium": "string", // UTM medium
  "utmContent": "string", // UTM content
  "utmTerm": "string", // UTM term
  "Комментарий CQ": "string", // Комментарий 1
  "Комментарий CQ 2.0": "string", // Комментарий 2
  // ... другие поля, настроенные в триггерном сообщении
}

Response Codes:

  • 200 OK: Успешная обработка Webhook запроса. MacroCRM возвращает JSON: {"success": true}.

  • [Error Code]: В случае ошибки (например, невалидный токен, невалидные данные пользователя). MacroCRM возвращает JSON: {"success": false, "error": "[Сообщение об ошибке]"}. Код ошибки HTTP может варьироваться в зависимости от типа ошибки.


Обратите внимание: Данный документ предназначен для специалистов, настраивающих интеграцию CarrotQuest с MacroCRM. При настройке Webhook в личном кабинете CarrotQuest, используйте данную инструкцию как руководство по типам запросов, структуре данных и необходимым названиям полей для обеспечения корректной передачи данных в MacroCRM.

Last updated