When the app sends webhooks
Most modern apps can push events to a URL. This is the best option when it’s available: point the app’s webhook at a webhook trigger.- Define a
defineWebhookSourcewith arequestschema for the app’s payload. - Get the URL with
keystroke triggers url <endpoint>and register it in the app’s settings. - Use a
filterto narrow to the event types you care about.
src/triggers/stripe-invoice-paid.ts
endpoint, each filtering for its own event.
When the app doesn’t push events
If an app has no webhooks (or you’d rather pull), use a poll trigger. Itsrun() checks the app’s API on a schedule and starts a run only when there’s something new:
src/triggers/new-issues.ts
run(), or read them from your project’s credentials.
Chat apps: the Slack gateway
Conversations are different from events. To let people talk to an agent from Slack (mention it in a channel or DM it), use the Slack gateway rather than a trigger. The gateway delivers inbound messages to an agent and posts replies back. See external channels.Finding integrations
Keystroke ships 1,000+ integrations. Each one lists the actions it provides (and whether it exposes triggers), which you can use inside a poll’srun() or as steps and tools once connected. Browse the catalog to see what’s available for the app you want to react to, then wire it up with a webhook or poll as above.
Next steps
Webhooks
Receive events the app pushes to a URL.
Polling
Pull events from an app on a schedule.
External channels
Connect agents to Slack and other chat surfaces.
Integrations
Browse 1,000+ built-in integrations.