Перейти к содержимому

Узел-условие сравнивает текст сообщения, которое до него дошло, со словами, настроенными на этом узле, затем отправляет выполнение через выход Match (выход 0) или No Match (выход 1). При типе сопоставления Список ключевых слов (Keyword list) сообщение совпадает, если содержит хотя бы одно ключевое слово из списка. Обратное сопоставление инвертирует этот результат, а список без ключевых слов — или удалённый — совпадает с любым сообщением.

Тип сопоставленияНастройки, которые читаетСообщение совпадает, когда
anyнетВсегда. Узел сохраняет один выход, и каждое сообщение идёт по нему
containstextСообщение содержит настроенный текст
exacttextСообщение — это настроенный текст и ничего больше
keyword_listkeyword_list_id, reverse_keywordsСообщение содержит хотя бы одно ключевое слово из списка, или ни одно из них, когда включено обратное сопоставление
  1. Условие берёт текст сообщения, которое запустило выполнение — комментарий или личное сообщение.
  2. Условие, настроенное ждать ответа, паркует выполнение вместо того, чтобы что-либо сравнивать, и сравнивает текст ответа, когда он приходит. Нажатая кнопка считается текстом: условие сравнивает подпись кнопки.
  3. Тип сопоставления решает, как сравнивать. keyword_list загружает сохранённый список по его идентификатору и проверяет сообщение против ключевых слов этого списка.
  4. Обратное сопоставление инвертирует результат сравнения keyword_list, так что сообщение, не содержащее ни одного ключевого слова, совпадает.
  5. Список ключевых слов без ключевых слов и ссылка на список, которого больше не существует, оба дают совпадение, ничего не сравнивая.
  6. Результат выбирает выход. Match — это выход 0, No Match — выход 1, и выполнение продолжается по тому из них, который несёт связь. Выход без связи завершает выполнение на условии.
  7. Медиафильтры на том же узле — изображения, GIF и ссылки — это отдельные настройки, не участвующие в сравнении ключевых слов, хотя сообщение, не прошедшее один из них, всё равно уходит через No Match.
Сообщение доходит до условияОжидание ответа?Выполнение паркуется, пока не придёт ответВзять текст ответаВзять текст сообщения-триггераТип сопоставленияMatch, выход 0Сравнить с текстом узлаСравнить с ключевыми словами спискаОбратное сопоставление включено?Инвертировать результатОставить результатСовпало?No Match, выход 1 да нет any keyword_list да нет да нет no

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

  • Читает: ничего
  • Выходов: 1

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

  • Читает: text
  • Выходов: 2

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

  • Читает: text
  • Выходов: 2

Сообщение совпадает, когда оно является настроенным текстом и ничем больше.

  • Читает: keyword_list_id, reverse_keywords
  • Выходов: 2

Сообщение сравнивается с сохранённым списком ключевых слов, выбранным из выпадающего списка узла, и совпадает, если содержит хотя бы одно ключевое слово из этого списка. Список читается по идентификатору в момент сопоставления, так что редактирование списка меняет то, с чем совпадает этот узел, без пересохранения кампании. Сопоставление комментариев со списками ключевых слов описывает создание списка и его прикрепление.

{
"type": "condition",
"config": {
"match_type": "keyword_list",
"keyword_list_id": 41,
"reverse_keywords": false,
"wait_for_reply": false,
"filter_images": false,
"filter_gifs": false,
"filter_links": false
}
}

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

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

reverse_keywords применяется к типу сопоставления keyword_list и инвертирует результат сравнения. Match тогда несёт сообщения, не содержащие ни одного ключевого слова, а No Match — те, что содержат хотя бы одно. Больше ничего в сравнении не меняется.

Пустой или удалённый список ключевых слов

Заголовок раздела «Пустой или удалённый список ключевых слов»
СитуацияЧто делает условие
В списке нет ключевых словСовпадает с любым сообщением
Список, на который указывает узел, был удалёнСовпадает с любым сообщением

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

Текст комментарияНастройка условияОбратное сопоставлениеВзятая ветка
How much is shipping?Список ключевых слов с shipping и priceвыключеноMatch
How much is shipping?Список ключевых слов с shipping и priceвключеноNo Match
Beautiful, congratulationsСписок ключевых слов с shipping и priceвыключеноNo Match
Beautiful, congratulationsСписок ключевых слов с shipping и priceвключеноMatch
Beautiful, congratulationsСписок ключевых слов без ключевых словвыключеноMatch
Beautiful, congratulationsУдалённый список ключевых словвыключеноMatch
Стикер без текста, который приходит как {{sticker}}Список ключевых слов с shipping и priceвыключеноNo Match
Стикер без текста, который приходит как {{sticker}}Список ключевых слов с {{sticker}}выключеноMatch
How much is shipping?contains, с text, установленным на shippingнеприменимоMatch
Anything at allanyнеприменимоMatch, на единственном выходе узла

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

  • Регистр букв игнорируется, так что комментарий Shipping совпадает с ключевым словом shipping.
  • Ключевое слово совпадает внутри более длинного слова, так что ship совпадает с комментарием shipping.
  • Пунктуация рядом с ключевым словом не мешает совпадению, так что shipping? совпадает с ключевым словом shipping.
  • Эмодзи сравниваются как обычные символы, так что ключевое слово с одним эмодзи совпадает с комментарием, содержащим этот эмодзи.

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

Пока остальное не подтверждено, проверяйте каждое ключевое слово тестовым выполнением с холста: запустите кампанию с точным текстом, который вы ожидаете получить, и посмотрите, какой выход взяло условие. См. Тест и отладка кампании.

  • Комментарий без текста приходит с заполнителем вместо сообщения — {{sticker}} на Facebook, {{media}} в ответе Instagram — так что условию всегда есть с чем сравнивать. Список ключевых слов, содержащий именно эту строку, совпадает с такими комментариями.
  • Выполнение, припаркованное на условии, ожидающем ответа, сохраняет набор ключевых слов, с которым оно начало. Ответ, пришедший после того, как вы отредактировали список, сопоставляется со старыми ключевыми словами; следующее выполнение использует новые.
  • Условие с включённым фильтром изображений не совпадает с ответом, не несущим изображения, и направляет его в No Match, что бы ни говорили ключевые слова.
  • Изменение типа сопоставления или текста условия на холсте меняет кампанию только в вашем браузере. Действующее выполнение сравнивает с сохранённой версией графа, на которой оно началось, так что изменение применяется к новым выполнениям только после сохранения.
  • Условие никогда не подключается к другому условию, так что ветка проверяет текст сообщения один раз. Две проверки на одном пути нуждаются в двух ветках, или в списке ключевых слов, который покрывает оба набора слов.