Developer Documentation
Webhooks
Connect Otis to your existing tools. Receive real-time notifications when Otis generates a draft, extracts data, or summarises an email.
How webhooks work
When Otis processes a forwarded email, it can send an HTTP POST request to a URL you configure. This lets you trigger automations in tools like Zapier, Make, Jira, Slack, or your own backend.
Webhooks are configured in your account settings. You provide a URL, and Otis sends a JSON payload each time an event fires.
Webhook events
Otis fires webhooks for three event types, matching its three email addresses:
Example payload
All webhook payloads follow the same structure. Here is an example for draft.generated:
Verifying webhook signatures
Every webhook request includes a signature field and an X-Otis-Signature header. Both contain an HMAC-SHA256 hash of the payload body, signed with your webhook secret.
To verify:
- Retrieve your webhook secret from your account settings.
- Compute an HMAC-SHA256 hash of the raw request body using your secret.
- Compare the computed hash with the value in the
X-Otis-Signatureheader.
Always verify signatures before processing webhook data to ensure the request originated from Otis.
Connecting to automation platforms
Zapier
Use Zapier's "Webhooks by Zapier" trigger. Set it to "Catch Hook", copy the Zapier URL, and paste it into your Otis webhook settings. Zapier will receive the JSON payload and you can map fields to any of Zapier's 6,000+ app connections.
Make (formerly Integromat)
Create a new scenario with the "Webhooks" module as the trigger. Select "Custom webhook", copy the URL, and add it to your Otis settings. Make will parse the JSON automatically.
Custom endpoint
Point the webhook to any HTTPS endpoint that accepts POST requests with a JSON body. Your endpoint should return a 200 status within 10 seconds. Otis will retry failed deliveries up to 3 times with exponential backoff.
Example workflows
Rate limits and reliability
Webhooks are dispatched within seconds of Otis completing a task. If your endpoint is unavailable, Otis retries up to 3 times: after 30 seconds, 5 minutes, and 30 minutes.
Each webhook delivery includes a unique X-Otis-Delivery-Id header. Use this to deduplicate if your endpoint receives the same event more than once.
Ready to connect Otis to your workflow?
Get Started Free