Обновление записи Yclients из сделки amoCRM


Общие описания сервисов доступны на страницах Yclients и amoCRM.

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

Считаем что сделка была ранее связана с Yclients вручную или автоматически и в полях сделки есть ID записи в Yclients.

Настройки amoCRM

Первым делом после создания процесса с типом “amoCRM вебхук” необходимо создать сам хук в amoCRM. Для этого нужно перейти в интерфейсе amoCRM на страницу “Настройки” → “Интеграции”. И нажать на кнопку WEB HOOKS в блоке “Установленные интеграции”:

В открывшемся окне выбрать событие “Статус сделки изменен” и установить ссылку на процесс:

Настройки процесса

Стартовый блок

После этого настраиваем стартовый блок, чтобы отфильтровать ненужные запросы:

  1. {{сущность}} = Сделка — это не обязательно, но так как мы уверены что нам интересна только конкретная сущность, то это указание даст возможность использовать подсказки полей, вместо ручного ввода.
  2. {{Воронка}} один из 1910359 1857124 — так как, в зависимости от услуг мы ведём сделки в разных воронках, то и здесь отслеживаем оба варианта.
  3. {{Статус}} один из 28879624 28911151 143 ... — проверяем что статус соответствует одному из отслеживаемых. В данном случае мы использовали сравнение с ID, но также вместо них можно использовать и маску вида {{amoCRM.статус.Продажи: Записан}}
  4. {{input.modified_user_id}} ≠ 0 — необязательный параметр, но здесь мы использовали его, чтобы убедиться что изменение сделки выполнено пользователем, а не какой-либо интеграцией или Salesbot. Если такое ограничение не нужно — данная строчка будет лишней.
  5. {{ID записи, Yclients}} присутствует — так мы можем убедиться что у этой сделки заполнено соответствующее поле.

Поиск записи

Так как Yclients требует передачи полного основного значения основных полей при изменении сущностей, то сначала найдём нужную запись. Создадим блок “Найти запись” и заполним:

  1. компания - Главный филиал — здесь выбираем в какой компании в рамках аккаунта Yclients мы будем искать запись. Вместо выбора конкретного филиала можно также использовать маску, если это значение было найдено раньше (например в полях сделки).
  2. ID записи {{ID записи, Yclients}} — ранее мы убедились что это поле заполнено и теперь используем его для поиска.

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

Проверка

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

Изменение записи

Далее создаём блок изменения записи и заполняем поля используя данные первого блока, где мы нашли запись:

  1. компания - Главный филиал
  2. ID записи {{ID записи, Yclients}}
  3. ответственный {{#1.ID ответственного}}
  4. клиент
    телефон {{#1.телефон клиента}}
    имя {{#1.имя клиента}}
    email {{#1.email клиента}}
  5. длительность записи {{#1.длительность записи}}
  6. время записи {{#1.время записи}}
  7. массив услуг {{#1.массив услуг}} — таким образом услуги переносятся без изменения, но также можно добавить в функции услуги и они будут добавлены к тем, что передаются в массиве.
  8. статус записи ожидание

Как видно — большая часть полей заполнена простым переносом из блока поиска.

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