Skip to Content
GuidesHow to Create a Custom Workflow

How to Create a Custom Workflow in Dialora

A workflow gives your agent a structured call instead of one open-ended prompt. You lay the call out as connected nodes and the agent moves between them as the conversation progresses.

Prompt or workflow?

Prompt-driven agentWorkflow agent
Best forOpen-ended conversations β€” support, FAQs, general receptionCalls with a required sequence β€” qualification, intake, scripted booking
BehaviourOne prompt governs the whole callEach node does one thing, and you control the order
ControlThe model decides the flowYou decide the flow

Start with a prompt. Move to a workflow when the call has to reliably cover specific steps in order.

Step 1: Open the workflow builder

  • Log in to your Dialora dashboard.
  • Click Workflows in the left panel.
  • Click Create Workflow.
Workflow

Step 2: Start from the root node

Every workflow opens with a root Welcome Message node β€” what the agent says when the call connects.

Workflow

Click the + under a node to add the next step.

Step 3: Choose what happens next

Workflow
NodeWhat it does
SayThe agent speaks. Either fixed text, or a prompt the model phrases itself.
GatherAsks for specific information and captures it into named parameters.
ConditionBranches the call β€” each condition routes to a different node.
API RequestCalls an external API mid-conversation and routes on success or failure.
Transfer CallHands the call to a phone number.
End CallEnds the call with a farewell message.

Using the Say node

Click Say, then Edit, and enter what the agent should say at this point.

Workflow

You have two modes:

  • Fixed text β€” the agent says exactly this. Use it for disclosures, legal language, and anything that must be word-for-word.
  • Prompt β€” you describe what to convey and the model phrases it. Use it when natural variation sounds better than a script.

Using Gather to collect information

Use Gather when you need specific details β€” name, email, service type, appointment date.

Each parameter takes:

  • Name β€” letters, numbers, and underscores only (no spaces or hyphens)
  • Type β€” the kind of value you expect
  • Description β€” tells the agent what it’s looking for and when
  • Required β€” whether the agent must get this before moving on

The agent decides what counts as an answer from your description. β€œappointment_date” with the description β€œThe date the caller wants to come in, as a specific calendar date β€” not β€˜next week’” collects far cleaner data than a description of just β€œdate”.

Using Condition to branch

Use Condition when the call should go different ways based on what the caller said.

Each condition pairs a condition with a target node:

  • β€œCaller is an existing patient” β†’ Verification node
  • β€œCaller is new” β†’ Intake node

Cover every case your callers will actually produce, including the awkward ones. A caller who fits none of your conditions is where workflows most often fall over.

Using API Request for integrations

Use API Request to reach a CRM, booking system, or any REST API mid-call.

Configure:

  • Name and description β€” what the call does
  • Method β€” GET, POST, PUT, PATCH, or DELETE
  • URL β€” the endpoint
  • Parameters β€” each with a type and description, and which are required
  • Success node β€” where to go when it works
  • Failure node and failure message β€” where to go and what the agent says when it doesn’t
  • Retry on fail and retry node β€” whether to try again, and from where

An external API will fail eventually β€” a timeout, a bad record, an expired token. If you leave the failure node unset, the caller gets silence at the worst moment. Set a failure message the agent can say and a node that takes a message or offers a callback.

Using Transfer Call to escalate

Add a Transfer Call node wherever a human should take over. Set the destination phone number, and optionally what the agent says before transferring.

Include the country code β€” see Phone Number Formatting.

Ending the call

An End Call node closes the conversation with a farewell message. Every branch should reach one, or calls end abruptly.

Tips

  • One job per node. If a Say node is also asking a question, that’s a Say plus a Gather.
  • Name nodes for what they achieve β€” β€œVerify existing patient” beats β€œStep 3”.
  • Build the happy path first, confirm it runs end to end, then add branching and error handling.
  • Test the branches you don’t expect, not just the ones you do.
  • Terminate every path with End Call or Transfer Call.