Triggers
When something happens in a connected app (a new Slack message, a GitHub commit, an incoming email), a trigger sends that event to your app as a structured payload. You write the handler. Composio handles the connection to the provider, delivery, retries, and signing.
Connected apps
- GitHubrealtime
- Slackrealtime
- Gmailpolling
Your application
One URL receives every event.
Where events arrive
Composio delivers every event to one destination you control: your webhook URL. You register it once per project, and Composio POSTs every trigger event there, signed so you can verify it.
Realtime vs polling
Under the hood, Composio learns about events in one of two ways. You don't configure this. It's a property of the trigger type, and it only affects how quickly an event reaches you.
| Kind | How Composio learns about the event | Latency | Examples |
|---|---|---|---|
| Realtime | The provider pushes the event to Composio the moment it happens. | Near-instant | Slack, Asana, Notion, Outlook |
| Polling | Composio checks the provider on a schedule. | Up to ~15 min on Composio-managed auth | Gmail, Google Calendar |
Either way, the event lands in the same place: your subscription or webhook URL, in the same payload shape.
If you bring your own OAuth app, some providers only deliver to URLs registered on that app, so you register Composio's ingress URL there once. See Custom OAuth webhooks.
Trigger types and instances
A trigger type is a kind of event you can listen for, like GITHUB_COMMIT_EVENT or a new Slack message. Each toolkit has its own set.
A trigger instance is a trigger type you've activated for one user's connected account. It has its own ti_* ID that you can enable, disable, or delete independently.
Working with triggers
- Authenticate the user for the toolkit: an auth config and a connected account. See Authentication.
- Create a trigger for the user's connected account. See Creating triggers.
- Receive its events: locally with
subscribe(), or in production at your webhook URL. See Receiving events. - Manage triggers: enable, disable, or delete. See Managing triggers.
Next
Creating triggers
Activate a trigger for a user so events start flowing