Guide
Inbound email webhook tutorial
Learn how to receive email as a webhook, parse the payload into JSON, and wire it up to your application in about five minutes.
1. Create a bridge
Sign up and create your first bridge. You'll get a unique inbound email address that looks like abc123@webhook.inboxbridge.io. Any email sent to this address will be parsed and forwarded to your webhook URL.
2. Configure your webhook endpoint
Point the bridge at any HTTPS endpoint that accepts POST requests. Inbox Bridge sends a JSON payload with the parsed message.
{
"from": "sender@example.com",
"to": "abc123@webhook.inboxbridge.io",
"subject": "Hello",
"text": "Plain text body...",
"html": "<p>HTML body...</p>",
"headers": { "Message-ID": "..." },
"attachments": [
{ "filename": "report.pdf", "contentType": "application/pdf", "size": 12345 }
]
}3. Handle the payload
In your handler, read the JSON body and do whatever your app needs — create a ticket, file a lead, store an attachment. Return a 2xx status to acknowledge delivery.
app.post('/inbound', async (req, res) => {
const { from, subject, text, attachments } = req.body
await db.tickets.create({ from, subject, body: text })
res.sendStatus(200)
})4. Retries and replay
If your endpoint returns a non-2xx response, Inbox Bridge retries with exponential backoff according to your plan's retry limit. You can also manually replay any delivery from the bridge detail page.
5. Test your integration
Send a test email to your bridge address from any email client. Open the bridge's delivery log to see the request URL, response code, duration, and raw payload. Hit replay to test error paths.
Related
- Email to webhook overview — what the service does and what payloads look like.
- CloudMailin alternative — feature comparison if you're evaluating providers.