> ## Documentation Index
> Fetch the complete documentation index at: https://docs.armin.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflow triggers and filters

> Understand why workflows run or skip a ticket.

Workflow triggers decide when an existing legacy workflow runs or skips a ticket.

<Warning>
  Move existing workflow triggers to AI Agents over time, not only new automation. Follow the [migration guide](/ai-agents/migrate-from-classic-ai) to test new matching in a controlled scope and turn off overlapping workflow triggers before expanding. [Create an AI Agent](/ai-agents/getting-started), and open [Workflows](https://armin.cx/app/_/workflows) only during migration or for necessary maintenance.
</Warning>

In mixed setups, ongoing work on the ticket continues first. A matching legacy AI-guided workflow may start before a new AI Agent. Once an AI Agent owns the conversation, Classic AI backs off. See [routing and ownership](/ai-agents/routing-and-ownership) for the exact behavior.

## How matching works

There are two layers:

1. **Trigger event**: a new message, status change, tag change, manual start, or scheduled check.
2. **Filter conditions**: status, channel, tags, assignee, ticket fields, and other ticket properties.

A workflow skips the ticket when any required condition fails.

Workflow filters are best for exact properties. They are not the best place to model broad customer intent.

<Note>
  Time-based workflows check conditions when the scheduled check runs, not only when the workflow was first created.
</Note>

## Debug a skipped workflow

Check:

* whether the trigger event happened
* whether the workflow is published and active
* whether the ticket still matches the filters
* whether a time-based check ran after the ticket changed
* whether another workflow changed the ticket first

Ask Torben can inspect a specific case. Include the ticket number, workflow name, and approximate time.
