Skip to content
ChatterfyHelp Center
HomeGeneralCRMAI ManagerTrackerPlatformsFAQUpdate log
Основы и возможности
Подключение AI
Внутреннее устройство
AI Settings — detailed breakdown
AI Reply — detailed breakdown of the step
AI Routings — Deep Dive
AI Recognition — deep dive
AI Models — model selection
Промпты и переменные
  1. AI Manager
  2. Внутреннее устройство
  3. AI Routings — Deep Dive

AI Routings — Deep Dive

• AI Routings is the most misunderstood layer of AI in Chatterfy. It seems similar to a regular , но устроен иначе и решает другую задачу. Reference на сами Routings — , but it is built differently an

Updated August 30, 20268 min
• AI Routings is the most misunderstood layer of AI in Chatterfy. It seems similar to a regular Condition — conditional branching, но устроен иначе и решает другую задачу. Reference на сами Routings — AI Routings — semantic routing, but it is built differently and solves a different problem. Reference for Routings themselves — .
This article is about when to choose what, how to phrase conditions , and which anti-patterns break the funnel.
Do not mix tasks in one step
If CRM does not yet have a field for the branch (tag, amount, status), Condition will not help: you need Routings, or you need to enrich the lead data first. Conversely, if the value already exists and is unambiguous, Routings is extra noise and the extra cost of a model call.
The main point in one sentence
Condition branches by the exact value of a tag / field / amount. Routings branches by the meaning of the lead’s reply. In a real funnel, both are often used, at different steps.



Routings vs Condition

It is easy to confuse them, but they solve different tasks. Comparison:
Parameter
Condition
AI Routings
What it checks
Exact value of a field / tag / Sale Status
Meaning of the lead’s reply (via AI)
When it triggers
When entering the step
After the lead’s message at the AI Reply step
What must be in the data
Filled-in Custom Fields / tags / Sale Status
Only the text of the lead’s reply
Cost
Free (logic without AI)
Paid (AI Summary/Router call)
Binding
A separate step in a flow
Nodes bound to the AI Reply step
Decision cheat sheet
Condition — when the branch = an exact value in the data. Routings — when the branch = the meaning of what the lead has just written. In one funnel, both types are usually used, but at different stages of the journey.



When to choose Condition

When you already have a ready-made field/tag with an exact value. Examples:
  • The vip tag is assigned to a lead via webhook from an affiliate partner → branch for VIP.
  • Custom Field total_deposit > 100 → separate funnel for paying users.
  • Sale Status = first_touch → initial funnel.
  • Tracker Field source = facebook → different greetings for different channels.
More about the step — Condition — conditional branching.



When to choose Routings

When you need to branch based on what the lead WROTE. There is no exact value in the data yet:
  • The lead said “too expensive” / “already registered” / “I don’t have time” — objections. Each objection gets its own branch.
  • The lead wrote “I am from Italy” — country (without a separate recognition step and writing it to a Custom Field).
  • The lead expressed agreement / disagreement / requested additional information — three different paths.
  • The lead wrote something off-topic / unrelated — a separate branch to bring them back to the scenario.
How Router thinks
The model sees all Routings on the step and selects the most suitable condition. Therefore, the wording must be mutually exclusive and narrow enough — otherwise the “wrong” one will trigger or it will trigger too often.



When you need both

Often. Funnel example: Condition by tag vip → different starting steps. Inside the VIP branch — AI Reply with Routings by objections. Inside the branch for the “too expensive” objection — again Condition by total_deposit. It’s not an either/or choice, but both tools in the right places.
The Condition + Routings tandem
A typical technique: Condition splits broad classes (VIP / geo / status), and inside the branch, AI Reply with Routings catches the lead’s semantic responses. This is cheaper and more stable than 10 Routings for everything at once.



How to formulate conditions

Each Routing is a node with two required fields:
  • Title — a short name for the team, visible in the editor. Germany / Has objection / Asked for price.
  • • AI Routings condition — wording in English that the AI Summary/Router model uses to decide whether it triggered or not.
About the Title field
Title is for the team in the editor: short and human-readable (Germany / Price objection). It does not affect the lead's response text. Only the wording of the Routing condition matters.



Wording rules

One Routing = one condition. Do not combine “lead from Germany or Poland” into one formula — create two Routings with one goal.
Be specific, not abstract. “User mentioned country as Germany” is better than “User said where they are from”.
Use English — models work more consistently with English instructions.
Use AI Helper. Briefly describe the meaning of the condition in your own words, click AI Helper next to the field — the system generates formal wording, you choose the suitable option, and click Apply.
One Routing — one condition
If you mix “Germany or Poland” in one Routing, the model will have to guess. It is better to use two nodes, or first a Condition by region, then Routings by objection.

AI Routing conditionsplaintext
User mentioned they are from Germany
User objected that the price is too high
User asked about pricing or cost
User said they already registered on the platform
User shared that they have no trading experience
User confirmed they want to proceed and register
User sent off-topic message unrelated to our offer



Full example: a split with 3 Routings

How to read the example
Go from top to bottom: scenario → Routing conditions → what the lead will see with different wording. Test it in your Demo space using the same phrases.
Scenario: the lead completed the starting step and reached AI Reply with the Goal “Understand the lead’s country and suggest the right onboarding option”. This step has 3 Routings plus one more default branch.
Voronka pseudocodeplaintext
Step: Send message — Welcome
      ↓
Step: AI Reply — Get country
      Goal: Get user's country and respond accordingly
      Routings:
        ├─ Routing «Germany»  → Step: Send DE link
        ├─ Routing «Poland»   → Step: Send PL link
        ├─ Routing «Other EU» → Step: Send EN link
        └─ (no match) — лид остаётся, ждём следующего сообщения
Routing conditions:
Conditionsplaintext
Germany:  User mentioned they are from Germany or Austria
Poland:   User mentioned they are from Poland
Other EU: User mentioned a European country other than Germany,
          Austria or Poland
What happens. The lead writes “Hello, I am from Munich”. AI Reply replies to the message (for example, “Hi! Munich is great. Let me check what we have for Germany”). In parallel, AI Summary/Router checks 3 Routings: Germany — YES (Munich = Germany). The lead moves to “Send DE link”.
If the lead writes “Hi” (without specifying a country), no Routing triggers. The lead stays on the current step and waits for the next message. AI Reply will run again on the next message and ask about the country again.



Anti-patterns

Four common traps
Below are the symptom, why it hurts, and how to fix it. If you recognize yourself, fix the wording instead of “adding one more Routing just in case”.



Conditions that are too broad

Too broad?
If the condition triggers on almost every “yes” and “tell me more”, it is useless as a branch. Narrow it down to the specific wording of the lead’s question.
Routing condition “User wants to know more”. It will trigger on almost any message (“yes”, “tell me”, “how”, “what”). All leads go into one branch. Half the funnel is useless.
Solution — make it more specific. Instead of “User wants to know more” — “User asked specifically about the price” / “User asked about delivery time” / “User asked about safety”.



Overlapping Routings

Branch overlap
If one lead response matches two Routings, the order/choice becomes nondeterministic for you. Make the conditions mutually exclusive.
Two Routings with the conditions “User from Germany” and “User from EU” — Germany matches both. Which one will trigger first? The behavior is unstable.
Solution — mutually exclusive conditions. “User from Germany” / “User from EU country EXCEPT Germany” / “User from non-EU country”.



Too many Routings

Many Routings = noise
10+ branches from one AI Reply are expensive and unreliable. Cascade them: first a rough split, then the next step with a new set of Routings.
10+ Routings from one step — the model makes mistakes more often by choosing an unsuitable condition. The cost of each response is higher (Summary/Router checks all conditions).
Solution — cascade. The first AI Reply — broad split (country / objection / agreement). From each branch — its own narrow AI Reply with 2-3 Routings inside. Each Summary/Router request works on a narrow set.



Empty default branch

No branch triggered
This is fine if the Goal moves the conversation forward. If the lead gets “stuck” without a clear purpose — strengthen the Goal or add a narrow default scenario, not a fifth similar Routing.
If no Routing triggers, the lead remains on the step. This is normal, but if the step does not tell the Goal to “continue the conversation”, the lead may get stuck in confusion (“the bot replied, but I don’t understand what’s next”).
Solution — the Goal must guide the conversation even when Routings have not triggered. “Get user's country, ask again if not provided”.



Routings without AI Reply

Only to AI Reply — detailed breakdown of the step
Routings are connected to the AI Reply node. The same mechanism does not carry over directly to Send Message / Condition — don’t waste time looking for “Routings for a step without AI”.
Routings — can only be attached to AI Reply. You cannot connect Routings to Send Message — Routings trigger on the lead’s reply, and Send Message does not wait for a reply.



“One-time trigger” option

“One time” flag
Enable it if the lead can return to the same AI Reply and you do not want the same Routing to trigger again (for example, issuing a bonus again). In normal conversations, it is usually left off.
Each Routing has a flag The condition will only trigger once and will not be considered again. If enabled, a triggered Routing is no longer checked for this lead.
When to enable it. If the funnel can return the lead to the same AI Reply after several steps (via Change flow — transfer to another flow or Operator), and you do not want to handle the same objection again.
When to leave it disabled. Standard scenario — a lead may land on the same step multiple times, and the condition must be checked each time.



How to test Routings

After configuration, a check in Demo space is required:
Minimum test checklist
For each Routing, use 3–5 real lead phrases (positive, negative, “silence”, typos). Record which branch was selected and where the flow went. If there is a discrepancy, first narrow the condition.
Check each condition separately. Write 3–5 message variants to the bot that should trigger a specific Routing. All of them should go to the correct branch.
Check edge cases. Messages that could fall into either of two Routings (Munich = Germany?). Record the behavior.
Check the default branch. Messages for which no Routing should trigger (the greeting “Hi”, the question “What time is it?”). The lead should remain on the current step.
After 1–2 weeks of operation, review real conversations in Messenger. Find cases where Routings triggered the wrong branch and adjust the wording.



Frequently asked questions

The AI Summary/Router model evaluates all Routings and selects the most likely one. The behavior is deterministic for a specific message and current context, but is not guaranteed to be predictable between similar conditions. Therefore, it is better to phrase conditions so that they are mutually exclusive (see anti-patterns).

All Routings are considered simultaneously — the model sees the entire list and selects one. The order of Routings in the editor does not determine priority. If two conditions are equally suitable, the model will choose the one that matches the lead’s message more precisely.

This is normal behavior — the lead remains on the step and waits for the next message. If you want to still route them to a branch (for example, to Operator after 3 failed attempts), add a Routing with the condition “User keeps sending unrelated messages” or a counter via Custom Fields — custom fields and a step Condition — conditional branching that catches this counter.

Direct logs for Routing triggers are not shown in the current UI, but you can see it after the fact: which next step was selected. In Messenger you can see the lead’s progress through the steps. If you need detailed analytics, Steps Conversion — funnel by flow steps provides a view of “how many leads went through each branch,” which indirectly shows Routing triggers.



What’s next

AI Reply — detailed breakdown of the step
Unlike a regular Send Message, AI Reply does not send prewritten text. AI generates a reply when a message is received from the user. AI Reply is used for: communicating with the user handling objecti
Prompt Patterns
Here is a collection of templates for Global Legend, Restrictions, Response Style, the AI Reply step (Goal / Requirements), , and using in prompts. How to use this collection Use the blocks as drafts:
AI Routings — semantic routing
The AI Routings step is fuzzy routing. It is connected after AI Reply and routes the lead to different next steps depending on the meaning of their reply. Conditions are described in natural language;
Condition — conditional branching
The Condition step branches the flow based on exact values in the lead’s data. Tag exists — left. deposit greater than $100 — right. time from 12 to 18 — third branch. This is the opposite of “AI Rout

Was this article helpful?

BackAI Reply — detailed breakdown of the stepNextAI Recognition — глубокий разбор

On this page

  • Routings vs Condition
  • When to choose Condition
  • When to choose Routings
  • When you need both
  • How to formulate conditions
  • Wording rules
  • Full example: a split with 3 Routings
  • Anti-patterns
  • Conditions that are too broad
  • Overlapping Routings
  • Too many Routings
  • Empty default branch
  • Routings without AI Reply
  • “One-time trigger” option
  • How to test Routings
  • Frequently asked questions
  • What’s next