Skip to main content
A trigger watches your workspace for one or more kinds of data and an action, and POSTs an event to your webhook URL each time they match. A trigger is made of:
  1. Kind: what it fires on. Connector data kinds (email, calendar_event, …) fire on events from your connected accounts. Entity kinds (person, organization, …) fire when an extracted entity of that type changes or is seen.
  2. Action: created, updated, deleted, observed (an entity was seen in new data, whether or not it changed), or * for any.
  3. Filter: an optional predicate over the event’s fields.
  4. Delivery: the HTTPS URL that receives events.

Creating a trigger

The response includes a secret. It is returned only once, so store it: you need it to verify deliveries. You can also create and manage triggers on the Triggers page in the Console.

Kinds and filter fields

List trigger kinds returns every kind you can use, each with the predicate_fields you can filter on (path, type, and allowed values where there is a fixed set).

Filters

A filter clause is {"field": "<dotted.path>", "op": "<operator>", "value": ...}. Clauses combine with all, any and not, nested to any depth.
For entity kinds with action: observed, filter on entity_urn (exists for observations that resolved to a known entity, eq for one specific entity) or on via (identity for a structured field such as a sender or attendee, content for a name found in body text). Set entity_observation_fuzzy: true to also receive fuzzy matches. A filter can be at most 16,384 bytes as JSON.

The event

Managing triggers

Retries, automatic disabling and recovering a failing trigger are covered in Deliveries.

Deliveries

Signing, retries, failures and how to recover

Triggers API

Every trigger endpoint