AMO CRM
Возможности интеграции
Интеграция заключается в изменении и/или создании контактов в enKod при совершении в АМО CRM следующих событий:
- Добавление контакта
 - Изменение контакта
 - Добавление сделки
 - Изменение сделки
 
Авторизация
1. Установите веб-хук (один на все события или отдельный для каждого)
Если вы хотите, например, при совершении одного события подписывать контакты на группу рассылок, а при совершении другого нет - используйте отдельные веб-хуки.
Менеджер предоставит вам URL вебхука, который необходимо установить в АМО → АМО маркет → Webhooks
2. Выберите необходимые события
Мы поддерживаем 4 типа событий, изменения в которых являются триггером для изменения/добавления контакта в enKod.
- Добавление контакта
 - Изменение контакта
 - Добавление сделки
 - Изменение сделки
 
Настройте те из четырех событий, которые вам необходимы.
Работа с контактами
Добавление контакта в АМО → Добавление/обновление контакта в enKod
При добавлении контакта в АМО:
- контакт будет создан в enKod, если он не был найден
 - контакт будет обновлен в enKod, если он был найден
 
Изменение контакта в АМО → Добавление/обновление контакта в enKod
При изменении контакта в АМО:
- контакт будет создан в enKod, если он не был найден
 - контакт будет обновлен в enKod, если он был найден
 
Сопоставление полей контакта в АМО с полями данных в enKod
У контакта в АМО есть два типа полей - системные (существующие изначально, не отображаются в интерфейсе) и пользовательские (созданные вручную). Емейл, телефон, имя и фамилия контакта будут переданы по умолчанию.
Обработка системных полей контакта
В АМО у контакта есть системные поля:
| Имя | Значение | 
|---|---|
| id | id карточки контакта | 
| responsible_user_id | id ответственного | 
| date_create | дата создания карточки | 
| last_modified | дата последнего изменения карточки | 
| created_user_id | id создателя | 
| modified_user_id | id изменившего | 
| account_id | id аккаунта | 
Для каждого системного поля контакта, которое необходимо передавать в enKod, создайте поле данных с системным именем в виде amo_contact_id, amo_contact_name, amo_contact_responsible_user_id и тд. 
Если поле передавать не нужно, просто не создавайте его в enKod. Ознакомьтесь со списком полей, которые мы можем и не можем обрабатывать в этом разделе.
Обработка пользовательских полей:
В АМО у пользовательских полей контакта есть свой уникальный id, который можно посмотреть здесь:
Для передачи таких полей в enKod создайте в сервисе поля данных с системными именами в виде:
- amo_contact_1
 - amo_contact_2
 
где 1 и 2 - id пользовательских полей контакта в АМО.
Если поле передавать не нужно, просто не создавайте его в enKod. Ознакомьтесь со списком полей, которые мы можем и не можем обрабатывать в этом разделе.
Работа со сделками
Добавление и изменение контакта в enKod при добавлении и изменении сделки в АМО
Мы можем связать сделку с контактом только в том случае, если для сущности сделки в АМО будет создано пользовательское поле с названием email.
В таком случае мы можем обрабатывать события:
Добавление сделки в АМО → Добавление/обновление контакта в enKod
При добавлении сделки в АМО:
- контакт будет создан в enKod, если он не был найден
 - контакт будет обновлен в enKod, если он был найден
 
Изменение сделки в АМО → Добавление/обновление контакта в enKod
При изменении сделки в АМО:
- контакт будет создан в enKod, если он не был найден
 - контакт будет обновлен в enKod, если он был найден
 
Сопоставление полей сделки в АМО с полями данных контакта в enKod
У сделки в АМО есть два типа полей - системные (существующие изначально, почти все не отображаются в интерфейсе) и пользовательские (созданные вручную).
Обработка системных полей сделки
В АМО у сделки есть системные поля:
| Имя | Значение | 
|---|---|
| id | id карточки сделки | 
| name | название сделки | 
| status_id | id статуса сделки | 
| price | бюджет сделки | 
| responsible_user_id | id ответственного | 
| last_modified | дата последнего изменения карточки | 
| modified_user_id | id изменившего | 
| created_user_id | id создателя | 
| date_create | дата создания | 
| pipeline_id | id воронки | 
| account_id | id аккаунта | 
Для каждого системного поля сделки, которое необходимо передавать в enKod, создайте поле данных с системным именем в виде amo_lead_id, amo_lead_name, amo_lead_status_id и тд. 
Если поле передавать не нужно, просто не создавайте его в enKod. Ознакомьтесь со списком полей, которые мы можем и не можем обрабатывать в этом разделе.
Обработка пользовательских полей:
В АМО у пользовательских полей сделки есть свой уникальный id, который можно посмотреть здесь:
Для передачи таких полей в enKod создайте в сервисе поля данных с системными именами в виде:
- amo_lead_1
 - amo_lead_2
 
где 1 и 2 - id пользовательских полей сделки в АМО.
Если поле передавать не нужно, просто не создавайте его в enKod. Ознакомьтесь со списком полей, которые мы можем и не можем обрабатывать в этом разделе.
Как происходит матчинг контактов
Из АМО в enKod может прийти: емейл, несколько емейлов, емейл и телефон, только телефон, несколько телефонов. Множественные поля с емейлами или телефонами мы можем получить в том случае, если они были добавлены вручную в АМО (пользовательские поля).
- Если пришло несколько емейлов - мы ищем контакт в enKod по первому, остальные игнорируем
 - Если пришли емейл и телефон - ищем по емейлу (если никого не нашли, то по телефону)
 - Если пришел только емейл - ищем по емейлу
 - Если пришел только телефон - ищем по телефону
 
Если в емейле или телефоне, по которому мы матчим, передано невалидное значение (например, емейл без собаки, буквы в телефоне), то такие запросы мы не обрабатываем (для случаев когда передан только емейл или только телефон). Если мы получили емейл и телефон, а один из идентификаторов невалидный, то мы будем искать контакт по второму (корректому) идентификатору.
Если контакт был найден - мы обновляем его поля.
Если контакт не был найден - мы его создаем.
Типы данных системных полей в АМО и их соответствия в enKod
Системные поля контакта
| Поле в АМО | Тип поля в enKod | 
|---|---|
| Имя | Имя и Фамилия, передаются по умолчанию, разбиваются по пробелу | 
| Емейл | Емейл, передается по умолчанию | 
| Телефон | Телефон, передается по умолчанию | 
| id | Текст или Число | 
| responsible_user_id | Текст или Число | 
| date_create | Дата и время | 
| last_modified | Дата и время | 
| created_user_id | Текст или Число | 
| modified_user_id | Текст или Число | 
| account_id | Текст или Число | 
Системные поля сделки
| Поле в АМО | Тип поля в enKod | 
|---|---|
| id | Текст или Число | 
| name | Текст | 
| status_id | Текст или Число | 
| price | Число | 
| responsible_user_id | Текст или Число | 
| last_modified | Дата и время | 
| modified_user_id | Текст или Число | 
| created_user_id | Текст или Число | 
| date_create | Дата и время | 
| pipeline_id | Текст или Число | 
| account_id | Текст или Число | 
Типы данных пользовательских полей в АМО и их соответствия в enKod
| Тип в АМО | Тип в enKod | 
|---|---|
| Имя | Имя | 
| Емейл | Емейл | 
| Телефон | Телефон | 
| Текст | Текст | 
| Число | Число | 
| Флаг | Логический | 
| Список | Опционально в зависимости от наполнения - текст, число, дробное число (записано будет только одно (выбранное) значение) | 
| Мультисписок | Опционально в зависимости от наполнения - текст, число, дробное число (записано будет только одно (первое выбранное) значение) | 
| Дата | Дата | 
| Ссылка | Текст | 
| Текстовая область | Текст | 
| Переключатель | Не обрабатываем | 
| Короткий адрес | Текст | 
| Адрес | Не обрабатываем | 
| День рождения | Дата | 
| Юрлицо | Не обрабатываем | 
| Дата и время | Дата и время | 
| Файл | Не обрабатываем | 
Важно
- Если один и тот же контакт привязан к нескольким сделкам в АМО, то мы будем хранить в полях только последнюю измененную из них.
 - Если в сделке в АМО не создано поле email, то мы не сможем привязать сделку к контакту в enKod.
 - В enKod будут изменены только те поля контакта, которые были предварительно созданы по всем правилам.
 - Если в enKod будет передан невалидный емейл, в котором присутствует пробел, то при передаче мы заменим пробел на плюс. Это связано с логикой работы веб-хуков в АМО. В данном случае контакт будет добавлен, как валидный.
 
Подписка на группы рассылок
При необходимости вы можете подписать контакты на группы рассылок при добавлении в enKod. В таком случае подписка будет работать по логике “всех, включая отписчиков”, но контакты, которые находятся в ЧС или ГЧС, подписаны не будут.
Для подписки добавьте после основной части URL системные имена необходимых групп в следующем виде:
https://wh.enkod.ru/amo/MzJjamJ1YXWZvZA==tfhodg/?groups=sysname1,sysname2