Triggers and Actions
Start every automation with a trigger and chain action Steps to carry out the work. Triggers define when an automation runs and actions define what it does.
- Use it to
- Start an automation from an event, schedule, form, chat, or click, then chain action Steps to do the work
- Find it
- Tools → Start (built-in triggers) and Apps / Tools (actions)
- Output
- Trigger event payload (except Scheduler, which uses {{ $now }}) passed to connected action Steps
- Sit at the root of an automation and listen for an event, schedule, chat message, or manual click.
- Can pass incoming event payloads to downstream Steps (except Scheduler, which carries no payload).
- An automation can attach multiple triggers feeding the same downstream path.
- Run after the trigger in the order defined by canvas connections.
- Fetch records, reshape data, evaluate conditions, run AI models, pause for Human Review, or update external apps.
- Configured manually field by field or populated by the Workflow Assistant.
Triggers
A trigger decides when an automation runs. In Draft, automatic triggers are paused and you start runs yourself with Run. In Live, the trigger starts a run on every matching event.
The six built-in triggers sit under Tools → Start in the dock:
| Trigger | Starts a run when | Gives the next steps | Draft behaviour |
|---|---|---|---|
| Scheduler | A time or interval you describe in words (Run everyday at 8:00 AM) or as cron | Run time via {{ $now }} / {{ $run.startedAt }} | Schedule paused; Run starts it once |
| Click to start | You click the trigger on the canvas | Its saved Testing data ({{ N.<field> }}) | Same in Draft and Live (uses saved Testing data) |
| Webhook | An HTTP request reaches its URL | method, path, headers, query, body ({{ N.body.<field> }}) | No active URL until Live (202 no-op); Run uses Testing data |
| Chat Trigger | A visitor sends a chat message (Glow-hosted chat page or your own widget) | chatInput, sessionId, metadata, historyText | The Chat tab in the drawer runs test turns; the last Step’s output is the reply |
| Form Trigger | Someone submits a form Glow hosts at a shareable link | formData.<field>, submittedAt, responder | Only signed-in workspace members can submit; each submission runs the Draft as a test |
| Error Trigger | Another team automation in this workspace fails and nothing handled it | workflow, execution, failedStep, occurrenceCount | Ignores private automations and single-step tests |
Which one to pick? Use Scheduler for recurring reports and syncs, Webhook when another system pushes events, Form Trigger or Chat Trigger when a person starts the work, Click to start for jobs you run by hand on the canvas, and Error Trigger for workspace-wide failure alerts.
To start from a Data Store or connected app event instead:
| Trigger family | Where to find it | Starts a run when |
|---|---|---|
| Data Store Triggers | Apps → Data Store | A Table/List row is added, updated, deleted, or expired, a Key-value record changes, or a Collect and send list is ready to send. |
| App Triggers | Apps | An event happens in a connected service, such as a new Gmail email, Google Sheets row, Stripe charge, or Jira issue. |
Multiple triggers
A single automation can have more than one trigger, such as both a Webhook and a Scheduler feeding into the same downstream steps.
Tip: Two triggers hand the automation two different things. A Webhook
passes on whatever the sender posted. A Scheduler carries no data of its own,
so a later step that needs the time uses {{ $now }}. Check that downstream
steps can handle both.
Actions
Actions are every step that comes after a trigger:
| Category | What it does |
|---|---|
| App Integrations | Pre-built actions for services like Slack, Google Sheets, Salesforce, HubSpot, Jira, and Stripe (such as sending messages or updating records). |
| AI Steps | Language-model steps (AI Prompt, AI Agent, and AI Data Transform) to classify messages, extract fields, draft text, or call tools. |
| Data | Built-in Change, Lists, and Convert steps that reshape, filter, sort, merge, and parse data between steps. |
| Flow | Branching, conditions, and loops (Conditions, Switch, Filter, Repeater) plus Human Review checkpoints that pause a run for a person’s decision. |
| Code and HTTP Requests | Dev tools for cases where no integration fits: HTTP Request for public APIs, Respond to Webhook for custom synchronous webhook replies, and Code editor for custom Python logic. |
Two ways to configure a step
Every app action ends up configured the same way: a set of fields you can see and edit. How those fields get filled is up to you.
- Fill them yourself. Open the step and map each field, for precise control over what is sent to the external API.
- Let the assistant fill them. Describe what you want and the Workflow Assistant places the step and populates its fields from your description.

Either way you end up with the same editable step. Open an Assistant-built action to review its account, inputs and mappings before testing it.
- Run
- Place a trigger from Tools → Start, connect an action Step, and click Run in the bottom dock.
- You should see
- The trigger emits its payload and the connected action Step executes with the mapped inputs.
What’s Next?
- Set up your first trigger in detail with the Webhook Trigger or Scheduler Trigger.
- See how data flows from one step’s output into the next in Automation Data.