How to Prevent Bot Conflicts in ZazzyAgent
Sometimes a chatbot appears to be "random."
One customer receives the correct flow.
Another receives a different message.
A human agent takes over, but the bot sends another reply.
Or two automations appear to react to the same customer message.
These situations can happen when multiple automation rules overlap.
This is known as a bot conflict.
What is a bot conflict?
A bot conflict happens when multiple automation rules could react to the same conversation or event.
For example:
Customer sends:
"support"
↓
Flow A matches
↓
Flow B also matches
If your triggers and routing aren't designed clearly, you may get unexpected behavior.
Why do conflicts happen?
Common causes include:
Overlapping keywords
Broad string matching
Multiple active automations
AI fallback responding alongside structured flows
Bot continuing after human takeover
Multiple message workflows firing for one event
Avoid duplicate keywords
Suppose you create:
Flow A
support
and:
Flow B
support
Now the same customer message can match both.
Instead, give each automation a distinct purpose.
Be careful with String Match
String Match is useful because it can recognize keywords inside longer messages.
But it is broader than Exact Match.
Suppose the keyword is:
book
String matching could also detect messages containing that word.
That can be useful—but it can also create unintended triggers.
Example
Keyword:
help
Customer says:
Can you help me choose a plan?
A string-based trigger may activate the Help flow.
That could be correct.
But if help is intended only for a specific command, Exact Match may be more appropriate.
Use Exact Match when precision matters
Exact Match is useful for:
Commands
Short menu choices
Testing
Predictable trigger words
See How to Use Triggers in ZazzyAgent Flow Builder.
Use String Match when flexibility matters
String Match can be useful when customers naturally use longer messages.
But use distinctive words and phrases.
Don't create triggers around tiny fragments.
Don't use single letters
A keyword such as:
a
is far too broad.
It can appear inside an enormous number of customer messages.
Choose meaningful words or phrases.
AI can also create conflicts
Suppose you have:
Pricing Flow
and:
AI for All Queries
A customer asks:
How much does your service cost?
Your AI may respond while the predefined pricing logic is also relevant.
Before enabling AI for all queries, understand how it interacts with your structured automation.
AI fallback is different
Fallback-only AI is designed for situations where the predefined automation doesn't handle the message.
That can reduce overlap.
Example:
Customer message
↓
Existing flow match?
↙ ↘
Yes No
↓ ↓
Flow AI Fallback
See How to Set Up No Match Reply With AI.
Human conversations need special care
Suppose:
Customer → Bot
then:
Human agent joins
The bot should not continue sending automated responses while the human is handling the conversation.
Enable bot-reply disable for human chat
Where appropriate, enable the setting that prevents bot replies while the human agent is handling the conversation.
This helps avoid:
Human says one thing.
Bot immediately says something else.
Business hours can also reduce conflicts
Suppose your human support team is available only during certain hours.
Business-hour rules can prevent automated behavior outside your intended operating schedule.
See How to Configure Business Hours in ZazzyAgent.
WhatsApp template conflicts
WhatsApp has its own message-window rules.
For example, a business may need an approved template in situations where an ordinary session message isn't permitted.
Don't create multiple automations that independently attempt to send messages for the same event.
This can produce confusing results and failed sends.
One event, one clear owner
A useful design principle is:
Each important customer event should have one clear automation responsible for it.
For example:
Booking request
→ Booking flow.
Not:
Booking request
→ Booking flow
→ AI
→ Sales flow
→ another keyword flow.
Review active automations
When debugging a conflict, make a list of all automations that could respond.
Check:
Trigger keywords
String matches
AI mode
No Match
Broadcasts
Human assignment
Scheduled workflows
Example conflict
You have:
Flow A
Keyword:
price
String Match.
And:
AI for All Queries
Customer:
Can you tell me your price?
Now there are two possible response systems.
Instead of guessing, define clearly which layer should own pricing conversations.
Use a layered architecture
A clean design can look like:
Customer Message
↓
Specific Structured Trigger?
↓
Yes → Structured Flow
↓
No
↓
AI Fallback
↓
Still needs human?
↓
Human Support
This gives each layer a clear job.
Common conflict symptoms
Two replies arrive
Look for multiple matching automations.
Wrong flow starts
Check overlapping triggers.
Bot replies after human takes over
Check the human-chat bot-reply setting.
AI responds when you expected a flow
Check whether AI is configured for all queries instead of fallback-only.
Flow works sometimes
Look for trigger overlap and competing conditions.
How to troubleshoot a conflict
Start with one test message.
Record:
Exactly what the customer sent.
Then identify:
Which trigger matched?
Which flow started?
Did AI also respond?
Was a human assigned?
Did another automation send something?
This is much better than simply saying:
The bot is acting strangely.
Prevent conflicts before launch
Before activating a new flow:
Review its keywords.
Check matching mode.
Check existing triggers.
Check AI configuration.
Check No Match.
Check human handoff.
Test with real-world message variations.
Test similar phrases
Don't test only:
pricing
Also test:
What's your price?
Can you tell me the cost?
How much does this cost?
I want pricing information.
You may discover an unintended flow trigger.
The main rule
A reliable ZazzyAgent setup has clear ownership:
Structured flow handles predictable tasks.
AI handles natural-language questions where configured.
Human agents handle conversations that need people.
When those responsibilities overlap without clear rules, conflicts are much more likely.
