Workflows¶
What it's for¶
Workflows automate the work that happens around your calls. For example, a workflow can look up a caller in your CRM while the call is live, or send a follow-up and update records after the call ends. You build a workflow by connecting steps, called nodes, on a visual canvas. You can start from scratch, from a template, or by describing what you want and letting AI draft it.
Real-time and post-call workflows¶
Every workflow has a category, chosen when you create it. You can't change it later.
| Category | When it runs | Limits |
|---|---|---|
| Real-Time | During a live call, when the agent asks for it. | Must finish within 4 seconds. Only some node types are available. |
| Post-Call | In the background after the call. | No time limit. All node types are available. |
Triggers¶
The trigger is the event that starts a workflow. You choose it when you create the workflow, and you can't change it later.
| Trigger | What starts the workflow |
|---|---|
| Retell Tool Call | Your agent calls the workflow during a live call. This is the default for Real-Time workflows. |
| Call Ended | A call finishes. This is the default for Post-Call workflows. |
| Webhook | Another system sends data to the workflow's webhook URL. |
| Scheduled | You can choose this option, but the app doesn't currently start these workflows on a schedule. Run them with Test. |
Some workflows, such as ones installed from templates, may also show a Call Analyzed trigger. These run after a call's analysis is ready.
Create a workflow¶
- Click Create Workflow.
- Choose Blank or From Template.
- For Blank, enter a Name, pick a Category, and pick a Trigger Type. Click Create.
- For From Template, pick a template, enter a Workflow Name, and click Create.
The editor opens for your new workflow.
Generate a workflow with AI¶
- Click Generate with AI.
- Under Describe your workflow, write what it should do in at least 10 characters. Name the integrations and actions you need.
- Optionally, set Category (optional) and Additional context (optional).
- Click Generate. This can take 5 to 15 seconds.
- Review the proposed nodes and connections. Click Use This Workflow, Regenerate, or Edit to change your description.
The AI only suggests nodes for integrations listed under Connected integrations.
Install from the Template Library¶
- Open the Template Library tab.
- Search or filter by category, then click a template.
- Review its Workflow Steps and Required Integrations. Each integration shows (connected) or (not connected).
- Enter a Workflow Name and click Install Template.
Note
You can install a template even if an integration isn't connected. The workflow may not work until you connect it on the Integrations page.
Build in the editor¶
The editor has three tabs: Settings, Nodes, and Runs. Rename the workflow in the box at the top. Click Save when you see You have unsaved changes.
Settings tab
- Description: a note about what the workflow does.
- Webhook URL: this workflow's own address. Click the copy icon, then paste it into your Retell agent's custom function. One agent can call many workflows this way.
- Trigger Config and Fallback Response (returned on timeout or error): advanced settings entered as JSON.
Nodes tab
- Drag a node from the Node Palette on the left onto the canvas.
- Connect nodes by dragging from one node's edge to the next.
- Click a node to open its settings panel. Set a Display Name, fill in its configuration, and choose On Error: Stop workflow or Continue.
- To remove a node, select it and press Delete, or click Delete in its panel.
- Click Save.
You can use values from earlier steps with placeholders such as {{trigger.transcript}} or {{steps.prev.data}}.
Node types in the palette¶
Real-Time workflows only show the nodes marked "Yes" below.
| Group | Node | What it does | Real-Time |
|---|---|---|---|
| Control | Set Variables | Assign values to workflow variables. | Yes |
| Control | If Condition | Branch based on a true/false condition. | Yes |
| Control | Switch | Branch several ways based on a value. | Yes |
| Control | Wait | Pause for a set amount of time. | No |
| Control | Loop | Repeat steps for each item in a list. | No |
| Actions | Integration Action | Call a connected integration, such as your CRM. | Yes |
| Actions | MCP Tool | Call a tool from an MCP server you added on the MCP Tools page. | No |
| Actions | HTTP Request | Send a custom web request to any URL. | Yes |
| Actions | Memory Read | Read from long-term caller memory. | Yes |
| Actions | Memory Write | Save to long-term caller memory. | No |
| Actions | Python Code | Run your own Python code in a safe sandbox. | No |
| Actions | JavaScript | Run your own JavaScript code in a safe sandbox. | No |
| Actions | AI Agent | Ask an AI model to analyze data, such as a transcript. | No |
| Utility | Filter | Keep only list items that match a condition. | Yes |
| Utility | Limit | Keep the first or last N items. | Yes |
| Utility | Aggregate | Count, sum, average, min, or max a list. | Yes |
| Utility | Date/Time | Parse, format, and adjust dates. | Yes |
| Utility | Data Mapper | Rename fields and pull out nested values. | Yes |
| Utility | Split Out | Turn a list into separate items. | Yes |
| Utility | Merge | Combine data from several sources. | Yes |
Turn a workflow on or off¶
Use the switch on the workflow's card, or the Active switch in the editor. A workflow only runs on its trigger while it is active.
Test and review runs¶
- In the list, click Test on a card. Or open the Runs tab in the editor.
- Enter sample Trigger Data as JSON, such as
{"caller_phone": "+15551234567"}. - Click Run (or Run Now).
Under Run History, filter by status (Completed, Failed, Timed Out, Running) or time. Click a run to see its timeline, each step's input and output, and the final output. Click Replay to run it again.
Tips¶
- Click URL on a workflow card to copy its webhook URL. If you see "no webhook key yet", open the workflow and save it once.
- Deleting a workflow also deletes its nodes and run history. You can't undo it.
- Real-Time workflows that take longer than 4 seconds time out. Keep them short, and set a Fallback Response.