Back to docsCore concepts

Automations

Triggers that run a workflow on its own — schedules, email, GitHub, calendar, Notion, and webhooks.

Last updated July 30, 2026 · 7 min read

An automation is a trigger attached to a workflow. The workflow says what to do; the automation says when. Together they're how a request you once typed by hand becomes work that happens without you.

Calendar reminders ask you to do work. Automations do the work, then tell you it's done.

Every automation names three things:

  1. The workflow to run
  2. The agent that runs it — which decides the voice, the model, and the connectors in play
  3. The trigger — a schedule, an event in one of your tools, or an inbound webhook

What runs each time

Each firing starts a fresh chat. The chat re-reads the latest context from your tools, calls the connectors it needs, and produces the result.

This matters for two reasons:

  • No accumulated state. Last Monday's run doesn't leak into this Monday's. The procedure is the same; the data is fresh.
  • Each run is replayable. Open the automation's run history to see exactly what the last run did, where it spent credits, and what it produced.

If a run fails — network blip, expired token, ambiguous input — Zero records the failure with the reason and notifies you instead of silently dropping it.

Trigger types

Schedules

The most common family. See Schedules for cron syntax, time zones, and the operating tips that come from running these in production.

TriggerFires
cronOn a cron expression, in the time zone you name — 0 8 * * 1-5
onceA single time, at a date and time you set
loopOn a fixed interval — every 15m, 1h, 90s

Email

TriggerFires
gmail-new-messageWhen a new message arrives
gmail-label-appliedWhen a named label is applied to a message

Both narrow with text rules on the From, To, Cc, Subject, and body — each available as contains and does not contain. With no rules, a Gmail automation matches every inbound message, so start narrow.

Triage support mail without watching the inbox: gmail-new-message filtered to from-contains: @customer-domain.com, running a customer-reply-draft workflow that prepares a draft for you to review.

GitHub

TriggerFires
github-label-appliedA label lands on an issue or PR — filter by label, repository, issues/PRs/both, and whether the actor is you or anyone
github-workflow-run-completedAn Actions run finishes — filter by repository, workflow, conclusion, branch, triggering event, actor
github-workflow-job-completedA single job finishes — additionally filter by job name, runner label, runner group
github-pull-request-review-submittedA review is submitted — filter by review state (approved, changes requested, commented), base and head branch, trusted authors
github-deployment-status-createdA deployment changes state — filter by environment, state, ref, creator, app, and production-only
github-issue-comment-createdA comment appears — filter by repository, issues/PRs/both, actor, and required comment prefix

GitHub triggers need the GitHub App installed in your workspace. Filters accept comma-separated values; omit one to match anything.

Close the CI loop: github-workflow-run-completed on conclusion: failure for main, running a workflow that reads the logs, identifies the failing step, and posts a diagnosis to Slack.

Calendar

TriggerFires
google-calendar-event-createdA new event appears
google-calendar-event-updatedAn event changes
google-calendar-event-cancelledAn event is cancelled

Each watches one calendar — your primary calendar by default.

Never walk into a meeting cold: google-calendar-event-created running a workflow that researches external attendees and their companies, then sends you a pre-meeting brief.

Notion

TriggerFires
notion-child-page-createdA page is added under a parent page you name
notion-database-item-createdA row is added to a database you name
notion-page-content-updatedA page's content changes, watched by page or by database

CMS

TriggerFires
strapi-entry-publishedAn entry is published — optionally narrowed to one content type and locale

Webhook and chat

TriggerFires
webhookAny external system calls a signed webhook URL. The signing secret is shown once, at creation — copy it then. Available on Team and Enterprise.
chat-run-finishedA run finishes in a chat thread you name — optionally filtered by finish status (completed, failed, cancelled) and a wildcard pattern matched against the run's final message

chat-run-finished is how you chain work: one automation's output becomes another's starting gun.

Creating an automation

From a chat that works. Run the task as a one-off first. When it produces what you want, say:

"Run this every weekday at 8 a.m. Los Angeles time and DM me the result."

Zero confirms the workflow, the cadence, and the destination, saves the workflow if it doesn't exist yet, and attaches the automation.

Explicitly. Open a workflow in your workspace and add an automation to it, choosing the trigger type and its filters. Useful when you know the shape ahead of time and don't want a dry run.

Automations can be enabled and disabled individually without deleting them — the right move before a vacation, or while you debug a noisy trigger.

Destinations

An automation needs to know where the result goes. State it in the workflow instruction:

  • Slack channel or DM — most common; lands in the channel as a message or thread
  • Feishu or Microsoft Teams — same idea for teams that live there
  • Telegram or text message — for personal, mobile-first alerts
  • A Notion page or database — for things that should be archived rather than broadcast
  • A Google Doc or Sheet — appended or overwritten
  • A GitHub issue or PR comment — for engineering workflows
  • A Gmail draft — prepared in your account for you to review and send
  • A hosted page — see Hosted sites
  • A workspace file — when the artifact is a video, image, or downloadable asset

"Post to #engineering" or "DM me" is clearer than "send it somewhere."

Costs

Each run consumes credits, and every run is attributed to the agent that ran it. Watch the first three runs of any new automation — they're easy to set up and easier to refine once you see what Zero produces in your environment. A morning brief is usually cheap; a weekly multi-tool content bundle costs more. See Credits & billing for how this maps to dollars.

Event triggers can be surprisingly chatty. A Gmail automation with no filters, or a GitHub automation across a busy monorepo, will fire far more often than you expect. Narrow the filter first, then widen it.

What's next

  • See Workflows for the procedure an automation runs.
  • See Schedules for cron, time zones, and cadence tips.
  • See Chat for what happens inside each run.
  • See Example workflows for five complete workflow-plus-automation combinations.