Шаги автоматизаций
Шаги amoCRM выполняют CRM-действие в заданной точке автоматизации Senler и сохраняют результат в переменные запуска. Они используют аккаунт, подключённый к текущему проекту.
Как добавить шаг
В редакторе автоматизации нажмите «Добавить шаг» и выберите приложение amoCRM. Добавьте одно из десяти действий, заполните обязательные поля и сохраните автоматизацию. Набор CRM-действий совпадает с инструментами агента.
Поля можно заполнять фиксированными значениями или переменными предыдущих шагов. Числовые ID должны содержать положительное целое число.
Начало: Изменение этапа сделки
Для реакции на ручное или внешнее перемещение сделки создайте контекстную
автоматизацию с начальным шагом приложения «Изменение этапа сделки». Данные
события доступны в выбранной переменной запуска и содержат deal_id,
deal_name, price, old_status_id и new_status_id; pipeline_id передаётся,
если воронку удалось определить. Старый и новый этапы относятся к исходному
webhook. Название и бюджет читаются из amoCRM перед каждой попыткой доставки,
поэтому могут отличаться от значений на момент смены этапа.
Если сама автоматизация меняет этап, webhook также может запустить этот шаг. Чтобы не отправлять клиенту два подтверждения одного изменения, выберите одну ветку для финального сообщения. Например, в сценарии отмены заказа изменение сделки завершает основную ветку, а подтверждение закрытия отправляет только ветка webhook. Для этого события amoCRM должны быть подключены, а автоматизация с этим начальным шагом — опубликована и запущена.
Senler сначала запускает процесс в диалоге, который уже связан с этой сделкой. Только если точной связи нет, используется последний активный личный диалог связанного лида. Если активного диалога нет, но лид может получать сообщения, Senler создаёт личный диалог. После резервного выбора сделка запоминается в этом диалоге, и следующие события попадают туда по точной связи.
Создать контакт
Создание контакта требует contact_name; phone и email необязательны. Всегда создаёт новый контакт в amoCRM, не создаёт сделку и не ищет дубликаты по имени, телефону или email. Перед созданием проверьте «Получить контакт» для текущего лида.
Результат: contact_id и account_url — ссылка на контакт.
Изменить контакт
Обязателен contact_id и хотя бы одно изменение: contact_name, phone или email. Остальные поля не затрагиваются; пустое значение не очищает данные. Переданный телефон или email заменяет значения соответствующего поля контакта. Сделки не изменяются.
Результат: contact_id и account_url.
Создать сделку
Обязательны contact_id существующего контакта и deal_name. Необязательны price, pipeline_id, status_id, responsible_user_id и tags через запятую. Создаётся только новая сделка в amoCRM; данные контакта не меняются. Перед созданием проверьте список сделок контакта, чтобы не завести повторную заявку.
Результат: deal_id и account_url — ссылка на новую сделку.
При выполнении этих трёх действий в контексте лида Senler выбранный contact_id сохраняется в его переменную связи с amoCRM, заменяя прежнюю связь. Новая сделка также добавляется в переменную текущего диалога. В MCP-действиях без контекста лида/диалога эти связи не создаются. Для записи чужого контакта используйте действие без контекста текущего лида.
У всех трёх шагов один выход «Далее». Ошибка записи останавливает шаг, а не считается успешным созданием. В настройках «Создать сделку» можно выбрать воронку, этап и ответственного по умолчанию; параметры шага имеют приоритет.
Изменить сделку
Шаг требует точный deal_id. Доступны название, бюджет, воронка, этап, ответственный, причина отказа и теги. В конфигураторе воронка, этап и ответственный выбираются по названиям amoCRM.
Получить контакт
Передайте contact_id или оставьте его пустым, чтобы использовать контакт текущего лида Senler. Шаг имеет выходы «Найдено» и «Не найдено». На первом выходе found = true, доступны contact_id, contact_name, contact_phone и contact_email. Для телефона и email выбирается непустое рабочее значение (WORK), иначе первое непустое значение соответствующего поля; если значений нет — пустая строка. Если контакта или связи лида нет, выбирается «Не найдено» и возвращается только found = false.
Получить сделку
Передайте обязательный deal_id из предыдущего шага или события. Выходы — «Найдено» и «Не найдено». При found = true доступны deal_id, deal_name, deal_price, deal_pipeline_id и deal_status_id. Если сделки нет, возвращается только found = false. Шаг не получает контакт и не выбирает сделку автоматически.
Оба шага не ищут по имени. Сначала получите список сделок контакта, если точный ID сделки неизвестен. Ошибки связи, прав и лимитов завершают шаг ошибкой, а не направляют по выходу «Не найдено». В этой ветке не используйте поля найденной записи: они не возвращаются, и переменная, назначенная предыдущим запуском, не очищается автоматически.
В тестовом режиме оба шага имитируют «Не найдено» без обращения к amoCRM. Для проверки реальных данных выполните обычный запуск. Пример схемы: «Получить контакт» → «Найдено» → «Получить сделки контакта» → выбор сделки → «Получить сделку».
Получить сделки контакта
Передайте contact_id или оставьте его пустым, чтобы использовать контакт текущего лида. Параметр status выбирает открытые (open, по умолчанию), закрытые (closed) либо все (all) сделки; limit ограничивает результат числом от 1 до 50.
У шага две выходные связи: «Сделки найдены» и «Сделок нет». Проверка выполняется после фильтрации, поэтому при status = open закрытые сделки не ведут в ветку «Сделки найдены». Результат содержит массив deals, количество returned, общее число связанных сделок total_linked, признак truncated и ссылку на контакт. Массив можно целиком сохранить в переменную процесса, а ветки использовать без дополнительного условия.
Ветка «Сделок нет» выбирается только после полного чтения связанных сделок. При неполном ответе amoCRM, таймауте или более 1000 связанных сделок шаг завершается ошибкой, а не переходит по этой ветке. truncated относится только к ограничению итогового результата параметром limit.
При тестовом запуске автоматизации укажите contact_id явно: шаг имитирует пустой список и выбирает «Сделок нет». Это проверка схемы и переменных, а не наличия сделок в реальном аккаунте amoCRM.
Получить настройки amoCRM
Шаг возвращает массив pipelines с этапами, массив users с ответственными и признак users_available. Сохраните нужный массив в переменную процесса, если следующие шаги должны работать с актуальными ID amoCRM. Значение users_available = false означает, что подключённому пользователю amoCRM недоступен список сотрудников; это не ошибка получения воронок.
Добавить примечание
Передайте entity_type, entity_id и text. Значение leads добавляет примечание к сделке, contacts — к контакту.
Результат: note_id, entity_type и entity_id.
Создать задачу
Передайте entity_type, entity_id и text. Необязательные поля: срок в минутах complete_after_minutes, ответственный responsible_user_id и тип task_type_id.
Срок по умолчанию — 60 минут. Результат: task_id, entity_type и entity_id.
ID ответственного и типа задачи должны быть положительными целыми числами. Тестовый режим проверяет эти параметры так же, как обычный запуск, но не создаёт задачу в amoCRM и не проверяет существование указанных ID в аккаунте.
Переменные и повторные запуски
Сохраните нужные поля результата в переменные процесса и используйте их в следующих шагах. Например, deal_id подходит для последующего примечания или задачи, а account_url — для внутреннего уведомления оператору.
Повтор одной технической доставки шага возвращает сохранённый результат и не дублирует запись. Новый запуск «Создать контакт» или «Создать сделку» создаёт новую запись. Если следующий шаг или повторный сценарий должен изменить ту же сделку, сохраните полученный deal_id в переменную процесса и передайте его явно.