Обработка и передача писем с почты в amoCRM


В данной статье рассмотрим пример передачи входящих непрочитанных писем, которые пришли на Email в amoCRM.

Обработка и передача писем с почты в amoCRM

Настройка ящика для подключения в MoreKit

Для начала необходимо настроить наш Email на возможность подключения по почтовым протоколам. Это необходимо для того, чтобы MoreKit смог получить доступ к Email-сервису и получить письмо.

Создание пароля приложений

Для возможности подключения ящика к сторонним сервисам на нем потребуется создать пароль для приложений. В данной инструкции будет пример подключения почты Яндекс.
Инструкции по созданию пароля приложений для других почтовых сервисов можно легко найти в интернете, но здесь оставим инструкции для наиболее распространенных:
google
mail.ru
Yahoo

Заходим в нашу почту Яндекс, в настройках почты переходим во вкладку «Безопасность» и листаем страницу ниже, ищем вкладку для создания пароля приложений

Создаем новый пароль приложения для почты, задаем ему имя пароля. Здесь важно отметить, что пароль приложения показывается только один раз при создании, его необходимо куда-нибудь сохранить.

Подключение ящика в MoreKit

После создания пароля приложений можно приступить к подключению ящика в MoreKit. Для этого в списке сервисов ищем «Email — входящие»

После создания пароля приложений можно приступить к подключению ящика в MoreKit. Для этого в списке сервисов ищем «Email — входящие»

Здесь потребуется также ввести адрес сервера и порт. Найти данные для каждого сервиса можно также в интернете.
Данные для Яндекс:
Адрес сервера: imap.yandex.ru
Порт: 993

После введенных данных должно выполниться успешное подключение. Подключенная почта должна появиться в списке сервисов.

Создание процесса по времени в MoreKit

Так как у почтовых сервисов нет возможности отправлять webhooks для входящих писем, потребуется создать процесс с типом «По времени». Особенность данного процесса в том, что он будет запускаться самостоятельно, в зависимости от выбранного интервала времени запуска. Создаем процесс.

Настройка интервалов запуска

В данном примере процесс получения писем будет запускаться каждые 20 минут, в течение 24 часов, с понедельника по воскресенье, включая все дни месяца. Выставите интервал, который вам нужен.

Настройка получения писем

Теперь необходимо вынести блок «Получить письма». В поле «Ящик» — выбрать нужную папку из почты, откуда нужно будет получать письма. Далее настраиваем блок. В данном примере блок настроен на получения непрочитанных писем из папки «Передача писем с ФОС». Также дополнительно указан параметр. который будет парсить HTML-контент, если он будет присутствовать в письме.

После настройки блока можно попробовать протестировать получение писем. Либо подождать, когда процесс сработает автоматически согласно заданному периоду времени, либо перейти по ссылке, генерируемой первоначальным блоком.

Сейчас в тестовом ящике два непрочитанных письма со следующим контентом:

При получении лога также видим два письма:

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

Создание подпроцесса и передача на него писем

Созданный подпроцесс будет обрабатывать и передавать письма в amoCRM. После создания подпроцесса нужно вынести блок «Запуск подпроцесса», в который будет передан массив писем, подпроцесс автоматически поделит массив по элементам, в результате чего внутри него и будет настроена передача письма в amoCRM. Для передачи данных в подпроцесс передаем массив в обратном порядке, используя фильтр reverse, так как письма с почты получаем без сортировки, будет отсылать их сразу же в правильном порядке.

Отметим в ящике письма как «Непрочитанные», заново запустим процесс и посмотрим, пришли ли входящие данные на подпроцесс. По примеру было 2 непрочитанных письма, значит должно прийти два события. Каждое событие — одно письмо.

Видим пример, как выглядят данные письма. В переменной text есть все необходимые данные для передачи в amoCRM, Будем вытаскивать данные с помощью блока «регулярные выражения«, обращаясь к этой переменной. Подробнее о том, как работают регулярные выражения можете почитать в нашей документации.

После настройки регулярных выражений выстраиваем остальную часть схемы. Выстраиваем примитивную схему передачи данных в amoCRM с контролем дублей.

Описание блоков схемы

Поиск контакта по номеру телефона, полученному в регулярных выражениях

Поиск контакта по Email, полученному в регулярных выражениях

Создание контакта с заполнением телефона, E-mail и имени контакта

Запись контакта в переменную

Поиск активной сделки из контакта

Создание сделки при отсутствии активной с привязкой к контакту

Создание примечания с прикреплением к сделке и информацией о контакте

Проверяем результат

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

По событию ошибок нет, переходим в amoCRM (можно нажать на ID сделки/контакта прямо из лога). Смотрим на результат в amoCRM.

Созданная сделка

Созданный контакт

Подведем итог

В данной статье рассмотрели возможность подключения Email-ящика в MoreKit и получение непрочитанных писем с него. Обработали входящие непрочитанные письма в подпроцессе с помощью регулярных выражений и передали в amoCRM.