Как создать workflow и задать запуск, описано в статье Основы workflow.
Добавить и соединить шаг
- Откройте workflow, вкладка Редактор.
- На панели Добавить узел: слева нажмите нужный шаг. Он появится на холсте.
- Потяните от нижней точки предыдущего шага к верхней точке нового. Если у шага несколько выходов, тяните от точки нужного выхода: Успех, Ошибка, Заполнено и так далее.
- Нажмите на новый шаг и заполните настройки в правой панели.
- Нажмите Сохранить, а когда workflow готов, Опубликовать.

Если у шага нет следующего шага на нужном выходе, запуск на нём завершается.
| Шаг на панели | Что делает | Выходы |
|---|---|---|
| Сообщение | Отправляет клиенту текст | один |
| Назначить | Назначает ответственного по диалогу | один |
| Добавить тег | Ставит клиенту тег | один |
| Удалить тег | Снимает с клиента тег | один |
| Ждать | Делает паузу | один |
| Условие | Выбирает ветку по данным | ветки и Иначе |
| Уведомить сотрудника | Присылает сотруднику уведомление | один |
| Запросить данные | Показывает сотруднику форму и ждёт ответа | Заполнено, Отменено, Истекло |
| Внешний вызов | Отправляет запрос в вашу систему | Успех, Ошибка, Уже выполнено |
| Показать сотруднику | Открывает сотруднику окно с данными | один |
Сообщение
- Нажмите на панели Сообщение и соедините шаг с предыдущим.
- Нажмите на шаг Отправить сообщение.
- В поле Текст сообщения напишите текст. Можно использовать
переменные:
Здравствуйте, $contact.name|клиент. - Раскройте Превью и проверьте, как сообщение увидит клиент.

В WhatsApp и Instagram сообщение уходит, только пока открыто 24-часовое окно. Если окно закрыто, шаг пропускается, и запуск завершается с причиной Окно 24 часа закрыто, невозможно отправить свободное сообщение.
Назначить
- Нажмите на панели Назначить и откройте шаг.
- В поле Роль выберите роль, например Продажник.
- В поле Как распределять выберите По наименьшей загрузке, чтобы назначить того, у кого меньше открытых диалогов, или По кругу, чтобы назначать сотрудников роли по очереди.

Назначаются только активные сотрудники. Если в роли таких нет, запуск завершается с причиной Нет активных сотрудников с ролью …
Добавить тег и Удалить тег
- Нажмите на панели Добавить тег или Удалить тег и откройте шаг.
- В поле Тег выберите тег, например Купил.

Если в категории тега можно выбрать только один тег, прежний тег этой категории снимается. Под полем появится подсказка, например Предыдущий тег из Статус снимется. Тег, поставленный или снятый workflow, другие workflow не запускает.
Ждать
- Нажмите на панели Ждать и откройте шаг Пауза.
- В разделе Сколько ждать впишите число и выберите единицу: минут, часов или дней. Пауза бывает до 7 дней.

Во время паузы запуск считается идущим. Если у workflow включено Останавливать, когда отвечает оператор, ответ сотрудника клиенту отменит запуск.
Условие
Пример: клиентам из Алматы отправить одно сообщение, остальным другое.
- Нажмите на панели Условие и откройте шаг.
- В поле Название ветки впишите Алматы.
- В условии выберите поле Поле: Город, оператор равно и впишите значение Алматы.
- Чтобы добавить в ветку ещё условие, нажмите Условие. Ветка сработает, только если выполнены все её условия.
- Чтобы добавить ветку, нажмите Добавить ветку.
- На холсте соедините каждую ветку и выход Иначе со следующими шагами. Без этого workflow не опубликуется.

Ветки проверяются по порядку, workflow идёт по первой подходящей. Если ни одна не подошла, он идёт по выходу Иначе.
Поля для условия:
- Имя контакта;
- Теги контакта: оператор содержит сравнивает название тега целиком;
- Статус диалога: значения
OPEN,CLOSED,SNOOZED; - Поле: …: поля карточки клиента;
- Своё поле (vars.…): путь без знака
$, напримерvars.http_status,vars.tariff,trigger.data.order_id,contact.custom.city.
Операторы: равно, не равно, содержит, не содержит, заполнено, не заполнено.
После внешнего вызова можно сделать ветку Создан с условием vars.http_status равно 201.
Уведомить сотрудника
Шаг присылает сотруднику системное уведомление со ссылкой на диалог.
- Нажмите на панели Уведомить сотрудника и откройте шаг.
- В поле Получатели выберите Тому, кто запустил (поставил тег), Ответственному по диалогу или Выбранным сотрудникам. Если workflow запустил не человек, первый вариант отправит уведомление ответственному.
- В поле Вид выберите Обычное, Успех — зелёное или Ошибка — красное. От вида зависит цвет всплывающего уведомления.
- Заполните Заголовок, если нужно, до 120 символов.
- В поле Текст напишите текст, до 2000 символов, можно с переменными:
$contact.name оплатил заказ,Ошибка CRM: $vars.http_error.

Если получателя нет, например у диалога нет ответственного, шаг ничего не отправляет, и workflow идёт дальше.
Запросить данные
Шаг показывает сотруднику форму и ставит workflow на паузу до ответа. Ответы доступны в
следующих шагах как $vars.<ключ поля>. Как настроить форму, описано в статье
Формы.

Внешний вызов
Шаг отправляет запрос в вашу CRM или другую систему и сохраняет ответ. Как его настроить, описано в статье Внешние вызовы.
Показать сотруднику
Шаг открывает сотруднику окно с данными, обычно с ответом внешнего вызова: баланс клиента, статус заказа, данные аккаунта.
- В шаге Внешний вызов выше добавьте в Сохранить из ответа строку с пустым путём,
выберите в переменную и задайте имя, например
info. - Нажмите на панели Показать сотруднику и откройте шаг.
- В разделе Что показать в поле Переменная запуска впишите
info. - В поле Заголовок окна впишите заголовок, можно с переменными:
CRM · $contact.name. Если оставить пустым, будет название кнопки или workflow.

Окно открывается у того, кто нажал кнопку. Если workflow запустился сам, окно откроется у
ответственного по диалогу. Ответ в формате карточки (title, sections) показывается как
есть, любой другой JSON показывается полями и таблицами. Значения в окне можно скопировать.
Если запуск упал раньше этого шага, в окне будет текст ошибки. Если ответа нет 30 секунд, веб покажет сообщение Ответ не пришёл. Посмотрите журнал запусков workflow.
Переменные
Переменная подставляет в текст значение из карточки клиента, диалога или предыдущих шагов.
Она пишется со знаком $: $contact.name.
Чтобы вставить переменную, раскройте раздел Переменные в настройках шага и нажмите Скопировать у нужной. В шаге Сообщение эта кнопка ещё и дописывает переменную в конец текста. В шаге Внешний вызов у полей есть кнопка Вставить переменную, в её списке есть ещё поля форм и сохранённые ответы шагов выше по workflow.

| Переменная | Значение |
|---|---|
$contact.name |
Имя клиента |
$contact.phone |
Телефон из карточки; если его нет и диалог в WhatsApp, номер этого диалога |
$contact.email |
Email из карточки |
$contact.telegram |
Ник Telegram с @ из карточки или из Telegram; если ника нет, в Telegram-диалоге телефон |
$contact.whatsapp |
WhatsApp из карточки или номер WhatsApp-диалога |
$contact.id |
ID клиента в Polygram |
$contact.custom.<ключ> |
Поле карточки по его ключу: $contact.custom.city |
$conversation.id |
ID диалога |
$conversation.status |
Статус диалога: OPEN, CLOSED, SNOOZED |
$conversation.channel |
Канал: WHATSAPP, INSTAGRAM, TELEGRAM |
$me.id, $me.name, $me.email |
Сотрудник, который запустил workflow: нажал кнопку или поставил тег. Пусто, если запустил не человек |
$vars.<имя> |
Данные запуска: ответы формы и то, что сохранено из ответа внешнего вызова |
$vars.http_status |
Код ответа последнего внешнего вызова |
$vars.http_error |
Текст ошибки последнего внешнего вызова |
$trigger.data.<поле> |
Данные, с которыми workflow запустила внешняя система (запуск Запрос извне) |
$random.pin |
Случайные 5 цифр |
$random.code |
Случайный код из 8 знаков: латинские строчные буквы и цифры |
Правила подстановки:
- Запасное значение пишется через вертикальную черту:
$contact.name|клиент. Оно подставится, если значения нет. - Если нет ни значения, ни запасного, в тексте сообщения или уведомления переменная
остаётся как есть. В теле внешнего вызова, собранном полями, она даёт
null. - Элемент списка пишется через точку с номером, счёт с нуля:
$vars.items.0.id. - Объект или список подставляется как JSON.
- Чтобы написать знак доллара без подстановки, поставьте перед ним обратную косую черту:
\$contact.name. $random.pinи$random.codeдают новое значение при каждой подстановке. Чтобы использовать одно значение в нескольких шагах, сделайте его значением по умолчанию поля формы и дальше берите$vars.<ключ поля>.