Where a workflow can run

Why some workflows cannot run on Facebook, Instagram, email or phone calls, which steps and triggers decide it, how a workflow reaches someone who wrote in by email, and how it behaves on a call.

The five channels

A workflow belongs to one brand and can run anywhere that brand talks to people:

  • The chat widget — always. Every workflow can run here, whatever steps it contains.
  • Facebook Messenger — the brand's Facebook page conversations.
  • Instagram — the brand's Instagram direct messages.
  • Email — messages sent to the brand's inbound email address and answered by Vex.
  • Phone calls — a call answered by the brand's voice agent.

The Channels column on Brand → (your brand) → Workflows shows all five as icons on every row. A greyed-out icon means this workflow cannot run there; hover it and the tooltip says why.

A workflow a channel cannot run is never even offered to the AI on that channel — the AI simply answers the person itself. This used to be true only for phone calls: on Facebook and Instagram the AI could still pick a form workflow, the workflow was then refused, and the person got no reply at all. Every channel now works the same way, and starting such a workflow by hand from the inbox is refused with the same reason.

Which trigger starts where

The steps decide where a workflow can run; the trigger decides where it starts by itself. A workflow starts automatically only on a channel both allow.

TriggerStarts by itself on
User saysAll five channels — wherever the AI answers
Rating givenThe chat widget, Facebook and Instagram
Nobody picked upThe chat widget, Facebook, Instagram and email
Chat open, Chat closed, Visit, Online since, Custom eventThe chat widget only
No automatic startNowhere

Whatever the trigger, you can always start a workflow by hand: from the inbox, from another workflow's Start a workflow step, or from your website (a Home button, a conversation starter, Yaplet.startBot).

What blocks Facebook and Instagram

A Start a form step, and nothing else.

Facebook and Instagram conversations have no way to display a Yaplet form, so a workflow that tries to open one cannot run there. The tooltip reads "Cannot run on Facebook — it contains a form step", and the same for Instagram.

Replace the form with Collect data or Ask a question steps and the workflow becomes usable on both social channels. You lose the single-screen form and gain a short back-and-forth instead, which suits a messaging app better anyway.

What blocks email

Any one of these steps: Ask a question, Buttons, Start a form, Send to VEX AI, or Collect data for anything other than the customer's email.

The reason is simple: an email that arrives later never continues a paused workflow — it starts a fresh turn with the AI. So a step that waits for the person's answer would wait forever. Collect data for the customer's email is the one exception, because the address is already known from the sender and the step fills itself in without asking.

The tooltip reads "Cannot run on email — it contains a question, buttons, form, Vex AI or a collect-data step other than the customer's email".

How a workflow reaches an email sender

A workflow running on an email conversation does not send a message per step. Everything the run produces — messages, the expected reply time, a link, and the confirmation and offline notice of a Request agent step — is collected and sent as one email at the end of the run, inside the thread the person already has with you. Their reply lands back in the same conversation.

A Call an API step runs on every channel, but it sends nothing by itself: what it fetched reaches the person only when a later step puts it into a message.

Two things are deliberately left out of that email: the "written by AI" line (a workflow is your script, not the AI's words) and the "Talk to a human" button. In the inbox the sent rows carry the envelope label, exactly like any other email you send. If the email cannot be sent — no verified sender address, no visitor email, a mail-provider error — a private event in the inbox says so, and the messages shown above it were not delivered.

A workflow whose only step is Stop — don't reply sends nothing at all, and the conversation stays with the AI instead of landing in your team's queue. That is the intended way to ignore unsolicited pitches and spam that arrive by email.

What blocks phone calls

Any one of these eight steps: Start a form, Open link, Buttons, Show expected reply time, Request agent, Collect data, Ask a question or Stop — don't reply.

The first five need something a voice line does not have — a screen to render on, a link to click, a person to transfer to. Collect data and Ask a question are a current limitation: on a call there is no chat message to hang the visitor's answer off, so the workflow cannot pause and resume on the caller's next sentence. And a caller cannot be answered with silence, which is all Stop — don't reply does.

The tooltip spells the whole list out: "Cannot run on phone calls — it contains a form, link, buttons, reply-time, request-agent, collect-data, ask-question or stop step".

Making a workflow phone-safe

Drop the visual steps

Remove forms, links and button menus. On a call there is nothing to look at and nothing to click.

Let the AI ask instead of collecting

Where the workflow was collecting fields or asking a stored question, hand the question to the brand's Vex agent with a Send to VEX AI step, which works on a call.

Remove the handoff

A call cannot be transferred to a colleague from inside a workflow, so Request agent and Show expected reply time have to go.

Save and check the icons

Compatibility is recalculated on every save. Go back to the Workflows list and the phone icon should no longer be greyed out.

A workflow that starts another workflow inherits its restrictions. If a Start a workflow step calls a workflow that contains a form, the caller is blocked from Facebook, Instagram, email and the phone too — even though its own steps look clean.

How a workflow behaves on a call

A workflow runs on a call the same way it runs in a chat, with these differences:

  • Only the brand's own workflows. A call is offered the workflows of the voice agent's own brand — never another brand's in the same organization.
  • Conditions takes one branch. Only the branch that matches runs, exactly as in a chat. (Until recently, every branch of a Conditions step ran on a call, one after another.)
  • Placeholders are spoken. A value in a Write a message step, like {{ order_id }}, is filled in and read out to the caller.
  • Call an API is kept short. On a call the request gets at most 4 seconds and a single try, whatever the step's own settings say, because a caller cannot be left in silence. If it fails and you drew no Failed branch, the caller hears "Sorry, I couldn't complete that request right now." in the language of the call.

The extra requirement for phone

A voice agent is only offered your workflows when its brand also has a Vex AI agent. A brand with a phone agent but no Vex still answers callers from the brand's knowledge and can still use its API tools — only the workflows are missing. Adding Vex to the brand switches them on. The voice agent finds its brand's Vex by itself, so there is nothing to link.