Beta
Webhooks and triggers
Get app events, finished runs, approvals and spend alerts sent to your server, with replay for failed deliveries.
Screenshot placeholderWebhooks page with recent deliveries
product-webhooksHow it works
- 1
Add your endpoint
Set the webhook URL for your project in the console.
- 2
Subscribe
Ask for an app event, such as a new email, for one of your users.
- 3
Verify and handle
Check the signature, then act on the event. Failed deliveries can be replayed.
Try it
Replace $SETU_API_KEY with a key from the Setu console.
Subscribe and verify
# Send a webhook when customer_42 gets a new email.
curl https://setu.supremeai.services/api/setu/v1/trigger-subscriptions \
-H "Authorization: Bearer $SETU_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "trigger": "GMAIL_NEW_EMAIL", "userId": "customer_42" }'import { createHmac, timingSafeEqual } from 'node:crypto';
// Check the raw body before you parse it.
export function isFromSetu(rawBody: string, timestamp: string, signature: string, secret: string) {
if (!signature.startsWith('v1=')) return false;
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false; // 5-minute window
const expected = createHmac('sha256', secret).update(`${timestamp}.${rawBody}`).digest('hex');
const given = signature.slice(3);
return given.length === expected.length && timingSafeEqual(Buffer.from(given), Buffer.from(expected));
}
// timestamp = request header "x-supreme-timestamp", signature = "x-supreme-signature"What it does
- Trigger subscriptions per end user.
- Webhooks for runs, approvals, spend thresholds and connection health.
- Replay of failed deliveries.
- Start a workflow when a new email arrives.
- Tell your user when an approval is waiting.
- Alert your team when spend reaches a threshold.
Limits and status
Beta- Needs the triggers:write scope and an environment-bound key.
- The user must have connected the app the trigger watches.
- Not yet: A large catalog of app triggers. Only a few are defined.
Status last checked 2026-10-21.
Questions
Which events are sent?
Approvals (requested, approved, denied), executions (succeeded, failed), connections (connected, failed, revoked, attention required), spend thresholds and trigger events.
Which triggers exist?
A small set today: new Gmail email, new GitHub issue or pull request, Slack message, Stripe payments, a schedule, and a generic inbound webhook.