A trigger decides when Lumail evaluates a subscriber for enrollment. The event must match first; any subscriber filters on the trigger must also match at that moment.

## Configure a trigger

Select a trigger node to open its configuration panel.

![Trigger configuration with selected events and audience filters](/docs/workflows/trigger-events.png)

1. Choose one or more **Events**.
2. Add event-specific details when the event supports them.
3. Add subscriber filters only when the person must already match an audience rule at enrollment time.
4. Save the draft.

## Supported events

| Category        | Events                                    |
| --------------- | ----------------------------------------- |
| Subscriber      | Created, updated, unsubscribed            |
| Tags and fields | Tag added, tag removed, field changed     |
| Email           | Sent, delivered, opened, clicked, bounced |
| Surveys         | Survey answered (`subscriber.survey.answered`) |
| Commerce        | Payment, refund                           |
| Capture pages   | Capture page submitted                    |
| Workflows       | Workflow completed, workflow goal reached |

Use the narrowest event that represents the real entry point. For example, prefer **Tag added** with a specific tag over the broad **Subscriber updated** event.

## Event filters

Event filters describe the event payload. They are different from subscriber filters, which inspect the subscriber's current data.

| Event                                              | Supported event filter |
| -------------------------------------------------- | ---------------------- |
| Tag added or removed                               | One or more tag IDs    |
| Payment or refund                                  | Product identifier     |
| Email sent, delivered, opened, clicked, or bounced | Campaign ID            |
| Survey answered                                    | `surveyId`, optionally `optionId` (`optionId` requires `surveyId`) |

Leaving a survey trigger unscoped starts a run for **every** survey answer in
the organization, including surveys created later. Pin `surveyId`. The first
genuine answer fires once; changing the answer later does not re-enrol.

See [Surveys](/docs/features/surveys) for the option-id stability rules.

Unknown filter keys are rejected. Leaving the event filter empty matches every event of that selected type.

## Audience filters

Audience filters are checked when the trigger event is processed. All filters in the trigger must match.

Examples:

- Tag added is `trial-started` **and** country is France
- Payment event is for `course-pro` **and** lifetime revenue is at least 100
- Capture page submitted **and** subscriber does not already have the customer tag

For a tag-added trigger, you usually do not need to repeat the same tag as an audience filter. The event itself already proves that tag was added. That advice is trigger-only. Success goals are a different contract: pin `eventFilters.tagIds` and/or a TAG subscriber-state filter. See [Goals](/docs/workflows/workflow-goals).

## Multiple events in one trigger

One trigger may listen to several events. This is useful when the same entry path should start from equivalent signals, such as payment or a customer tag added by an integration.

All selected events share the trigger's subscriber filters. Event-specific filters apply only to compatible events.

## Multiple trigger nodes

A graph may contain several trigger nodes. Use separate triggers when entry points need different event filters or subscriber rules, then route them to a shared first step.

Every non-trigger step must be reachable from at least one trigger. Trigger nodes do not need incoming edges.

## Enrollment guards still apply

A matching trigger does not guarantee a new run. Lumail still checks:

- The workflow is active and has a published version
- The subscriber is eligible to receive workflow processing
- No active duplicate run exists
- Repeat cooldown rules
- Workflow-group conflict strategy

See [Workflow Groups](/docs/workflows/workflow-groups) for **Latest wins**, **First wins**, and **Send first email only** behavior.

To enroll a filtered list without matching these trigger rules, use
[manual enrollment](/docs/workflows/workflow-manual-enrollment). That path
skips trigger events and trigger audience filters. It does not skip exit
rules, repeat cooldown, or group conflicts.

## Recommended patterns

| Need                               | Recommended trigger                              |
| ---------------------------------- | ------------------------------------------------ |
| Welcome every new contact          | Subscriber created                               |
| Start a funnel from an integration | Tag added with the integration tag               |
| Follow up after checkout           | Payment with a product filter                    |
| React to engagement                | Email clicked with the exact campaign ID         |
| Follow up on a survey answer       | Survey answered with `surveyId` (and `optionId` for one choice) |
| Chain funnel stages                | Workflow completed or a terminal Add Tags action |

## Related documentation

- [Getting Started](/docs/workflows/workflow-getting-started)
- [Manual enrollment](/docs/workflows/workflow-manual-enrollment)
- [Surveys](/docs/features/surveys)
- [Branching](/docs/workflows/workflow-branching)
- [Action Step](/docs/workflows/workflow-action-step)
- [Workflow Groups](/docs/workflows/workflow-groups)
