# Workflow Triggers (/docs/automate/workflow-triggers)

A trigger is what starts a workflow. Sift workflows are driven by three kinds of trigger: **matching a condition** (an inline filter you build right in the workflow), a **saved-search match** (an action matches a filter you've saved separately), or a **schedule** (a recurring cron run). A single workflow can have more than one trigger attached, and each one independently kicks off the same workflow.

Set them up on the **Automations** tab of [Settings → Workflows](https://app.getsift.ai/app/settings/workflow/rules).

## At a glance [#at-a-glance]

| | |
| --- | --- |
| Match a condition (inline filter builder) | ✅ |
| Saved-search match trigger | ✅ |
| Scheduled (cron) trigger | ✅ |
| Multiple triggers per workflow | ✅ |
| Full action context passed into the workflow | ✅ |

{/* screenshot */}
<figure>
  <img src="/assets/screenshots/automate/workflow-triggers.png" alt="The workflow builder showing the trigger configuration" />
  <figcaption>Configure a workflow's trigger in the workflow builder.</figcaption>
</figure>

## The three trigger types [#the-three-trigger-types]

- **Match a condition**: build a filter inline, without a separate saved search - keyword, text pattern, sentiment, tag, score, likes, and more, grouped by content, classification, date and volume, groups and users, and source. Use this when the condition is specific to this one workflow and you don't need to reuse it elsewhere.
- **Saved-search match**: the workflow runs when an action matches the criteria of a [saved search](/docs/search/saved-searches) you've already built. Use this when the same condition powers a queue, a notification, or more than one workflow, so you only maintain it in one place.
- **Scheduled (cron)**: the workflow runs on a recurring schedule defined by a cron expression and timezone. Use it for digest reports, periodic SLA checks, or queue sweeps that aren't tied to a single action.

## Multiple triggers [#multiple-triggers]

A workflow can have several triggers attached at once - for example, a condition match and a daily schedule together. Each trigger is evaluated independently and runs the same downstream steps.

## Full action context [#full-action-context]

When a condition or saved-search trigger fires, the workflow receives the full action: its id, source platform, channel, tags, status, queue, assignee, and the rest of its fields. Downstream steps can reference any of them without an extra lookup.

## Choosing a trigger [#choosing-a-trigger]

- For a condition you'll only use in this one workflow, build it **inline** with Match a condition.
- For a condition you already use elsewhere (a queue, a notification, another workflow), reuse it as a **saved-search match** instead of rebuilding it.
- For periodic work that isn't tied to a specific action, use a **scheduled** trigger.


## Related [#related]

<Cards>
  <Card href="/docs/automate/workflows" title="Workflows">How triggers, conditions, and actions fit together.</Card>
  <Card href="/docs/search/saved-searches" title="Saved Searches">The filters behind a saved-search trigger.</Card>
  <Card href="/docs/automate/action-rules" title="Action Rules">Simpler arrival-time routing without a workflow.</Card>
</Cards>
