Agents
Workflows
Automate work across your tools: pick a trigger, add actions, and let the workflow run every time the event happens.
Workflows run a set of actions every time something happens in your business, such as a new order, a form submission, or a booking. Use them for background automation that doesn't need a conversation, like sending a follow-up email or creating a calendar event.

How workflows work
Each workflow has two parts:
- A trigger: the event that starts the workflow
- Actions: the steps that run in order after the trigger fires
You build workflows on a visual canvas with no code. Or describe what you want in plain English and AI builds the workflow for you.
Workflows run in the background. When a job happens inside a conversation and needs fixed steps, use Procedures instead.
Create your first workflow
You should see the workflow marked Active. Click Run in the toolbar to test it.
Or let AI build it
Triggers
A trigger is the event that starts your workflow. Every workflow has exactly one trigger. When that event happens in your workspace, the workflow fires.
Built-in triggers
monday.com
Requires the monday.com integration.
Shopify
Requires the Shopify integration.
Zoho CRM
Requires the Zoho CRM integration. A webhook is registered automatically for each trigger.
Outlook
Requires Outlook or Outlook Calendar.
Trigger filters
Some triggers support filters that narrow when the workflow fires. For example, fire a form trigger only for one form, or an order trigger only for orders from one agent.
Trigger variables
Every trigger provides data you can use in your actions. These variables use the {{variable}} syntax:
- New Order gives you
{{orderId}},{{customerName}},{{customerEmail}},{{totalAmount}}, and more - Form Submitted gives you
{{formName}},{{submissionData}}, and the submitted field values - New Appointment gives you
{{attendeeName}},{{attendeeEmail}},{{startTime}},{{serviceName}}, and more
Variables are available in every action after the trigger: email bodies, AI prompts, HTTP request payloads, and anywhere else you need dynamic data.
Actions
Actions are the steps your workflow runs after the trigger fires. They run in order, and each one can use data from the trigger and from earlier actions.
Timing
Messaging
AI
Stripe
Requires the Google Calendar integration.
Outlook Calendar
Requires the Outlook Calendar integration.
Research
Data
monday.com
Requires the monday.com integration.
Shopify
Requires the Shopify integration.
Zoho CRM
Requires the Zoho CRM integration.
See Zoho CRM for outputs such as {{zoho_record_id}} and {{zoho_record_url}}.
Integrations
Conditions
Each action can have conditions that decide whether it runs. Conditions check data from the trigger and earlier steps.
When an action has several conditions, all of them must be true for it to run. An action with no conditions always runs.
Examples
- Only send a Stripe invoice if
{{totalAmount}}is greater than100. - Only trigger the agent if
{{status}}equalscompleted.
Variables
Variables make workflows dynamic. Instead of hardcoding values, reference data from the trigger and from earlier steps.
Trigger variables
These come from the event that started the workflow:
{{orderId}},{{customerName}},{{customerEmail}},{{totalAmount}}{{attendeeName}},{{startTime}},{{serviceName}}{{formName}},{{submissionData}}{{contactName}},{{contactEmail}}
Step output variables
Actions can produce output that every later step can use:
Use them anywhere in later steps: email bodies, API payloads, AI prompts, and conditions.
The visual editor
Canvas
The editor is a visual canvas, built with React Flow. Your trigger sits on the left, and actions flow to the right in a connected chain.
- Click a node to open its configuration panel on the right
- Add nodes with Add Step in the toolbar or the "+" placeholder between nodes
- Delete nodes by selecting them and clicking delete in the toolbar
- Undo and redo with the toolbar buttons or keyboard shortcuts
- Zoom and pan to move around larger workflows
- Minimap in the corner for orientation
Toolbar
Node configuration
Click any node to open its configuration panel:
- Trigger nodes: pick the trigger type and set filters, such as which form or which agent
- Action nodes: pick the action type, configure it, and optionally add conditions
- Variables: available variables are listed and can be inserted into any text field
AI workflow generation
Describe what you want in plain English, and AI builds the full workflow: trigger, actions, and configuration. It appears on the canvas for you to review and adjust.
Click the AI prompt input at the bottom of the canvas, or press Cmd+K / Ctrl+K, then describe the workflow and press Enter. Examples:
- "When a new order comes in, wait 10 minutes, then send a thank-you email to the customer"
- "Every Monday at 9am, search the web for industry news and send a summary to Ally"
- "When a form is submitted, use AI to classify the request, and if it's urgent, create a support ticket"
You can:
- Generate from scratch on an empty canvas
- Extend a workflow by adding steps to one in progress
- Modify a workflow by describing the changes
Run history
Every time a workflow runs, it creates a run. Open a workflow in the editor, then open its run history.
Each run shows its status, run ID, when it was triggered, and the trigger payload (expand to view the full data).
Scheduled workflows
The Scheduled (Recurring) trigger runs a workflow on a schedule, with no external event.
Use cases:
- Daily reports: every morning, pull your business metrics and send a summary email
- Weekly outreach: every Monday, search for leads and send personalized emails
- Weekly wrap-up: every Friday at 5 PM, generate a summary with AI and send it to Ally
Example workflows
Order follow-up
Trigger: New Order
- Wait 30 minutes.
- AI Transform: write a personalized thank-you message from the customer's name and order details.
- Send Email via Gmail: send it to
{{customerEmail}}.
Appointment confirmation with calendar sync
Trigger: New Appointment
- Create Calendar Event: add the appointment to Google Calendar with attendee details.
- Send Email via Gmail: send a confirmation with the appointment time and Google Meet link.
Form submission triage
Trigger: Form Submitted
- AI Decision: classify the submission as "Sales Lead", "Support Request", or "General Inquiry".
- Add conditions to the next steps:
- If
{{ai_decision}}equals "Sales Lead", Trigger Agent (your sales agent). - If
{{ai_decision}}equals "Support Request", create a support ticket. - If
{{ai_decision}}equals "General Inquiry", Send Email via Gmail with an auto-response.
- If
Invoice after booking
Trigger: New Appointment
- Create Invoice: generate a Stripe invoice for the service price, sent to
{{attendeeEmail}}. - Send Email via Gmail: send a booking confirmation with the invoice link.
Weekly business digest
Trigger: Scheduled (Recurring), every Monday at 8:00 AM
- Send to Ally: "Give me a summary of last week's orders, appointments, and open tickets."
- AI Transform: format Ally's response into an email digest.
- Send Email via Gmail: send the digest to your inbox.
Human-in-the-loop approval
Trigger: New Order (where total > $500)
- Wait for Approval: notify you that a high-value order needs review.
- If
{{approval_status}}equals "approved":- Change Order Status to "confirmed".
- Send Email via Gmail to confirm the order with the customer.
- If
{{approval_status}}equals "rejected":- Change Order Status to "cancelled".
- Send Email via Gmail to notify the customer.
Tips
- Start small. Begin with a trigger and one action, then add steps.
- Test before activating. Click Run in the toolbar.
- Check run history. It shows exactly where a run failed.
- Use variables everywhere. Dynamic workflows are more useful.
- Combine AI actions. Chain AI Transform, AI Decision, and Trigger Agent.
FAQ
How many workflows can I have?
There's no limit on the number of workflows per workspace.
Do workflows run in the background?
Yes. Once a workflow is active, it runs whenever the trigger event happens. You don't need the dashboard open.
What happens if a step fails?
The workflow stops at the failed step and the run is marked Failed. Check the run history to see what went wrong. Other workflows aren't affected.
Can I pause a workflow without deleting it?
Yes. Toggle it to Paused in the toolbar. It keeps its configuration but won't fire until you reactivate it.
Can I duplicate a workflow?
Yes. Open the workflow settings and click Duplicate. The copy has "(copy)" in its name and is paused by default.
Do conditions support OR logic?
Not directly. All conditions on a step must be true for it to run. For OR logic, create separate branches or use an AI Decision step to route.
How does Wait for Approval work?
The workflow pauses and creates an approval request. Approve or reject from your dashboard or through Ally. The workflow resumes with {{approval_status}} set to approved or rejected, which you can use in conditions on later steps.
Can I use workflows with my agents?
Yes. The Trigger Agent action sends data to any of your agents. The agent returns a response you can use in later steps.
Can workflows call external APIs?
Yes. The HTTP Request action calls any URL with a custom method, headers, and body.