HomeIntegrationsEmail Webhooks | Opens, Clicks, Bounces and More | ConvertNow

Email Webhooks | Opens, Clicks, Bounces and More | ConvertNow

Integration · Webhooks

Get signed webhooks for every email event

ConvertNow sends a signed message to your own web address when emails are sent, opened, clicked or bounced, and when contacts are created. Use it to update a CRM, post to chat or trigger your own code.

Start freeSee the steps

A ConvertNow webhook is a signed HTTPS message sent to your server whenever something happens in your account. You choose the events, and every message carries a signature so you can confirm it came from ConvertNow.

It is for developers wiring ConvertNow into other systems, and for no-code tools that can receive a webhook.

Step by step

Five steps, then your server gets every event.

1

Prepare a public HTTPS address

Your server needs a public HTTPS address that accepts POST requests. Plain HTTP and private addresses are rejected.

2

Add the endpoint

In ConvertNow, open the Email API page, go to its webhooks section, add your URL and choose the events you want. If you choose none, you get email.sent and email.failed.

3

Copy the secret

The secret is shown in full only when you save the endpoint.

4

Send a test

Use the test option on the endpoint to send a sample message and confirm your server receives it.

5

Verify the signature

Check the X-ConvertNow-Signature header before trusting a message, as shown below, then reply with any 2xx status.

import crypto from "crypto"; function isFromConvertNow(secret, rawBody, header) { const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex"); return header.length === expected.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected)); }

Events you can subscribe to

Every message is JSON with event, created_at and data, plus the headers X-ConvertNow-Event, X-ConvertNow-Delivery and X-ConvertNow-Signature.

EventSent when
email.sentAn email is sent to a recipient
email.failedAn email could not be sent
campaign.sentA campaign has finished sending
email.openedA recipient opens an email
email.clickedA recipient clicks a link
email.bouncedAn email bounces
email.unsubscribedA recipient unsubscribes
contact.createdA new contact is added

Your server has 10 seconds to answer

Failed deliveries are retried twice, after about 5 and 30 seconds

Use the delivery ID to ignore messages you already handled

Retries are held in memory, so do not treat webhooks as your only record

Frequently asked questions

How do I know a webhook really came from ConvertNow?

The signature header is sha256= followed by the hex HMAC-SHA256 of the raw request body, using your secret as the key. Verify it against the raw body, not a re-serialised copy.

What happens if my server is down?

ConvertNow retries twice more, after about 5 and 30 seconds. After that the delivery is dropped, so keep your own record for anything critical.

Can I use webhooks with Zapier or Make?

Yes. Any tool that gives you a public HTTPS catch-hook address can receive them.

Which events are on by default?

email.sent and email.failed. Choose others when you add the endpoint.

Connect ConvertNow to your own systems

Signed, retried and ready for your code.

Start free at convertnow.co