Triggers

Markdown

When events occur in apps, like a new Slack message, a GitHub commit, or an incoming email, triggers send event data to your application as structured payloads.

Triggers flow: Connected apps send events to Composio, which delivers them to your webhook endpoint via HTTP POST
How triggers deliver events from apps to your application

Three delivery models

Every Composio trigger fits one of three delivery models. The model is a property of the trigger type, not something you choose — but knowing which model your trigger uses tells you exactly what setup is required.

Delivery modelWhat Composio doesWhat you do
PollingComposio polls the provider on a schedule (15-minute minimum on Composio managed auth)Just create the trigger
User-level webhookComposio registers a per-user webhook with the provider when you create the trigger, and deregisters it when you delete the triggerJust create the trigger
App-level webhook endpointComposio gives you one ingress URL per OAuth app; you point the provider's app dashboard at it onceConfigure a webhook endpoint for the OAuth app, then create triggers normally

End-to-end flow

For every trigger, regardless of delivery model, events take the same path on the way to your application:

provider event ──▶ Composio ingress ──▶ trigger fan-out ──▶ webhook subscription ──▶ your endpoint

Two webhook URLs sit on opposite sides of Composio. Don't confuse them:

URLDirectionWho configures it
Ingress (/api/v3.1/trigger_instances/.../handle for V1, /api/v3.1/webhook_ingress/... for V2)Provider → ComposioComposio (V1, automatic) or you, once per OAuth app (V2 — see Configuring webhook endpoints)
Webhook subscription (your URL)Composio → your applicationYou, once per project — see Subscribing to triggers

Composio verifies signatures on both hops:

  • On ingress, V2 endpoints verify the provider's signature against the signing secret you stored on the endpoint. Unsigned or tampered requests are rejected before any trigger fires.
  • On delivery, every webhook Composio sends to your endpoint is signed with your subscription secret — verify it as described in Verifying webhooks.

Working with triggers

Configure delivery to your application. Create a webhook subscription so Composio knows which URL to deliver events to. This is a one-time step per project.

Configure ingress (V2 toolkits only). For toolkits on V2 (currently Slack), create a webhook endpoint and point the provider's app dashboard at the URL Composio returns. One-time per OAuth app.

Discover available trigger types for a toolkit (e.g. GITHUB_COMMIT_EVENT).

Create an active trigger scoped to a user's connected account — see Creating triggers.

Receive events at your webhook subscription URL, verify the signature, and route on metadata.trigger_slug.

Manage triggers as needed — see Managing triggers.

Triggers are scoped to a connected account. If you haven't set up authentication yet, see Authentication.

Next steps