Workflows
Automate your business with Workflows, Link AI's visual automation engine. Set a trigger, add actions, and let your workflows run on autopilot.
Automate your business with Workflows, Link AI's visual automation engine. Set a trigger, add actions, and let your workflows run on autopilot. When something happens in your business: a new order, a form submission, an appointment booking: your workflow kicks in and handles the rest.

What Are Workflows?
Workflows let you build automated sequences that respond to real events in your business. Instead of manually sending a follow-up email after every new order or creating a calendar event after every booking, you set it up once and it runs every time.
Each workflow has two parts:
- A trigger: the event that starts the workflow
- Actions: the steps that execute in order after the trigger fires
You build workflows visually on a canvas. Drag, connect, configure, with no code required. Or describe what you want in plain English and let AI build the workflow for you.
Triggers
A trigger is the event that starts your workflow. Every workflow has exactly one trigger. When that event occurs in your workspace, the workflow fires automatically.
Available Triggers
| Trigger | When it fires |
|---|---|
| New Order | A customer places a new order |
| Order Status Changed | An order's status is updated (e.g., pending to completed) |
| New Appointment | A new appointment is booked through your calendar |
| Appointment Status Changed | An appointment is confirmed, cancelled, or rescheduled |
| New Contact | A new contact is added to your workspace |
| Form Submitted | Someone submits one of your Smart Forms |
| New Ticket | A customer support ticket is created |
| Scheduled (Recurring) | Runs on a schedule: choose specific days of the week, time, and timezone |
monday.com
Requires the monday.com integration to be connected.
| Trigger | When it fires |
|---|---|
| Item created | A new item is added to the selected board. |
| Status changed | A status column value changes on the selected board. |
Shopify
Requires the Shopify integration to be connected.
| Trigger | When it fires |
|---|---|
| Shopify Order Created | A new order is created in the connected store. |
| Shopify Order Paid | An order is marked as paid. |
| Shopify Order Fulfilled | An order is fulfilled. |
| Shopify Product Created | A product is created. |
| Shopify Product Updated | A product is updated. |
| Shopify Product Deleted | A product is deleted. |
Zoho CRM
Requires the Zoho CRM integration to be connected. A webhook is registered automatically for each trigger.
| Trigger | When it fires |
|---|---|
| Record Created | A new record is created in the module you select. |
| Field Changed | A field value changes on a record in the selected module. |
| Record Deleted | A record is deleted. |
| Lead Converted | A lead is converted to a contact, account, or deal. |
| User Created | A new active user is added to the Zoho CRM org. |
Outlook
Requires Outlook or Outlook Calendar.
| Trigger | When it fires |
|---|---|
| Outlook Email Received | A new message arrives in the connected mailbox. |
| Outlook Event Created | An event is created on the connected Outlook calendar. |
| Outlook Event Updated | An Outlook calendar event is changed. |
| Outlook Event Cancelled | An Outlook calendar event is cancelled or deleted. |
Trigger Filters
Some triggers support filters to narrow when the workflow fires. For example, you can set a form submission trigger to only fire for a specific form, or an order trigger to only fire for orders from a specific agent.
Trigger Variables
Every trigger comes with data you can use in your actions. These are called variables and use the {{variable}} syntax. For example:
- A New Order trigger gives you
{{orderId}},{{customerName}},{{customerEmail}},{{totalAmount}}, and more - A Form Submitted trigger gives you
{{formName}},{{submissionData}}, and the submitted field values - A New Appointment trigger gives you
{{attendeeName}},{{attendeeEmail}},{{startTime}},{{serviceName}}, and more
Variables are available in every action that comes after the trigger. You can insert them into email bodies, AI prompts, HTTP request payloads, anywhere you need dynamic data.
Actions
Actions are the steps your workflow executes after the trigger fires. They run in order, one after another, and each action can use data from the trigger and from previous actions.
Timing
| Action | What it does |
|---|---|
| Wait | Pause the workflow for a set duration before continuing to the next step. Useful for delays like "wait 30 minutes before sending a follow-up." |
| Wait for Approval | Pause the workflow until a human approves or rejects. Ally or your dashboard can handle the approval. The workflow resumes based on the decision. |
Messaging
| Action | What it does |
|---|---|
| Send Email via Gmail | Send an email using your connected Gmail account. Configure the recipient, subject, and body: all with variable support. |
| Send Outlook email | Send a new message from the connected Outlook mailbox. |
| Reply to Outlook email | Reply in the same Outlook conversation. Use {{messageId}} from an Outlook Email Received trigger. |
AI
| Action | What it does |
|---|---|
| Trigger Agent | Route context to one of your AI agents. The agent processes the information and returns a response you can use in later steps. |
| Send to Ally | Send a message to your personal Ally assistant. Ally can process information, take actions, or provide analysis. |
| AI Transform | Summarize, rewrite, extract, or analyze text with AI. Feed in data from previous steps and get structured output back. |
| AI Decision | Let AI classify or route based on content. The AI evaluates the input and returns a decision you can use in conditions for later steps. |
Stripe
| Action | What it does |
|---|---|
| Create Invoice | Create and send a Stripe invoice. Configure the customer, line items, and amount using variables from the trigger. |
| Create Payment Link | Generate a Stripe payment link. Great for sending payment requests after a booking or order. |
Requires the Google Calendar integration.
| Action | What it does |
|---|---|
| Create Calendar Event | Add an event to your connected Google Calendar. Set the title, time, description, and attendees using workflow variables. |
| Cancel Calendar Event | Delete or cancel an existing Google Calendar event. |
| Create document | Generate a shareable document with AI. Output includes {{document_url}} and {{document_title}}. |
Outlook Calendar
Requires the Outlook Calendar integration.
| Action | What it does |
|---|---|
| Create Outlook event | Add an event. Optionally create a Teams meeting. |
| Update Outlook event | Change title, time, location, description, or attendees. |
| Cancel Outlook event | Cancel an event using {{calendar_event_id}}. |
| Create Teams meeting | Create an event that includes a Teams join link. |
Research
| Action | What it does |
|---|---|
| Web Search | Search the web and return results. Use this to look up information, verify data, or gather context for AI actions downstream. |
Data
| Action | What it does |
|---|---|
| Change Order Status | Update the status of an order in your workspace. Useful for automating order processing flows. |
monday.com
Requires the monday.com integration to be connected.
| Action | What it does |
|---|---|
| Create item | Adds a new item to a board, optionally in a specific group, with column values filled in. |
| Update item columns | Updates one or more column values on an existing item. |
| Move item to group | Moves an item to a different group on the same board. |
| Post update | Adds an update (comment) to an existing item. |
Shopify
Requires the Shopify integration to be connected.
| Action | What it does |
|---|---|
| Sync products | Pull the latest Shopify catalog into Orders. |
| Get order | Look up a Shopify order by ID ({{orderId}} from a Shopify trigger). |
| Add order note | Add a note to a Shopify order. |
Zoho CRM
Requires the Zoho CRM integration to be connected.
| Action | What it does |
|---|---|
| Create / update / upsert record | Write to Leads, Contacts, Accounts, Deals, or another module. |
| Find / get record | Look up a record by field value or ID. |
| Add note | Add a note to a record. |
| Add / remove tag | Tag or untag a record. |
| Convert lead | Convert a lead to a contact, account, and optional deal. |
| Relate record | Link two records. |
| Add attachment | Attach a public file URL to a record. |
| Delete record | Permanently delete a record. |
See Zoho CRM for outputs such as {{zoho_record_id}} and {{zoho_record_url}}.
Integrations
| Action | What it does |
|---|---|
| HTTP Request | Call any external webhook or API. Configure the URL, method, headers, and body. Perfect for connecting to tools that aren't natively integrated. |
Conditions
Each action can have conditions that determine whether it runs. Conditions evaluate data from the trigger and previous steps.
A condition has three parts:
- Field: the variable to check (e.g.,
totalAmount,status,customerEmail) - Operator: how to compare (
equals,not equals,greater than,less than,contains) - Value: what to compare against
When an action has multiple conditions, all of them must be true for the action to run. If an action has no conditions, it always runs.
Example: Only send a Stripe invoice if
{{totalAmount}}is greater than100.Example: Only trigger the agent if
{{status}}equalscompleted.
Variable Interpolation
Variables make workflows dynamic. Instead of hardcoding values, you reference data from the trigger and from previous 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 becomes available to all downstream steps:
{{stripe_invoice_url}}: from the Create Invoice action{{stripe_payment_link}}: from the Create Payment Link action{{ai_summary}}: from the AI Transform action{{ai_decision}}: from the AI Decision action{{approval_status}}: from the Wait for Approval action (approvedorrejected){{agent_response}}: from the Trigger Agent action{{search_results}}: from the Web Search action{{document_url}},{{document_title}}: from the Create document action{{zoho_record_id}},{{zoho_record_url}}: from Zoho CRM actions{{shopify_order_id}},{{shopify_order_name}}: from Shopify Get order{{calendar_event_id}},{{teams_join_url}}: from Outlook Calendar actions
Use these variables anywhere in downstream action configurations: email bodies, API payloads, AI prompts, conditions, and more.
The Visual Editor
Canvas
The workflow editor is a visual canvas powered by React Flow. Your trigger appears 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 using the "Add Step" button in the toolbar or by clicking the "+" placeholder between nodes
- Delete nodes by selecting them and clicking the delete button in the toolbar
- Undo/Redo changes with the toolbar buttons or keyboard shortcuts
- Zoom and pan to navigate larger workflows
- Minimap in the corner for orientation in complex workflows
Toolbar
The toolbar at the top gives you quick access to:
- Workflow selector: switch between your workflows or create a new one
- Settings: rename, duplicate, or delete the workflow
- Add Step: add a new action node
- Undo / Redo: step backward or forward through changes
- Save: save the current workflow (unsaved changes are indicated with a dot)
- Active / Paused: toggle the workflow on or off
- Run: trigger a test run to verify everything works
Node Configuration
Click any node to open its configuration panel:
- Trigger nodes: select the trigger type and configure filters (e.g., which form, which agent)
- Action nodes: select the action type, configure its settings, and optionally add conditions
- Variable insertion: available variables are listed and can be inserted into any text field
AI Workflow Generation
Don't want to build it manually? Describe what you want in plain English and AI will build the workflow for you.
How it works
- Click the AI prompt input at the bottom of the canvas (or press
Cmd+K/Ctrl+K) - Describe your workflow in natural language
- Press Enter
"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"
AI generates the full workflow (trigger, actions, and configuration). It appears on the canvas ready for you to review and adjust.
What you can do with AI
- Generate from scratch: describe the entire workflow on an empty canvas
- Extend existing workflows: add steps to a workflow that's already in progress
- Modify workflows: describe changes and AI will update the workflow
Run History
Every time a workflow executes, it creates a run. You can view the full history of runs for any workflow.
Viewing Runs
- Open a workflow in the editor
- Click into the run history from the workflow page
Each run shows:
- Status: Completed (green), Failed (red), Running (blue), or Waiting (yellow)
- Run ID: unique identifier for the execution
- Triggered at: when the workflow was triggered
- Trigger payload: the full data that triggered the run (expand to view)
Run Statuses
| Status | What it means |
|---|---|
| Completed | The workflow ran all steps successfully |
| Failed | A step encountered an error and the workflow stopped |
| Running | The workflow is currently executing |
| Waiting | The workflow is paused (e.g., waiting for approval or a timed delay) |
Scheduled Workflows
The Scheduled (Recurring) trigger lets you run workflows on a set schedule without any external event.
Configuration
- Days of the week: select which days the workflow should run (e.g., Monday through Friday)
- Time: choose the time of day (e.g., 9:00 AM)
- Timezone: select your timezone (Eastern, Central, Mountain, Pacific, UTC, and more)
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
- Recurring maintenance: Every Friday at 5 PM, generate a weekly wrap-up with AI and send it to Ally
Example Workflows
Here are some real workflows you can build:
Order Follow-Up
Trigger: New Order
- Wait 30 minutes
- AI Transform: generate a personalized thank-you message using the customer's name and order details
- Send Email via Gmail: send the thank-you email to
{{customerEmail}}
Appointment Confirmation with Calendar Sync
Trigger: New Appointment
- Create Calendar Event: add the appointment to your Google Calendar with attendee details
- Send Email via Gmail: send a confirmation email 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"
- Conditions on next steps:
- If
{{ai_decision}}equals "Sales Lead" → Send to Agent (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 a clean 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: confirm the order with the customer
- If
{{approval_status}}equals "rejected":- Change Order Status to "cancelled"
- Send Email via Gmail: notify the customer
Getting Started
Create Your First Workflow
- Go to Dashboard > Workflows in the sidebar
- Click New Workflow (or select it from the workflow dropdown)
- Choose a trigger by clicking the trigger node on the canvas
- Add actions by clicking the "+" node or using the "Add Step" button
- Configure each step by clicking on it and filling in the details
- Click Save
- Toggle the workflow to Active
Or Let AI Do It
- Go to Dashboard > Workflows
- Press
Cmd+K(orCtrl+K) - Describe what you want: "When a new contact is created, send them a welcome email via Gmail"
- Review the generated workflow, adjust if needed
- Save and activate
Tips
- Start simple: begin with a two-step workflow (trigger + one action) and add complexity over time
- Use test runs: click "Run" in the toolbar to test your workflow before activating it
- Check run history: if something isn't working, the run history shows you exactly where it failed
- Use variables everywhere: the more dynamic your workflows, the more useful they become
- Combine AI actions: chain AI Transform, AI Decision, and Trigger Agent to build intelligent automation
FAQ
How many workflows can I have? There's no limit on the number of workflows per workspace. Create as many as you need.
Do workflows run in the background? Yes. Once a workflow is active, it runs automatically whenever the trigger event occurs. You don't need to have the dashboard open.
What happens if a step fails? The workflow stops at the failed step and the run is marked as "Failed." You can check the run history to see what went wrong. Other workflows are not affected.
Can I pause a workflow without deleting it? Yes. Toggle the workflow to "Paused" in the toolbar. It keeps all its configuration but won't fire until you reactivate it.
Can I duplicate a workflow? Yes. Open the workflow settings and click "Duplicate." A copy is created with "(copy)" in the name, paused by default.
Do conditions support OR logic? Currently, all conditions on a step are ANDed: every condition must be true for the step to run. For OR logic, create separate branches or use an AI Decision step to handle the routing.
How does Wait for Approval work?
The workflow pauses and creates an approval request. You can 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 subsequent steps.
Can I use workflows with my AI agents? Absolutely. The "Trigger Agent" action sends data to any of your AI agents. The agent processes it and returns a response you can use in later steps. This is powerful for adding intelligence to your automations.
What timezone do scheduled workflows use? You set the timezone when configuring the schedule trigger. Options include all major US timezones (Eastern, Central, Mountain, Pacific, Alaska, Hawaii), plus London, Paris, Tokyo, Sydney, and UTC.
Can workflows call external APIs? Yes. The HTTP Request action lets you call any external URL with a custom method, headers, and body. This is the escape hatch for integrating with any tool that has an API.
Is there an AI to help me build workflows?
Yes. Press Cmd+K (Mac) or Ctrl+K (Windows) in the workflow editor and describe what you want in plain English. AI will generate the full workflow (trigger, actions, and configuration), ready for you to review and activate.