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

# Workflows — triggers

> The trigger node: which entities start a workflow and how tag filters select them.

Every workflow has exactly one **trigger** node. It defines which entities, filtered by
tags, start a run.

```json theme={null}
{
  "nodeType": "TRIGGER",
  "entityType": "PRODUCT",
  "includeTags": ["fast-mover"],
  "excludeTags": ["discontinued"]
}
```

## Fields

| Field         | Meaning                                                                                                |
| ------------- | ------------------------------------------------------------------------------------------------------ |
| `entityType`  | What kind of entity triggers the workflow: `PRODUCT`, `PRODUCT_VARIANT`, `BRAND`, or `INVENTORY_ITEM`. |
| `includeTags` | The entity must carry **all** of these [tags](/en/automation/tags).                                    |
| `excludeTags` | The entity must carry **none** of these tags.                                                          |

## How matching works

At run time, the data platform finds entities of `entityType` that match the tag filters
(have every `includeTags` tag and none of the `excludeTags`). The resulting list is
recorded on the run as `matchedEntityIds` (part of the run's **trigger context**), and the
downstream actions operate over those entities.

The first matched entity is also exposed to interpolation as `{{trigger.entityId}}`, and
the entity kind as `{{trigger.entityType}}` — see
[interpolation](/en/developers/workflows/integrations#interpolation).

<Note>
  Tags are produced manually or by tagging rules. A workflow is therefore the "act" half
  of the **detect → classify → automate** loop: [alerts](/en/signals/alerts) and
  [tags](/en/automation/tags) classify, workflows react.
</Note>
