Workflows

Automation Triggers Explained: Which Type to Use

triggersworkflowsautomationno-codetiming

Picking the wrong trigger is one of the quietest ways an automation fails. The workflow runs — or doesn't — at exactly the wrong moment, and by the time you notice, a dozen downstream steps have already acted on stale or missing data. This guide breaks down the three main trigger types, shows you when each one belongs, and gives you a decision checklist so you can choose before you build.

Why the trigger decision matters more than the steps

Most people spend their design time on the middle of a workflow: which fields to map, which filters to add, which app sends the final message. The trigger gets picked almost by default — "I'll just run it every hour" — and that's where the trouble starts.

A trigger is a contract. It promises the rest of your workflow that data will arrive in a certain shape at a certain moment. Break that contract and every step downstream is working with assumptions that no longer hold.

There are three trigger families, and each one suits a different kind of work.

The three trigger types

Trigger typeHow it firesLatencyBest for
Scheduled (polling)On a clock interval you setMinutes to hoursBatch jobs, reports, digest emails
Event-basedWhen something happens inside a connected appSeconds to a minuteRecord creation, status changes, form fills
Webhook (push)An external system sends a signal to your endpointNear real-timePayment events, external APIs, IoT signals

Scheduled triggers

A scheduled trigger fires on a fixed cadence — everyundefinedminutes, once a day atundefineda.m., every Monday at 9. The workflow doesn't know or care what changed; it simply wakes up and checks.

This is the right choice when:

  • The downstream action is inherently batch-oriented (a weekly summary report, a nightly database sync)
  • The source system has no event capability and you have to poll for changes
  • Exact timing doesn't matter and a few minutes of lag is acceptable

The trap is using a schedule when you actually need immediacy. A scheduled trigger checking for new support tickets everyundefinedminutes means a customer could wait half an hour before your workflow even sees their request. That lag is invisible until a customer complains.

One practical rule: if you find yourself setting the interval shorter and shorter trying to feel "real-time," that's the signal to switch to an event-based or webhook trigger instead.

Event-based triggers

An event-based trigger fires the moment something happens inside a connected app — a new row appears in a spreadsheet, a deal moves to "Closed Won" in your CRM, a user submits a form. The platform listens continuously and reacts.

This is the right choice when:

  • The action should happen immediately after a specific state change
  • You want the workflow to be selective (only fire when a field equals a certain value)
  • The source app supports native event connectors

The hidden cost of event-based triggers is volume. A trigger that fires on every new row in a high-traffic database can generate hundreds of workflow runs per hour. Before you build, estimate your event frequency and check how that maps to your plan limits. Use the /calculator to model run volume before committing to a design.

Webhook triggers

A webhook trigger gives your workflow a unique URL. When an external system sends an HTTP POST to that URL, the workflow fires immediately with whatever payload was sent.

This is the right choice when:

  • The source system isn't a native integration but does support outgoing webhooks
  • You need sub-second reaction time (payment confirmations, fraud signals)
  • You want to receive data from a custom app or script you control

Webhooks are the most flexible trigger type and also the one most likely to silently break. The external system sends data in its own format, and if that format changes — even a renamed field — your workflow receives the payload and either errors or, worse, maps the wrong value without an error. Build in a validation step immediately after a webhook trigger: check that the expected fields exist before passing data downstream.

Choosing the right trigger: a decision checklist

Work through these questions top to bottom and stop at the first "yes."

  • [ ] Does the action need to happen within seconds of an event? → Use a webhook trigger if the source supports it; event-based if there's a native connector.
  • [ ] Is the source app a native integration with event support? → Use an event-based trigger.
  • [ ] Does the source system only expose an API or outgoing webhook, not a native connector? → Use a webhook trigger.
  • [ ] Is the work inherently batch — a report, a digest, a nightly sync? → Use a scheduled trigger.
  • [ ] Are you unsure what events the source app fires? → Browse the /browse library to see which triggers are available for your tools before designing the flow.

If you finish the checklist without a clear answer, default to scheduled and revisit once you have real usage data. A working scheduled trigger you can upgrade later beats a broken real-time trigger you have to debug now.

Common mismatches and how to fix them

Mismatch: Scheduled trigger on a time-sensitive process A team uses a 5-minute scheduled trigger to detect new inbound leads and route them to sales reps. Leads sit for up toundefinedminutes before anyone is notified. Fix: switch to an event-based trigger on the CRM's "Lead Created" event. Response time drops to seconds.

Mismatch: Event-based trigger firing on every minor field update A workflow fires every time any field on a CRM contact changes, including irrelevant fields like "Last Login." The workflow runs thousands of times a day doing nothing useful. Fix: add a filter condition so the trigger only proceeds when the specific field you care about changes, or switch to a webhook that fires only on the exact event you need.

Mismatch: Webhook trigger with no payload validation A payment provider sends a webhook on successful charge, and the workflow maps event.amount. The provider updates their API and renames the field to event.charge_amount. The workflow continues running but maps null — no error, no alert, wrong data everywhere. Fix: add an early step that checks event.charge_amount exists and is a number before proceeding; route failures to a Slack alert.

If you want help reading an existing workflow's trigger logic before redesigning it, the /analyze tool can surface where timing mismatches are likely hiding.

Thinking about trigger costs across your stack

Triggers don't exist in isolation. A high-frequency event trigger in one workflow can cascade into dozens of child workflows, multiplying your run count fast. Before scaling, it's worth auditing your full stack — not just individual automations — to understand where volume is generated.

If you're still deciding which tools belong in your stack at all, Craft My Stack helps you evaluate and compare the platforms you're building on, which affects which trigger types are even available to you.

Key takeaways

  • Scheduled triggers suit batch work where a few minutes of lag is acceptable; avoid them when immediacy matters.
  • Event-based triggers react instantly to state changes inside native integrations; watch run volume carefully.
  • Webhook triggers offer maximum flexibility and near-real-time speed, but require payload validation to stay reliable.
  • The trigger decision shapes every downstream step — get it wrong and the whole workflow works on the wrong assumptions.
  • Use the checklist above before building, not after debugging.
  • Model your expected run volume with the /calculator before choosing a high-frequency trigger type.

Ready to put the right trigger on your next workflow? Open /templates to find pre-built flows with triggers already matched to their use case — a faster starting point than building from scratch.

Never miss a prompt breakthrough

Join 500+ builders getting focused email updates whenever we publish. Unsubscribe anytime — or follow the RSS feed.

Prefer a reader? RSS feed