collab.spaceDocumentation
Overview
Apps

Workflows

Workflows let you build rules that run automatically in your workspace. Instead of manually updating records, sending notifications, or forwarding data, you define a trigger and a set of steps — and Collab Space handles the rest.

Availability: Workflows are available on the Pro and Enterprise plans. Enable the Workflows module under Settings → General.

Getting Started

Open the Operator app from the sidebar, then click the ⚡ Workflows button in the top toolbar to open the workflows drawer. The drawer shows:

  • List view: your workflows organised in folders, with search and a "+ New" button
  • Detail view: the editor for the selected workflow, including trigger config, steps, and execution history
  • Templates view: browse and install pre-built workflow recipes

To create your first workflow:

  1. Click + and select New Workflow (or pick a template from Browse Templates)
  2. Give it a name
  3. Choose a trigger type
  4. Add one or more steps
  5. Toggle it Enabled

Triggers

Every workflow starts with a trigger — the event or schedule that kicks it off.

TriggerWhen it fires
EventWhen something happens in your workspace (issue created, status changed, meeting notes added, etc.)
ScheduledOn a recurring cron schedule (e.g. every day at 9am, every 5 minutes)
WebhookWhen an external service sends an HTTP POST to your workflow's unique URL
ManualOnly when you click the Run button — useful for testing
AI OrchestratedStarted by the AI agent from chat, or via the +Run Workflow button in the Operator app

Event Trigger

Select the record type (Issue, Meeting, Document, etc.) and the activity that should fire the workflow (created, updated, status changed, assigned, and many more).

The triggering record is automatically available in your steps as state.record — so you can reference {{state.record.title}}, {{state.record.priority}}, and so on.

Scheduled Trigger

Enter a cron expression to control when the workflow runs. The scheduler checks every minute.

ExpressionMeaning
*/5 * * * *Every 5 minutes
0 9 * * *Daily at 9:00 AM UTC
0 9 * * 1-5Weekdays at 9:00 AM UTC
0 0 1 * *First day of every month

Scheduled workflows currently run in UTC. Timezone support is planned.

Webhook Trigger

When you save a webhook workflow, a unique URL is generated:

https://<your-deployment>.convex.site/api/automations/webhook?path=<uuid>

Send a POST request to that URL to trigger the workflow. The request body (JSON) is available in your steps as {{state.body.fieldName}}.

Optional signature validation: set a Webhook Secret in the trigger config. Callers must then include an X-Signature-256: sha256=<hmac> header computed with that secret. Leave the secret blank to allow unsigned requests.

Steps

Steps run in order after the trigger fires. You can add as many steps as you need.

AI Command

Available in AI-orchestrated workflows. Runs an isolated AI call with a specified instruction and stores typed output in the workflow state under a named key. Supports structured output via JSON Schema.

instruction: "Summarize the following document: {{state.document.content}}" outputKey: "summary"

Human Review

Available in AI-orchestrated workflows. Pauses execution with an amber card in the chat showing a prompt and a set of suggested action buttons. Clicking an action records your choice and resumes the workflow. Clicking Request Changes sends feedback and rewinds execution to an earlier step for revision.

Condition (IF/ELSE)

Evaluates one or more conditions against the current state. If all conditions pass, the THEN branch runs; otherwise the ELSE branch runs.

Example: state.record.priority equals high

Supported operators: equals, not equals, contains, starts with, ends with, in list, greater/less than, is empty, is true/false.

You can drag steps into THEN or ELSE branches, and nest conditions inside each other.

Action

Performs a side effect. Current action types:

ActionWhat it does
Update RecordPatch fields on the triggering record (or any record by ID)
Send WebhookPOST JSON to an external URL
NotifySend an in-app notification to a user
Send EmailSend an email to a recipient
Run Command (AI)Invoke a saved Command (prompt template) with the AI and store the response in the execution state

Action parameters support template interpolation — wrap any state value in {{ }}:

{{state.record.title}} → the record's title as a string {{state.record}} → the full record object {{state.body.externalId}} → a field from an inbound webhook body

Delay

Pauses execution for a set duration (seconds, minutes, hours, or days) before continuing to the next step.

Note: In the current release, delays log the intended wait time but do not actually pause execution. Full durable delays are on the roadmap.

Loop

Iterates over an array in the current state and runs child steps once per item. Each iteration sets state.loop.currentItem to the current element.

Useful for acting on a list of records returned by a future Query step.

Query (coming soon)

Looks up one or more records from the database and saves the result to a named state key for use by later steps. For example, fetch the assignee's profile, then use {{state.assignee.name}} in a notification.

AI-Orchestrated Workflows

AI-orchestrated workflows let the AI agent act as orchestrator — running steps, extracting structured data, and pausing for your review at decision points.

Creating an AI-Orchestrated Workflow

  1. Click +New Workflow in the workflows drawer
  2. Set Trigger to AI Orchestrated
  3. Optionally define an Input Schema — fields the AI must collect before starting (text, number, boolean, file, record, or database entry)
  4. Add steps: AI Command steps to extract structured data, Human Review pauses at decision points, and any other step types

Running from Chat

Open the Operator app, click + in the message input, then select Run Workflow. The AI presents a list of available workflows. After you choose one, it collects any required inputs and starts execution — step progress appears inline as cards in the chat.

Input Schema Field Types

TypeAccepts
TextAny string value
NumberNumeric input
BooleanYes/No value
FileAn uploaded file attachment
RecordA workspace record (issue, document, etc.)
Database entryAn entry from a custom database

Step Cards

Each step renders as a card in the chat as it runs. Expand any card to see the AI output, tool calls, and state changes for that step. See AI Workflows for full details on interacting with step cards.

Templates

Click Browse Templates at the bottom of the workflows drawer to browse built-in recipes. Templates are installed in a disabled state so you can review and customise them before enabling.

Available templates include:

  • Auto-assign issues by type
  • Escalate overdue issues daily
  • Welcome new team members
  • Notify subscribers on status change
  • Archive completed issues weekly
  • Meeting follow-up issue creation
  • Webhook relay
  • Document review reminders
  • High-priority team alerts
  • SLA breach warnings

Execution History

Each workflow run is logged in the Execution History section at the bottom of the editor. Expand any row to see:

  • Which steps ran (and in which branch)
  • Duration per step
  • Input/output state at each step
  • Error details for failed runs

Update Record — Parameter Guide

The most common action is Update Record. Pass a JSON params object to the step:

Shorthand (uses the triggering record automatically):

Explicit (target a specific record):

Supported record types: issue, meeting, document, file, milestone plan item, database entry.

Send Webhook — Parameter Guide

Set "payload": "{{state}}" to send the entire execution state as the body.

Run Command (AI) — Parameter Guide

The Run Command action invokes a saved Command (prompt template) using the space's configured AI model. The AI response is written into the execution state so later steps can use it.

Minimal — pass full state to the AI:

Custom user input with field substitution:

Reading the output in later steps:

{{state.commandOutput}} → AI text response (default key) {{state.followUpEmail}} → AI text response (custom outputKey)
ParameterRequiredDescription
commandSlugYesSlug of the saved Command to run (without the leading /)
userInputNoMessage to send to the AI. Supports {{state.x}} templates. Defaults to the full execution state as JSON.
outputKeyNoState key where the AI response is stored. Defaults to commandOutput.

Note: The Run Command action requires the space's AI model to be configured and uses the same model as the AI chat feature.

Tips & Limits

  • Workflows are space-scoped — each space manages its own rules
  • Steps inside a condition branch can themselves contain conditions (unlimited nesting)
  • Loops cap at 50 iterations by default to prevent runaway executions
  • The event trigger is non-blocking — it never slows down the original action that fired it
  • Manual trigger bypasses the enabled/disabled toggle, making it safe for testing

Related