AMI SmartFlow — инструкция
Автоматизация процессов в amoCRM без программирования: сценарии, бизнес-процессы, переменные, веб-хуки и отладчик.
Документ описывает виджет целиком: установку, каждый экран, все события, условия и действия, язык подстановок, а также разбор частых проблем. Разработчик — команда AMI-Boost, сторонняя по отношению к amoCRM.
Содержание
- Что делает виджет
- Установка и первый запуск
- Первый сценарий за пять минут
- Сценарии
- Подстановки
- Переменные
- Процессы
- Входящие веб-хуки
- Триггерные ссылки
- Salesbot и цифровая воронка
- Запуск по расписанию
- Запуск через API
- Что видно в карточке сделки
- Отладка: история, лента, здоровье
- Защита от зацикливания
- Частые вопросы и проблемы
- Поддержка
Что делает виджет
AMI SmartFlow превращает правила отдела продаж в автоматику. Правило описывается тремя частями:
- событие — что произошло в amoCRM: добавили сделку, сменили этап, пришло сообщение, завершили задачу;
- условия — кому это правило подходит: бюджет больше ста тысяч, ответственный из списка, поле заполнено, сегодня будний день;
- действия — что сделать: поставить задачу, сменить этап, написать примечание, отправить веб-хук во внешнюю систему.
Для простых правил хватает сценария: событие → условия → действия. Для длинных историй с ожиданием и ветвлениями есть процессы: схема из шагов, по которой сделка идёт как по регламенту, а руководитель видит, на каком шаге она стоит.
Всё настраивается мышкой. Программирование не требуется нигде, кроме необязательного пункта — отправки веб-хука во внешнюю систему, где нужно знать адрес и формат приёмника.
Установка и первый запуск
- В amoCRM откройте Настройки → Интеграции, найдите AMI SmartFlow и нажмите Установить.
- Разрешите доступ. Виджет создаёт подписку на события аккаунта — без неё сценарии не будут запускаться автоматически.
- Откройте карточку виджета и нажмите Настроить. Откроется рабочая страница: сценарии, процессы, переменные, история.
Первые 14 дней доступны все возможности. Дальше нужен платный доступ; настройки при этом никуда не деваются и продолжают работать сразу после продления.
Кто может настраивать. Страница настройки доступна пользователям с правами администратора amoCRM. Сценарии работают для всего аккаунта, независимо от того, кто их создал.
Первый сценарий за пять минут
Задача: когда сделка попадает на этап «Переговоры», поставить ответственному задачу «Позвонить и назначить встречу» на завтра.
- Вкладка Сценарии → Создать сценарий.
- Событие — Статус сделки изменён.
- Название: «Позвонить после перехода в переговоры». Название видно в списке и в истории — пишите так, чтобы через полгода было понятно.
- В блоке условий нажмите Добавить условие: «Статус сделки» → «Равно» → выберите «Переговоры».
- Ниже, в действиях, нажмите Добавить действие → Поставить задачу.
Текст:
Позвонить {{contact.name}} и назначить встречу. Срок: завтра. - Включите переключатель Сценарий включён и нажмите Сохранить сценарий.
- Не дожидаясь реальной сделки, разверните блок Проверка на сущности, введите номер любой сделки и нажмите Проверить. Виджет покажет, сошлись ли условия и какая именно задача была бы поставлена. Ничего при этом не изменится.
Готово. Дальше — то же самое, но с бóльшим числом условий и действий.
Сценарии
Сценарий состоит из блоков. Блок — это набор условий и набор действий: если условия сошлись, выполняются действия этого блока. Блоков может быть несколько, и они проверяются по очереди — так одно событие обслуживает несколько правил.
Внутри блока условия объединяются И (нужны все) либо ИЛИ (достаточно одного). Переключатель — в шапке блока.
У сценария есть общие настройки:
- Раздел — папка для группировки в списке.
- Не чаще одного раза в N секунд — защита от повторных запусков по одной и той же сущности.
- Сценарий включён — выключенный сценарий не запускается ничем, включая кнопку в карточке.
События запуска
Сделки: добавлена, изменена, изменён статус, изменён ответственный, удалена, восстановлена.
Контакты: добавлен, изменён, изменён ответственный, удалён, восстановлен.
Компании: добавлена, изменена, изменён ответственный, удалена, восстановлена.
Покупатели: добавлен, изменён, изменён ответственный, удалён.
Задачи: добавлена, изменена, изменён ответственный, завершена, удалена.
Примечания: в сделке, в контакте, в компании, у покупателя.
Чаты: входящее сообщение, исходящее сообщение.
Прочее: заявка в неразобранном, свой сценарий (кнопка в карточке), по расписанию, входящий веб-хук, переход по ссылке, запуск из другого сценария.
Событие выбирается один раз при создании сценария и позже не меняется: от него зависит, какие данные доступны условиям.
Важно про «изменена». Событие приходит при любом изменении сущности, включая сделанное самим виджетом. Чтобы сценарий не сработал на собственную правку, добавьте условие по изменившему пользователю или используйте более точное событие — «Статус изменён», «Ответственный изменён».
Условия
Сравнение состоит из трёх частей: что сравниваем, как сравниваем, с чем.
Что сравниваем — 74 показателя, сгруппированных по источнику:
| Группа | Что доступно |
|---|---|
| Сделка | название, бюджет, статус, воронка, ответственный, теги, даты создания и изменения, создавший и изменивший, причина отказа, любое доп. поле, счётчики задач (всего, открытых, просроченных), дата ближайшей задачи, число контактов, товары |
| Контакт | название, имя, фамилия, телефон, e-mail, должность, ответственный, теги, даты, создавший, любое доп. поле, число сделок (всего, открытых, успешных), сумма сделок |
| Компания | название, телефон, e-mail, ответственный, теги, даты, любое доп. поле, число и сумма сделок |
| Покупатель | название, ответственный, теги, дата создания, доп. поле |
| Задача | тип, текст, тип сущности, завершена ли, результат, срок, длительность, ответственный |
| Примечание | тип, текст, тип звонка, длительность и статус звонка, заголовок и тип письма, автор |
| Сообщение | текст, источник, направление |
| Система | текущая дата, время, день недели, значение переменной, значение из веб-хука, произвольное выражение |
Как сравниваем: равно, не равно, больше, больше или равно, меньше, меньше или равно, содержит, не содержит, в списке, не в списке, заполнено, не заполнено, соответствует и не соответствует регулярному выражению.
С чем сравниваем: текстом, числом, значением поля другой сущности, переменной, значением из веб-хука, текущей датой или временем, днём недели, конкретной датой, пользователем (выбранным, ответственным, изменившим, создавшим).
Сравнение считается по типу показателя, а не по виду текста: даты сравниваются как даты, время как время, числа как числа. Поэтому «дата ближайшей задачи меньше чем завтра» работает так, как ожидается.
Регулярные выражения. Совпадения из скобок доступны действиям того же блока
как {match.1}, {match.2} и так далее. Это способ вытащить номер заказа из
текста письма и положить его в поле.
Действия
38 действий, сгруппированных по смыслу.
Сущности и поля (12). Создать сделку, контакт, компанию. Копировать сделку. Сменить значение поля, ответственного, статус сделки, теги. Найти сущность по телефону, почте или полю. Прикрепить и открепить сущность. Нормализовать телефон и e-mail.
Активности (6). Поставить задачу, изменить задачу, добавить примечание, подписать сотрудника на сделку, запустить и остановить Salesbot.
Товары (3). Добавить товары, удалить товары, создать чек-лист.
Управление (5). Запустить другой сценарий, изменить значение переменной, удалить отложенное действие, отправить веб-хук, запустить процесс.
Интеграции (12). Отправить письмо, уведомление в Telegram, уведомление сотруднику, СМС. Создать документ, счёт, конференцию. Подтянуть реквизиты, выгрузить в таблицу, распределить сделку, смарт-кнопки, расшифровать звонок. Часть этих действий требует соответствующего виджета в аккаунте — если его нет, действие в истории помечается как пропущенное с объяснением, а не «падает».
Каждое действие можно временно выключить, не удаляя: переключатель в его шапке.
Отложенные действия
У любого действия есть таймер. Варианты отсрочки:
- сразу — по умолчанию;
- через N минут, часов, дней или недель;
- в конкретное время дня — например, завтра в 9:00;
- от даты в поле — за три дня до даты в поле «Дата встречи», в день рождения контакта и так далее.
Отложенное действие уходит в очередь и выполняется, когда придёт срок. В момент выполнения сущность перечитывается заново: поля и ответственный к тому времени могли поменяться, и писать нужно в актуальные данные.
Галочка перезаписывать отменяет ранее поставленное задание того же действия по той же сущности. Это важно для напоминаний по дате: если дату исправили, старое напоминание должно исчезнуть, иначе клиент получит поздравление дважды.
Очередь видна во вкладке История → Очередь отложенных, оттуда же задание можно снять.
Проверка на сущности
В редакторе сценария есть блок Проверка на сущности. Укажите номер сделки (последнее число в адресе карточки) и нажмите «Проверить». Виджет покажет:
- какие условия сошлись, а какие нет, — с обоими значениями сравнения;
- что сделало бы каждое действие, с уже подставленными переменными;
- что именно ушло бы в amoCRM.
При этом ничего не меняется: данные читаются настоящие, но всё исходящее перехватывается. Это безопасный способ проверить настройку на живой сделке, не ставя задачу настоящему менеджеру и не отправляя клиенту тестовое сообщение.
Ограничения: проверка запускается на сущности, а не на событии, поэтому условия по тексту примечания, результату задачи или тексту сообщения увидят пустоту. Отложенные действия не выполняются — показывается, что они ушли бы в очередь.
Подстановки
Подстановка — это {{источник}} или {{источник:модификатор}} внутри любого
текстового поля: текста задачи, примечания, письма, тела веб-хука.
Кнопка с фигурными скобками рядом с полем открывает каталог: 58 источников, глобальные переменные аккаунта, пути из последнего принятого веб-хука и все доп. поля аккаунта с их идентификаторами. Соседняя кнопка показывает результат на реальной сделке — это самый быстрый способ убедиться, что подстановка написана верно.
Источники
Сделка: {{lead.id}}, {{lead.name}}, {{lead.price}}, {{lead.status}},
{{lead.pipeline}}, {{lead.responsible.name}}, {{lead.tags}},
{{lead.createdAt}}, {{lead.url}}, {{lead.cf(123456)}} — доп. поле по
идентификатору, {{lead.catalogElementNames}}, {{lead.tasksCount(open)}}.
Контакт: {{contact.name}}, {{contact.first_name}},
{{contact.last_name}}, {{contact.phone}}, {{contact.email}},
{{contact.phones}}, {{contact.emails}}, {{contact.position}},
{{contact.company_name}}, {{contact.cf(123456)}}, {{contact.leadsCount}},
{{contact.leadsCount(success)}}, {{contact.leadsSum(success)}}.
Компания: {{company.name}}, {{company.phone}}, {{company.email}},
{{company.cf(123456)}}, {{company.leadsSum}}.
Даты: {{date.now}}, {{date.today}}, {{date.tomorrow}},
{{date.yesterday}}, {{date.custom(+7 days)}}, {{date.next(monday)}}.
Люди: {{user.name}} — тот, кто вызвал событие; {{users(1234567).name}} и
{{users(1234567).email}} — конкретный сотрудник.
Данные события: {note.text}, {note.type}, {call.duration},
{call.status}, {call.direction}, {message.text}, {task.text},
{task.result}, {entity.id}, {modified_by}, {match.1}.
Прочее: {hook.order.total} — путь в теле принятого веб-хука, {hook.raw} —
тело целиком, {var.report} — переменная, {reset} — очистить поле,
{tglink:12} — триггерная ссылка.
Модификаторы
Ставятся через двоеточие и применяются по цепочке слева направо.
Числа: :calc — вычислить выражение, :format(2) — разряды и знаки после
запятой, :float(1), :round(2), :ceil, :floor, :spell_price — сумма
прописью.
Текст: :ucf — первая буква заглавная, :ucw — каждое слово,
:upc, :lwc, :trim, :replace(было,стало), :translit, :toNumeric —
оставить только цифры, :length, :slice(0,10), :fio(1) — часть ФИО.
Даты: :df(d.m.Y) — формат, :dm(+3 days) — сдвиг, :date_diff — разница в
днях, :addworkdays(10) — прибавить рабочие дни, :isworkday.
Логика: :if(=,значение,да,нет), :ifempty(чем заменить),
:ifnotempty(чем заменить). Сравнений восемь: =, !=, >, <, >=, <=,
in (перечисление через ||), match (содержит).
Списки: :split(,,1) — элемент по разделителю, :part(br) — собрать список
строкой, маркированным или нумерованным.
Примеры
Здравствуйте, {{contact.first_name:ucf}}! Ваш заказ на {{lead.price:format(0)}} ₽ принят.
Предоплата: {{ ({lead.price}*0.3):calc:format(0) }} ₽
Перезвонить: {{ {date.now}:dm(+2 days,d.m.Y) }}
Телефон для API: {{contact.phone:toNumeric}}
Крупный клиент: {{lead.price:if(>,500000,да,обычный)}}
Обращение: {{contact.first_name:ifempty(уважаемый клиент)}}
В выражениях :calc доступны четыре действия, скобки, проценты, степень и
функции min, max, round, ceil, floor, abs, sqrt.
Переменные
Переменная хранит значение между запусками. Три области видимости:
- Глобальные (аккаунта) — одно значение на весь аккаунт: счётчик заявок,
текст акции, адрес склада. Заводятся во вкладке Переменные, читаются как
{var.код}. - По сущности — своё значение у каждой сделки или контакта: сколько раз звонили, дата последнего касания.
- Процессные — живут внутри одного запущенного процесса: счётчик попыток, выбор менеджера в форме.
У каждой переменной есть тип: текст, число, флажок, дата, дата и время, список, множественный список. Тип определяет, чем заполняют значение и что считать ошибкой.
Записывают переменные действием Изменить значение переменной (в сценарии) или шагом Переменная (в процессе). Значение можно задать заново, прибавить или вычесть — это штатный способ вести счётчик.
Читаются переменные и в подстановках, и в условиях: показатель «Значение переменной» в группе «Система».
Процессы
Процесс — это схема. Сценарий срабатывает и заканчивается, процесс живёт: ждёт события, ждёт человека, ветвится по результату, возвращается назад.
Когда нужен процесс, а не сценарий: согласование скидки, выдача заказа, онбординг клиента — всё, где есть ожидание и несколько исходов.
Шаги
| Шаг | Что делает |
|---|---|
| Старт | точка входа; здесь же настраивается, как процесс запускается |
| Действие | любое из 38 действий сценария |
| Условие | развилка «да / нет» |
| Мультиусловие | развилка на много веток по значению |
| Разделить | пустить процесс по нескольким веткам одновременно |
| Собрать | дождаться веток и продолжить одной |
| Задача с результатом | ставит задачу; каждый вариант результата — своя ветка |
| Форма | менеджер заполняет поля прямо в карточке сделки; кнопки формы — свои ветки |
| Пауза | ждать срок или события CRM |
| Запустить сценарий | вызвать сценарий на текущей сущности |
| Запустить процесс | вложенный процесс, с ожиданием завершения или без |
| Переменная | записать, прибавить, вычесть |
| Перейти к шагу | вернуться назад — циклы и повторные попытки |
| Остановить | завершить с итогом: успех, неудача, нейтрально |
Как запускается
- кнопкой в карточке сущности;
- по событию CRM — тот же каталог событий, что у сценариев, плюс условия автозапуска;
- из сценария действием «Запустить процесс»;
- из другого процесса как вложенный.
По умолчанию на одной сущности не может идти два экземпляра одного процесса — это почти всегда ошибка настройки. Разрешается отдельной галочкой.
Редактор схемы
- перетаскивайте блоки мышью; поднесите блок к кнопке «плюс» соседнего шага, и он прикрепится к нему;
- волшебная палочка — «Упорядочить связи»: расставляет блоки по порядку шагов автоматически;
- инструмент выделения — рамкой,
Ctrl+Aвыделяет всю схему; Ctrl+Zотменяет последнее изменение;- колесо мыши — масштаб, кнопка «по размеру» — вписать схему в экран.
Черновик и публикация
Схема правится в черновике и начинает работать только после публикации. Уже запущенные экземпляры продолжают идти по той версии, с которой стартовали, — поэтому правка посреди дня не ломает сделки, которые уже в работе.
История версий доступна из редактора: видно, сколько экземпляров идёт по каждой версии, и любую можно вернуть.
Контроль сроков
У шага есть срок: сколько часов процесс может на нём стоять. По истечении ставится задача — по умолчанию ответственному за сущность, можно указать конкретного сотрудника. Ветка при этом не меняется: сообщить, что процесс встал, — решение более мягкое, чем увести его силой.
Входящие веб-хуки
Приёмник принимает заявку из внешней системы: с сайта, из формы, из другого сервиса.
Порядок работы:
- Вкладка Хуки → Создать приёмник. Скопируйте адрес.
- Отправьте на него тестовую заявку из вашей системы. Принимаются JSON и обычная форма.
- Экран покажет последнее принятое тело — по нему и настраивается всё остальное. Гадать о формате не нужно.
- Настройте поиск сущности: по какому полю тела искать контакт (телефон, почта). Если нашли — сценарий работает с найденным контактом; если нет — сценарий события «Входящий веб-хук» может создать нового.
- Создайте сценарий на событие Входящий веб-хук и укажите в нём этот приёмник.
Данные тела доступны в условиях и подстановках по пути: {hook.order.total},
{hook.client.phone}. Тело целиком — {hook.raw}.
Триггерные ссылки
Ссылка отправляется клиенту, и её открытие запускает сценарий. Так узнают, что клиент открыл коммерческое предложение или подтвердил запись.
- Вкладка Ссылки → создайте ссылку, укажите, куда перенаправлять клиента после перехода.
- Вставьте в письмо или сообщение подстановку
{tglink:12}, где 12 — номер ссылки. - Создайте сценарий на событие Переход по ссылке.
В списке виден счётчик переходов по каждой ссылке.
Salesbot и цифровая воронка
Salesbot. В конструкторе бота есть шаг AMI SmartFlow: выберите в нём сценарий или процесс, и бот запустит его на своей сделке. Так автоматизация подключается к диалогу с клиентом.
Цифровая воронка. На этапе воронки можно поставить блок AMI SmartFlow и выбрать сценарий или процесс. Он запустится, когда сделка придёт на этот этап.
В обоих конструкторах виджет показывает список ваших сценариев и процессов по названию — идентификаторы вводить не нужно.
Запуск по расписанию
Событие По расписанию запускает сценарий по времени, а не по действию в CRM.
Периодичность: каждые N минут (не чаще пяти), ежедневно в указанное время, по дням недели, ежемесячно указанного числа. Для 31 числа в коротких месяцах используется последний день месяца.
Отдельно настраивается выборка: по каким сущностям пройти — воронка и этапы, ответственный, «не трогали N дней», ограничение по числу сущностей за проход. Так делаются регулярные обходы: «каждый понедельник поставить задачи по сделкам, которые висят в переговорах больше недели».
Ближайший запуск показывается прямо в настройке.
Запуск через API
Сценарий можно запустить извне — из внешней системы или скрипта.
Адрес и ключ — во вкладке Триггеры. Запрос:
POST https://api.ami-boost.ru/sf/triggers/api/<ключ>
Content-Type: application/json
{
"scenarioId": "…",
"entity": "lead",
"entityAmoId": 12345678
}
Можно передать список сущностей — до 50 за запрос. Ответ приходит после обработки: видно, что запустилось, а что отклонено и почему.
Что видно в карточке сделки
Вкладка AMI SmartFlow — что автоматика делает с этой сделкой: идущие процессы, на каком шаге стоят, чего ждут. Оттуда же процесс запускается кнопкой, ставится на паузу, перезапускается с нужного шага или останавливается.
Формы процессов — если процесс ждёт заполнения формы, она появляется прямо в карточке.
Выбор результата задачи — если задачу поставил процесс с ветвлением по результату, в самой задаче появляется выбор варианта. Закрывая задачу, менеджер сразу отвечает, чем она кончилась, и процесс идёт по нужной ветке.
Кнопка ручного запуска — сценарии с событием «Свой сценарий» доступны кнопкой из карточки.
Отладка: история, лента, здоровье
Три экрана отвечают на три разных вопроса.
История → Срабатывания
«Почему сработало вот так». По каждому срабатыванию видно: событие, сущность, блок, каждое условие с обоими значениями на момент решения и каждое действие с результатом. Значения сохраняются именно на момент запуска — к моменту разбора они уже другие.
Фильтры: по сценарию, по исходу, по номеру сущности.
История → Лента событий
«Дошло ли событие вообще». Показывает всё, что пришло к нам за сутки, включая то, чего не ждёт ни один сценарий, и тела, которые не удалось разобрать. Сюда идут, когда сценарий не сработал и в истории пусто: если события нет и в ленте — дело не в условиях, а в подписке или в самом событии.
История → Очередь отложенных и «Не удалось»
Очередь — задания с таймером, которые ждут срока. «Не удалось» — то, что не выполнилось даже с трёх попыток, с причиной и кнопкой «Повторить».
Сбои на стороне amoCRM (превышение частоты, недоступность) повторяются автоматически через 2, 10 и 30 минут. Ошибки настройки не повторяются: другого ответа они не дадут.
Здоровье
«У нас что-то не работает». Готовый ответ без фильтров: жива ли подписка на события, есть ли упавшие процессы, застрявшие задания, сценарии в защитном режиме, ссылки на удалённые поля и этапы.
Здесь же поиск по настройкам: где используется поле, этап, воронка, сотрудник, переменная, тег или произвольный текст. Спрашивайте перед тем, как удалять этап или снимать сотрудника: настройка, оставшаяся со ссылкой в пустоту, не сообщит о себе ничем.
Статистика
Расход операций по месяцам, срабатывания по дням, самые активные сценарии.
Защита от зацикливания
Автоматика, меняющая сущность, поднимает событие об изменении — и может запустить сама себя. Виджет защищается тремя способами:
- Ограничение частоты — повторный запуск сценария по той же сущности в заданном окне отклоняется. Окно задаётся в настройках сценария.
- Собственные изменения — событие о сущности, которую только что создал сам виджет, не поднимает автоматику.
- Всплеск запусков — больше сотни запусков одного сценария или процесса за минуту считается петлёй, и запуски останавливаются.
Отклонённый запуск попадает в историю с причиной — молча не пропадает ничего.
При проектировании помните главное правило: сценарий на событие «изменена» не должен менять ту же сущность без дополнительного условия.
Частые вопросы и проблемы
Сценарий не сработал. Проверьте по порядку: включён ли сценарий; то ли событие выбрано; дошло ли событие — вкладка История → Лента событий; сошлись ли условия — вкладка Срабатывания, там видно оба значения сравнения. Быстрее всего — прогнать сценарий кнопкой Проверка на сущности.
Подстановка выводит пустоту. Нажмите кнопку предпросмотра рядом с полем и посмотрите результат на реальной сделке. Частые причины: неверный идентификатор доп. поля, поле не заполнено, связанной сущности у сделки нет.
Сценарий сработал дважды. Обычно это два события подряд: изменение сущности и изменение статуса. Увеличьте окно «не чаще одного раза в N секунд» или используйте более точное событие.
Задача поставлена не тому. Проверьте параметр «Ответственный» в действии: «ответственный за сущность» и «конкретный сотрудник» — разные варианты.
Дата в поле не подставляется. Доп. поле типа «Дата» хранит время в
секундах — используйте модификатор формата: {{lead.cf(123456):df(d.m.Y)}}.
Действие пропущено с пометкой «требует виджет». Часть интеграционных действий работает через сторонние виджеты; поставьте нужный виджет в аккаунт.
Процесс встал. Откройте карточку сделки, вкладку AMI SmartFlow: видно, на каком шаге он стоит и чего ждёт. Оттуда же его можно перезапустить с нужного шага.
Сообщение о закончившемся сроке доступа. Настройки сохранены и продолжат работать сразу после продления — заново ничего настраивать не нужно.
Поддержка
Почта: info@ami-sales.ru Телефон: +7 (343) 302-16-36 Telegram: @ami_sales_amo_bot
Разработчик — команда AMI-Boost, сторонняя по отношению к amoCRM. По вопросам работы виджета обращайтесь к нам: в поддержке amoCRM о настройках AMI SmartFlow информации нет.