Product
Wake your agent when something happens.
Triggers turn webhooks and polling into one stream of normalized events, so your agent reacts to a new issue, a new email or a failed payment without you running any listeners.
Event to action
github.issue_openedacme/app #218Doneslack.post_messagePosted to #triageDonelinear.create_issueENG-412 createdDone
One event shape for every app.
Whether an app pushes webhooks or has to be polled, Setu delivers the same envelope to your endpoint or straight to an agent run.
- Signed deliveries with replay protection
- Retries with backoff and a dead-letter view
- Per-user subscriptions, scoped like everything else
{
"id": "evt_8f2c",
"type": "github.issue_opened",
"user_id": "user_1",
"connection_id": "con_91ab",
"data": { "repo": "acme/app", "number": 218, "title": "Login fails on Safari" },
"occurred_at": "2026-10-13T09:14:22Z"
}Subscribe in a few lines.
Pick an event, a user and a destination. Point it at an endpoint, or at a recipe that runs an agent.
- Webhook, queue or recipe destinations
- Filters so you only wake up for what matters
- Pause and resume without losing events
await setu.triggers.create({
userId: "user_1",
event: "gmail.new_message",
filter: { from: "billing@*" },
run: { recipe: "invoice-chaser" },
});Give your agent real hands.
Connect an app, hand your agent the tools, and watch it finish the job.