--- title: 'Event Trigger' description: 'Starts a workflow when an event of the chosen type arrives.' --- # Event Trigger Starts the workflow when an event matching the chosen `eventType` is received by OneHazel. Events can come from your own code (via `POST /events`), from a Connection's webhook, or from internal signals like connection health changes. ## When to use - You want a workflow to fire whenever a specific event happens in your product. - Examples: "When a transaction is settled, sync it to our accounting tool." "When a player's session ends, compute GGR and update their KPIs." "When a connection becomes degraded, notify the ops channel." ## Configuration | Field | Required | What it does | |---|---|---| | `eventType` | Yes | The event type string the workflow listens for. Pick from the dropdown or type a custom one. | ## Built-in event types The dropdown ships with the common iGaming event types plus two connection- health events: - `transaction` — player deposit/withdrawal - `game_activity` — session play events - `session` — session start/stop - `bonus` — bonus awarded/consumed - `block` — account block/unblock - `support` — support ticket created/updated - `affiliate` — affiliate-related events - `connection.health.degraded` — a Connection has started failing health checks - `connection.health.recovered` — a Connection's health checks are passing again You can also emit custom event types from your own code — any string works. ## What it outputs The trigger writes the event payload to the workflow context. Downstream nodes can reference it as `{{trigger.data.}}`. The exact shape depends on which event type arrived — see the producer's docs (for a built-in type) or your own emitter code (for a custom type). ## Deciding between the three trigger types - **Event Trigger** — for *internal* events OneHazel already knows about, or events you emit yourself via `POST /events`. - **Webhook Trigger** — for *external* systems that can hit a unique URL (Stripe webhook, GitHub webhook, custom integration). No pre-existing event type needed. - **Schedule** — for *time-based* runs with no external event (nightly rollup, hourly health check, etc.). ## Limitations - Exactly one trigger node per workflow. If you need multiple trigger paths, create multiple workflows. - `eventType` is matched as an exact string; no wildcards today.