Настройка Webhook в KeyCRM

Рассказываем, как настроить отправку вебхуков из KeyCRM в стороннюю систему.
Автор Вадим Крижевський
Обновлено 5 месяцев назад

Использование вебхуков позволяет сообщать внешним системам о различных событиях, которые произошли в KeyCRM и получать базовую информацию по заказам или карточкам воронок в которых именно они произошли. 

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

Обратите внимание! В KeyCRM доступны только исходящие вебхуки, из системы можно только отправлять данные на нужные URL.

Настройка действия по отправке Webhook

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

  1. Выберите действие «Отправить Webhook» в настройках триггера;
  2. Откроется окно, в котором вам нужно ввести URL-адрес вебхука, куда будут отправляться данные, и выбрать метод передачи данных (POST или GET);
  3. Убедитесь, что вы правильно ввели URL-адрес и метод передачи данных;
  4. Сохраните настройки вебхука, чтобы изменения вступили в силу.

Протестировать отправку вебхука и посмотреть, какие данные вы получите, можно с помощью сервиса webhook.site.

Процесс отправки вебхука

Если все заданные условия выполняются - срабатывает триггер и выполняет все настроенные действия в нем.

Действие «Отправить Webhook» автоматически отправляет запрос с данными в формате JSON на указанный URL-адрес с методом, который вы выбрали.

Независимо от выбранного метода всегда отправляются 2 стандартных параметра:

  1. «event» - событие по которому сработал триггер, который отправлялся по вебхуку. На данный момент доступны три события:
    "order.change_order_status" //  изменение статуса заказа
    "order.change_payment_status" // изменение статуса оплаты заказа
    "lead.change_lead_status" // изменение статуса карточки воронки
  2. «context» - контекст, данные сущности по которой сработал вебхук.

Получив данные, ваш сервер должен отправить в ответ код 200, который означает, что запрос был успешно обработан. KeyCRM делает 3 попытки отправки данных, и если не получает успеха, прекращает отправку.

Если вам нужно отправить дополнительные данные вместе с запросом GET, вы можете добавить свои статические параметры в URL.

Они также будут переданы вместе с запросом, и вы сможете получить и обработать их во внешней системе.

https://webhook.site/a6d5120f-cdf1-4765-bfd3-5a699db72e22?test=test // пример url адреса со статическими параметрами
Обратите внимание! Добавление переменных, которые подставят данные в URL с заказа или карточки, недоступно. Информация с основных полей будет отправлена ​​в формате JSON на указанный URL.

Информация, которая отправляется через вебхук

Через вебхуки отправляется только базовая информация по заказам и карточкам воронок. Однако, она включает все основные параметры, такие как ID сущности, ID покупателя, сумма оплаты и т.д.

Важно! Если вы нуждаетесь получить дополнительную информацию, например, данные из дополнительных полей, детализацию оплат, информацию по доставке, или другие параметры, вам необходимо осуществлять дополнительные запросы через API с нужными значениями в параметре include

Информация которая отправляется по каждому заказу в формате json:

{
  "event": "order.change_payment_status", // Событие, в данном случае изменение статуса оплаты заказа
  "context": {    
    "id": 67526, // Идентификатор заказа
    "source_uuid": null, // Уникальный идентификатор заказа из загруженного источника
    "global_source_uuid": null, // Глобальный уникальный идентификатор заказа из загруженного источника
    "status_on_source": null, // Идентификатор статуса на источнике
    "source_id": 246, // Идентификатор источника
    "client_id": 88282, // Идентификатор покупателя
    "grand_total": 45.22, // Общая стоимость заказа
    "total_discount": 1.8, // Общая сумма скидки
    "margin_sum": 40.22, // Сумма прибыли
    "expenses_sum": 1, // Сумма расходов
    "discount_amount": 1, // Скидка в целых значениях
    "discount_percent": 2, // Скидка в процентах
    "shipping_price": "2.00", // Стоимость доставки
    "taxes": "4.00", // Сумма налогов
    "register_id": null, // Системный идентификатор
    "fiscal_result": [], // Результаты фискализации
    "fiscal_status": "done", // Статус фискализации заказа
    "shipping_type_id": null, // Идентификатор типа доставки
    "manager_id": 108, // идентификатор ответственного менеджера
    "status_group_id": 5, // Идентификатор группы статуса заказа
    "status_id": 12, // Идентификатор статуса заказа
    "closed_from": null, // Закрыт из (источник)
    "status_changed_at": "2024-05-28T09:34:10.000000Z", // Время изменения статуса в UTC формате
    "status_expired_at": null, // Время просрочки статуса
    "parent_id": null, // Идентификатор родительского заказа, если это копия
    "manager_comment": null, // Комментарий менеджера
    "client_comment": null, // Комментарий клиента
    "discount_data": { // Данные о персональных скидках
      "loyalty": { // Информация о программе лояльности, которая применена в заказе
        "name": "Первый уровень", // Название уровня лояльности
        "amount": 100, // Сумма для достижения уровня
        "discount": 6, // Скидка на этом уровне
        "level_id": 22, // Идентификатор уровня лояльности
        "loyalty_program_id": 12 // Идентификатор программы лояльности
      },
      "individual": { // Индивидуальная скидка покупателя
        "discount": 25 // Размер индивидуальной скидки
      }
    },
    "is_gift": true, // Подарок или нет
    "promocode": "promo2024", // Промокод
    "wrap_price": "1.00", // Стоимость подарочной упаковки
    "gift_wrap": false, // Подарочная упаковка, наличие или отсутствие
    "payment_status": "part_paid", // Статус оплаты заказа
    "gift_message": null, // Поздравительное сообщение
    "last_synced_at": null, // Дата последней синхронизации с источником в UTC формате
    "created_at": "2024-05-28T09:24:01.000000Z", // Дата создания заказа в CRM в UTC формате
    "updated_at": "2024-05-28T09:34:20.000000Z", // Дата последнего изменения в заказе в UTC формате
    "closed_at": "2024-05-28 09:34:10", // Дата закрытия заказа в UTC формате - переход заказа в группу выполнен или отменен
    "deleted_at": null, // Дата удаления
    "ordered_at": "2024-05-28T09:24:01.000000Z", // Дата создания заказа на источнике в UTC формате
    "source_updated_at": null, // Дата последнего обновления из источника
    "payments_total": 40.02, // Общая сумма платежей
    "is_expired": false, // Просрочен заказ или нет
    "has_reserves": false // Есть ли резерв товара
  }
}

Информация которая отправляется по карточкам в воронках в формате json:

{
  "event": "lead.change_lead_status", // Событие, в данном случае изменение статуса карточки
  "context": {
    "id": 13898, //Идентификатор карточки воронки
    "title": "Чат с Your Dev", //Название карточки
    "contact_id": 14860, //Идентификатор контактного лица карточки воронки
    "manager_id": 108, // Идентификатор ответственного менеджера
    "target_id": null, // Идентификатор созданной на основе карточки сущности
    "target_type": null, // Тип созданной на основе карточки сущности. Возможные варианты: order (заказ), lead (карточка)
    "source_id": 245, // Идентификатор источника
    "status_id": 1009, // Идентификатор статуса карточки воронки
    "pipeline_id": 94, // Идентификатор воронки
    "status_changed_at": "2024-05-28T09:35:31.000000Z", // Дата изменения статуса карточки воронки в UTC формате
    "communicate_at": "2024-05-17T13:08:33.000000Z", // Дата и время планируемого контакта по карточке воронки в UTC формате
    "currency_code": "UAH", // Валюта товаров и оплат в карточке
    "manager_comment": "", // Комментарий менеджера
    "utm_source": null, // Источник кампании
   "utm_medium": null, // Тип трафика
    "utm_campaign": null, // Название кампании
    "utm_term": null, // Ключевое слово
    "utm_content": null, // Идентификатор объявления
    "is_finished": false, // Идентификатор закрытия карточки воронки
    "closed_from": null,
    "created_at": "2024-05-17T13:08:33.000000Z", // Дата создания карточки воронки в UTC формате
    "updated_at": "2024-05-28T09:35:31.000000Z", // Дата последнего изменения карточки воронки в UTC формате 
    "payments_total": 15000, // Сумма оплат в карточке
    "products_total": 15000 // Сумма за товары в карточке
  }
}

Теги: POST, GET, вебхук, webhook, вэбхук, событие изменения статуса, выходные данные, получить json, изменения по API.
Оцените эту статью