Before you begin
You need workspace admin access and a public HTTPS URL that accepts JSONPOST requests. Your application or a workflow tool can provide this URL. Mermail does not create the receiving workflow for you.
Webhooks are available to all workspaces. Existing API-key and MCP access rules apply when you manage them programmatically. There is no additional webhook delivery fee.
Create a webhook
1
Open Webhooks
Select your workspace, open Settings → Webhooks, and click Add webhook.
2
Enter the receiving URL
Paste your destination into Webhook URL. Use a public HTTPS address without embedded login credentials or a URL fragment. Local and private network addresses are not supported. Use the final receiving URL; Mermail does not follow redirects.
3
Choose events and mailboxes
Email received is selected by default. Choose at least one event from the table below.Select individual mailboxes or All workspace inboxes, including future inboxes. All inboxes also includes mailboxes created later in this workspace. New subscriptions receive future events; they do not replay earlier mail.
4
Save and test
If your destination needs an Authorization header, enter it under Advanced. Click Save webhook.Save the signing value shown after creation in your destination’s secure configuration. It is shown once. Then click Send test and open Delivery history to check the result.
A test uses synthetic data and does not send a real email. Allow approximately 30 seconds for dispatch, plus time for the history to refresh. A successful delivery means your URL accepted the request; check your receiving workflow separately to confirm its actions completed.
Choose your events
Creating a draft or scheduling a message does not emit Email sent. Delivery outcomes are reported when confirmation is available and can apply to an individual recipient. Mermail account and billing notifications are excluded.
Manage deliveries
Open Delivery history for an endpoint to see the event, status, timestamp, attempt count, HTTP status, and a safe failure explanation. The history does not expose your destination’s response body.- Edit: Change the URL, events, mailboxes, or optional Authorization header. The existing URL is represented by its host; leave the replacement URL blank to keep it.
- Pause: Stop future delivery and cancel pending attempts. A request already in progress may finish.
- Resume: Receive future events again. Paused events are not replayed.
- Retry: Retry a failed, unexpired delivery for the current endpoint settings. It uses the original event ID and payload.
- Delete: Remove the endpoint and cancel pending attempts. A request already in progress may finish.
Secure your destination
Mermail signs every delivery. Configure your receiver to verify the signature before trusting the event, reject stale timestamps, and deduplicate event IDs. See Webhook payloads and verification for the public contract. If you use an Authorization header, its value is write-only. Replace it under Advanced, or select Remove existing Authorization header when editing. To replace the signing value, open the endpoint’s Advanced section and choose Rotate signing secret. Save the replacement immediately and update your receiver. Rotation cancels pending attempts under the previous configuration. Requests already in progress may still use the previous signature.Limits and retries
Any
2xx response acknowledges delivery. Connection failures, timeouts, 408, 429, and 5xx responses retry with increasing delays and jitter. Other responses, including redirects, fail without automatic retry. Rate-limited deliveries wait for capacity within their retry window.
Events can arrive more than once or out of order. Use event_id to deduplicate and occurred_at to understand when the event happened.
Troubleshoot
For developer setup and agent management, see Webhook payloads and verification and MCP.