Only one workflow runs at a time
A brand can have as many switched-on workflows as you like, and they all sit on the same list at Brand → Workflows. But a conversation only ever runs one of them: when something happens that could start a workflow, Yaplet takes the first one that matches, runs it, and stops looking.
Two consequences worth internalising:
- The others are not queued. There is no waiting list — a workflow that did not win simply did not run for that event.
- You cannot set a priority. There is no ordering control, so if two workflows can both match the same moment, you cannot decide which one wins. Design so that never happens rather than trying to rank them.
A conversation that already has a workflow running will not start a second one on top of it either.
Different triggers do not compete
Each event only looks at workflows built on that trigger. A Visit workflow and a Chat open workflow can both be switched on for the same brand without ever fighting: one fires when someone lands on your site, the other when they actually open the chat.
This is the clean way to layer things. Use Visit for something that happens quietly in the background, and Chat open for the conversation that starts when the visitor engages.
How to stop two workflows competing
If you genuinely have two scripts on the same trigger, make sure only one of them can ever match:
- Give them different conditions under Trigger query, so the tests are mutually exclusive — one for visitors in a particular country, the other for everyone else, for instance.
- Or merge them into one workflow and branch inside it with a Conditions step. This is almost always the better answer: one script, one place to look, and you can see the whole decision on the canvas.
Frequency: stopping the same script repeating
Most triggers carry a frequency setting on the Settings tab, with three choices:
- Send once for a unique visitor — this person sees the script once, ever.
- Send once per 24 hours — at most once a day for the same person.
- Unlimited (send on each click) — every single time the trigger fires.
Pick one deliberately. "Unlimited" on a Chat open workflow means the same greeting script restarts every time the visitor reopens the chat, which gets old fast.
Channels narrow the field further
On Facebook and Instagram, and on phone calls, only workflows the Channels column marks as compatible are eligible at all. So a script that never seems to fire there is usually not mis-targeted — it is simply not allowed on that channel because of a step it contains.
Phone calls narrow it twice more: only workflows whose trigger is User says are offered on a call, and workflows are only offered at all when the brand also has a Vex AI agent.
Why is my workflow not firing?
Work down this list, in order:
- Is it switched on? Check the Active column on Brand → Workflows.
- Are you on the right brand's list? Each brand has its own workflows and its own chat widget.
- Does its trigger match what you are actually doing? Opening the chat fires Chat open, not Visit.
- Has the frequency cap already been used up for you? Test as a fresh visitor, or set the trigger to Unlimited while you test.
- Do the trigger conditions pass? A condition on country, email, first session, session count or team availability can quietly exclude you.
- Is one of your team already handling the conversation? Every trigger except Start manually stays silent while a human is on the chat.
- Is another workflow on the same trigger winning the event? Only one runs.
- On Facebook, Instagram or the phone: does the Channels column allow it there?
Next step
Once they are running, see how each one performs: Read workflow analytics. And if what you actually wanted was a different script on a different page, read Can I run a different workflow on different pages?