WebHooks

WebHooks – это уведомление сторонних приложений посредством отправки уведомлений о событиях, произошедших в amoCRM. Вы можете настроить HTTP адреса ваших приложений и связанные с ними рабочие правила в настройках своего аккаунта, в разделе «API».

Примеры сценариев

  • После успешного завершения сделки вы можете отправить информацию о произошедшей транзакции в ваше приложение для денежного учёта и автоматически сгеренировать счёт для оплаты.
  • Вы можете добавлять e-mail новых контактов в CRM системе в список рассылки (например UniSender).
  • Вы можете настроить смс уведомления о произошедших изменениях в вашем аккаунте.

Список поддерживаемых сущностей

  • Сделка
  • Контакт
  • Компания
  • Покупатель
  • Задача

Список возможных событий

  • Добавление
  • Изменение
  • Удаление
  • Восстановление (сделка, контакт, компания)
  • Смена статуса (сделка)
  • Смена отвественного
  • Добавление примечания (сделка, контакт, компания, покупатель)

Описание параметров в настройках

Имя поля Описание
Имя Устанавливает имя WebHook-а.
URL Устанавливает http адрес стороннего приложения.
Событие Устанавливается список событий, при которых будет отправлен WebHook на указанный URL.

Установка WebHooks

Установка WebHooks включает три следующих шага:

  1. Добавить WebHook
  2. Ассоциировать WebHook с рабочими процессами.
  3. Протестировать интеграцию.

Чтобы создать WebHook

  1. Зайдите в меню Настройки > API .
  2. В разделе WebHooks нажмите «Добавить WebHook».
  3. Введите URL WebHook-а.
  1. Выберите события, при которых будет отправляться уведомление.
  2. Нажмите «Сохранить».

Для тестирования интеграции

  1. Произведите действие, выбранное при создании WebHook-а.
  2. В вашем приложении проверьте данные, полученные из amoCRM.
  3. Если данные не пришли, проверьте правильность введённого URL и перейдите к пункту 1.

В каком формате отправляются данные

WebHook отправляет на стороннее приложение всю информацию о сущности в формате, описанном в GET запросах текущего раздела. POST переменная содержит массив следующего вида {“entity”:{“action”:{массив полей сущности}}} в случае создания и обновлении сущности, а также в виде {“entity”:{“action”:”id”}} в случае удаления сущности.

Пример массива:

  1. {
  2.     "leads": {
  3.         "status": {
  4.             "id": "25399013",
  5.             "name": "Lead title",
  6.             "old_status_id": "7039101",
  7.             "status_id": "142",
  8.             "price": "0",
  9.             "responsible_user_id": "102525",
  10.             "last_modified": "1413554372",
  11.             "modified_user_id": "102525",
  12.             "created_user_id": "102525",
  13.             "date_create": "1413554349",
  14.             "account_id": "7039099",
  15.             "custom_fields": [
  16.                 {
  17.                     "id": "427183",
  18.                     "name": "Checkbox custom field",
  19.                     "values": ["1"]
  20.                 },
  21.                 {
  22.                     "id": "427271",
  23.                     "name": "Date custom field",
  24.                     "values": ["1412380800"]
  25.                 },
  26.                 {
  27.                     "id": "1069602",
  28.                     "name": "Checkbox custom field",
  29.                     "values": ["0"]
  30.                 },
  31.                 {
  32.                     "id": "427661",
  33.                     "name": "Text custom field",
  34.                     "values": ["Валера"]
  35.                 },
  36.                 {
  37.                     "id": "1075272",
  38.                     "name": "Date custom field",
  39.                     "values": ["1413331200"]
  40.                 }
  41.             ]
  42.         }
  43.     }
  44. }

Пример массива для задач:

Если завершать задачи из раздела задач с результатом, то придет 2 события: закрытие задачи и добавление результата. В случае завершении задачи из карточки, приходит 1 событие о завершении задачи с результатом.

  1. {  
  2.    "task":{  
  3.       "update":[  
  4.          {  
  5.             "id":"11122233",
  6.             "element_id":"33322211",
  7.             "element_type":"2",
  8.             "task_type":"1",
  9.             "date_create":"2017-07-20 15:00:00",
  10.             "text":"Follow-up",
  11.             "status":"1", // 0 - не завершена, 1 - завершена
  12.             "account_id":"77711122",
  13.             "created_user_id":"110110",
  14.             "last_modified":"2017-07-21 19:00:00",
  15.             "responsible_user_id":"110110",
  16.             "complete_till":"2017-07-22 23:59:00",
  17.             "action_close":"1", // Параметр только для обновления задач. 1 - при текущем обновлении задача была завершена, 0 - не была завершена
  18.             "result":{  // Результат по задаче приходит, если он был указан.
  19.                "id":"155155155",
  20.                "text":"Success"
  21.             }
  22.          }
  23.       ]
  24.    },
  25.    "account":{  
  26.       "subdomain":"test"
  27.    }
  28. }

Ожидаемый ответ

При отправке запроса информация считается принятой, если в заголовке http ответа будет возвращён код от 100 до 299, согласно таблице кодов статусов w3.org.

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

Номер попытки Время, прошедшее с предыдущей попытки Коды ответа предыдущей попытки
2 5 минут 0-99, а также 300 и больше
3 15 минут 0-99, а также 300 и больше
4 15 минут 499 или от 500 до 599
5 1 час 499 или от 500 до 599