Как работают автоответы

Логика воронки, все поля правила и как завести новое кодовое слово. Перейти в панель
Коротко Почему два шага, а не один Что вообще разрешает Instagram Как выбирается правило Поля правила по одному Кнопки быстрого ответа Как завести новое слово Помощник Как читать логи Грабли

Коротко

Пост даёт своё приглашение. Кодовое слово отдаёт свой гайд. Это вся конструкция.

Человек пишет плюсик под постом — в личку ему уходит приглашение, привязанное именно к этому посту: подпишись и пришли слово. Он присылает слово — получает гайд, привязанный к этому слову. Другой пост — другое слово и другой гайд, всё независимо.

комментарий «+» под постом про канарейку │ ├─ публичный ответ под комментарием └─ в личку: «подпишись и пришли слово канарейка» [канарейка] ↑ кнопка │ человек прислал слово │ узнаём подписку ┌─────┴─────┐ подписан не подписан │ │ гайд про «подпишись и нажми ещё раз» [канарейка] канарейку │ следующее сообщение — подписка проверяется заново
Кодовое слово — единственный ключ. Система не помнит ни стадий, ни того, получал ли человек гайд раньше: прислал слово — получил гайд. Прислал во второй раз — получил во второй раз.

Почему два шага, а не один

Хочется отдавать ссылку прямо в ответ на комментарий, одним движением. Так не выйдет, и причина не в лени — в правилах платформы.

Проверить, подписан ли человек, можно только после того, как он сам написал. Документация Meta формулирует это дословно:

«A person sets user consent only when they send a message to your business, or click icebreakers or persistent menu» и отдельно: «If a person comments on a post or comment but has not sent a message to a business, your app receives an error».

То есть комментарий согласия не даёт. Подписка — тоже не даёт. Пока человек молчит, про него не известно ничего, и спросить не у кого: приходит не «не подписан», а ошибка.

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

Что вообще разрешает Instagram

ЧтоПравило платформы
Написать первымнельзя Единственная лазейка — ответ на комментарий
Ответ на комментарийодно сообщение На каждый комментарий ровно одно, окно 7 дней
Обычная переписка24 часа Отсчёт от последнего сообщения человека, каждое новое продлевает
Узнать подпискуТолько после его сообщения или нажатия кнопки
Кнопки быстрого ответадо 13 До 20 символов подпись, только текст
Заблокировавшиене видны Ни профиля, ни подписки
Частота2 запроса в секунду

Как выбирается правило

На каждое событие система проходит три фильтра подряд:

  1. Событие совпало? Комментарий отсекает правила для директа и наоборот.
  2. Текст совпал? По слову, регулярке или «любой текст».
  3. Условия совпали? Пост — для комментария, подписка — для директа.

Если подходит несколько — выигрывает более частное, в таком порядке старшинства:

  1. привязано к конкретному посту
  2. имеет условие по подписке
  3. ищет слово, а не «любой текст»
  4. выше приоритет
  5. создано раньше

Проверка идёт до первого подходящего. Если ни одно не подошло, в лог пишется не «нет правила», а конкретная причина — см. Как читать логи.

Поля правила по одному

Срабатывает на

Комментарий под постом — первый шаг воронки. Сообщение в директе — второй. От этого зависит, какие поля вообще имеют смысл: у правила для директа нет ни поста, ни публичного ответа, и панель их прячет.

Подписка

Поле есть только у правила для директа: только подписчикам (отдаём гайд) и только не подписанным (просим подписаться). Обычно на одно кодовое слово заводятся оба правила: они отличаются только этим полем и текстом.

У правила на комментарий поля нет вовсе, и это не упрощение интерфейса: до первого сообщения человека подписку узнать не у кого. Формально проверка сработала бы для того, кто когда-то уже писал в директ, — но для нового человека она молча провалится, а приглашение нужно именно новым.

Если подписку не удалось узнать вообще (сбой API), человек уходит по ветке «не подписан». Лишний раз попросить подписаться не страшно; отдать гайд неподписанному — страшно, потому что ради этого всё и затевалось.

Тип совпадения

ТипКогда срабатывает
содержитСлово встречается внутри текста. Рабочий вариант по умолчанию: ловит и «канарейка», и «канарейка!!!»
точноеТекст равен слову целиком. Строго, но «канарейка 🦜» уже не пройдёт
регулярное выражениеДля нескольких вариантов сразу: канарейк|попуга
любой текстЧто угодно непустое. В директе такое правило отвечает всем подряд — ставить осознанно

Регистр не важен нигде: «Канарейка» и «канарейка» — одно и то же.

Ключевое слово

Для комментария это то, что человек пишет под постом — обычно +. Для директа — само кодовое слово.

Единственная связь, которую система не проверяет. Слово, которое вы просите в тексте приглашения, должно совпадать со словом в правиле для директа. Попросили «канарейка», а правило ждёт «канарейку» — воронка порвётся молча, и в логе будет «текст не подошёл ни под одно ключевое слово».

Пост

Только для комментариев. Все посты — правило ловит плюсики везде. Выбор из списка — только под этим постом. Так каждый пост получает своё приглашение со своим словом.

Пост выбирается из списка последних 50 или вставляется ссылкой. Руками id вводить не нужно и не стоит — см. Грабли.

Сообщение в директ

Сам текст. {{link}} подставляет ссылку, {{username}} — имя человека. Если ссылка задана, а плейсхолдер написан с опечаткой, ссылка допишется в конец сама: лучше так, чем отправить человеку висящие скобки.

Ссылка

То, ради чего всё. Есть только у правила, которое отдаёт обещанное; у приглашения и у просьбы подписаться ссылки быть не должно.

Кнопки под сообщением

Подписи через запятую. Подробно — ниже.

Публичный ответ

Необязательный комментарий под комментарием человека — «Отправил в личные сообщения!». Виден всем, поэтому работает как реклама воронки. Если не отправится, на основной ответ это не влияет.

Приоритет

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

Кнопки быстрого ответа

Кнопка избавляет человека от печатания: тап — и кодовое слово отправлено. Приходит оно обычным сообщением, где текст равен подписи кнопки, поэтому подпись должна точно совпадать с кодовым словом — тогда правило ловит и нажатое, и напечатанное руками.

Ограничения платформы: до 13 кнопок, до 20 символов подпись, только текст. Панель не даст сохранить длиннее — Meta обрезает такое молча, и человек видит огрызок.

В ответе на комментарий кнопки — эксперимент. Документация Meta описывает кнопки только для обычной переписки, а ответ на комментарий — только с текстом. Прямого запрета нет, поэтому мы пробуем: если платформа откажет, то же сообщение уходит обычным текстом, а в логе появляется пометка «кнопки не приняты, отправлено текстом». Человек в любом случае получает сообщение.

В обычной переписке кнопки работают штатно. Самое полезное место — просьба подписаться: человек подписывается и возвращается в переписку, где его ждёт кнопка с тем же словом.

Как завести новое слово

Под каждый пост — три правила. Ниже на примере слова симулякр.

1. Приглашение2. Гайд3. Просьба подписаться
Срабатывает накомментарийдиректдирект
Подписканеважнотолько подписчикамтолько не подписанным
Типсодержитсодержитсодержит
Слово+симулякрсимулякр
Поствыбрать нужный
Ссылканетна гайднет
Кнопкисимулякрнетсимулякр
Сообщениеподпишись и пришли слово симулякрдержи гайд {{link}}подпишись и нажми кнопку ещё раз
Приглашение обязательно привязать к посту. Иначе оно поймает плюсики под всеми постами сразу, и человек с поста про канарейку получит просьбу прислать «симулякр».

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

Помощник

Всё то же самое можно не заполнять руками, а сказать словами: «сделай воронку на последний пост, слово симулякр, ссылка такая-то». Помощник в панели уточнит, чего не хватает, и покажет черновик из трёх правил.

Сам он ничего не создаёт. Правила появляются только после нажатия кнопки «Создать» — и создаются тем же путём, что и из формы, со всеми проверками. Выдуманный пост будет отклонён, слишком длинная кнопка тоже. Предложить он может что угодно, сделать — только то, что можно сделать руками.

Что стоит сказать сразу, чтобы не переспрашивал: какой пост, какое кодовое слово, куда ведёт ссылка. Тексты сообщений он предложит сам — их потом можно поправить.

Работает на бесплатном тарифе Groq, поэтому изредка упирается в лимит: помощник подождёт и повторит сам, а если не выйдет — скажет об этом прямо. Кнопка «Заново» стирает переписку; она и так живёт только в открытой вкладке.

Как читать логи

Две таблицы внизу панели: комментарии и входящие в директе. В обеих под статусом печатается причина — чтобы не гадать, почему человек ничего не получил.

Что написаноЧто случилось
отправленоВсё хорошо, сообщение ушло
слово подходит правилу №N, но оно стоит на другом постеПравило привязано к другому посту. Самая частая причина молчания
текст не подошёл ни под одно ключевое словоОпечатка, другое слово или человек просто что-то написал
правило №N только для подписчиков, а человек не подписанУсловие по подписке отсекло. Если нет правила «для не подписанных», человек не получит ничего
подписку узнать не удалось, отправлена просьба подписатьсяСбой API. Ушла просьба подписаться, гайд не ушёл
правило №N проверяет подписку, а узнать её не удалосьКомментарий: человек ещё не писал, узнать нечего. У правил на комментарий условия по подписке быть не должно
кнопки не приняты, отправлено текстомПлатформа отказалась от кнопок в ответе на комментарий. Сообщение доставлено
лимит 3 автоответов в часЗащита от петли с чужим ботом, см. Грабли
сообщение без текстаВложение, шаблон или стикер — ловить нечем

Колонка Пост в таблице директа показывает, с какого поста человек пришёл. Это известно только из его комментария: в самом директе связи с постом нет, поэтому у написавших напрямую там стоит «сам».

Грабли

У поста два разных id

Сайты «узнать id поста» и разметка самой страницы отдают внутренний id вида 3960614136553075751. Instagram присылает нам совсем другой — вида 18108661865041383. Правило с внутренним id не сработает никогда. Поэтому пост выбирается из списка или вставляется ссылкой: система приведёт любую форму к нужной сама.

Чужой бот в переписке

В аккаунте уже работает сторонняя автоматика. Наш ответ может вызвать её ответ, а тот — наш: получится вечный пинг-понг. Поэтому больше трёх автоответов в час одному человеку не уходит ни при каких правилах.

Слово внутри другого слова

«содержит» ищет подстроку. Слово да найдётся в «дай», «правда», «даже». Кодовые слова должны быть длинными и редкими.

Кнопка «выключить» выключает

Серый ярлык слева — это состояние правила, кнопка справа — действие. Раньше это было одно и то же, и правила гасили кликом, думая, что включают.

Номера правил не переиспользуются

Удалили правило №12 — следующее будет №13, а не №12. Номер в логе всегда указывает на конкретное правило, даже если их сейчас всего три.

Повторный комментарий

Плюсик под тем же постом второй раз — второе приглашение. Ответ на комментарий разрешён на каждый комментарий отдельно, и система его отправит: она не помнит, что человек уже приходил.

Окно в 24 часа

Если человек написал и пропал, ответить ему позже суток уже нельзя. Ответ на комментарий это ограничение обходит — но он ровно один и живёт 7 дней.