Webhooks for Email Events

Prev Next

If you are currently using this webhook, please migrate to V2 by January 30, 2026, to ensure uninterrupted access, enhanced performance, and continued support.

As Insider processes your email, webhook events will send real-time information about any events that occur to a URL of your choice via HTTPS POST. 

You can use this real-time data to:

  • React to spam reports.
  • Track email opens and clicks in real time.
  • Identify bounced email addresses.
  • Create advanced analytics for your email program.
Your title goes here
Event type selection is only available in Event Stream. You can select the events they want to get on your end in real time. You can also get all events and attributes via Data Stream. Email webhook can send the default email events only.

Get Started

To set up webhooks for email events:

1. Log in to InOne.
2. Click the Inone Settings located under your username.
3. Select the Email Settings tab.
4. Click the Webhook for Email Events button to enable webhooks. Add your callback URL. For further information, refer to Secret Key.
5. If you want to use a secret key, add it now.
6. Save changes.

Please note that Secret key is an optional property that users can use while sending an email to verify the webhook events. The key used in the payload is encrypted with the webhook event using SHA1 algorithm. The computed HMAC is sent back with the webhook events in X-INS-AUTH header. Users can verify the webhook events by decrypting the value returned under X-INS-AUTH.

Below is an example with the header.

{
  "campaign_id": 0,
  "timestamp": 0,
  "event": "",
  "email": "",
  "msg-id": "",
  "event_type": "",
  "link_clicked": "",
  "reason": "",
  "campaign_name": "",
  "journey_name": "",
  "sender_domain": "",
  "personalization_name": "",
  "variation_id": 0,
  "ins_unsub_id": 0,
  "unsub_group_name": "",
  "iid": "",
  "ip": "",
  "user_agent": "",
  "url_offset": null,
  "subject": ""
}
your title goes here
X-INS-AUTH header gets the result of encrypting the event body with the provided secret key as its value.
Your title goes here
The special characters are URL encoded. For this reason, you need to decode the content with this in mind. Otherwise, you might get inconsistent results if you decode it before the HASH comparison.
Your title goes here
The content is encoded with UTF-8 on our end. Therefore, we suggest using the same encoding when reading the data stream to prevent interoperability issues. For example, reading with UTF-16 or Unicode might create problems with Unicode characters. The programming language we are using implements JSON encoding as covered in sections 8.1 and 8.2 of the RFC standard.

Request

You will receive an HTTPS POST containing a JSON array. The events will be pushed one after another as they are received from the server.

Webhook Events

Webhook events allow you to set up a notify URL on your callback server for reports. Unlike the API method, where reports are pulled and received in the response, webhook events send push real-time reports to the notify URL you specify. Below are examples of webhook email events. Because events for Email and Architect journeys require different payloads, each example has two sections: Newsletter and Architect.

The following are some of the most essential events:

  • Processed
  • Delivered
  • Blocked
  • Bounced
  • Email Open
  • Email Click
  • Unsubscribe
  • Group Unsubscribe
  • Spam Complaint
  • Deferred

Processed

A processed event is triggered when a message has been received and is ready to be delivered to the recipient.

Email

{
  "timestamp": 1614616711,
  "event": "processed",
  "email": "sample@mail.com",
  "campaign_name": "My campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 458,
  "subject": "My email subject",
  "iid": "5032a891-3a72-4dd8-be76-64c6a3e5a2ed"
}

Architect

{
  "timestamp": 1614674358,
  "event": "processed",
  "email": "sample@mail.com",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "variation_id": 406,
  "subject": "My email subject",
  "iid": "5032a891-3a72-4dd8-be76-64c6a3e5a2ed"
}

Delivered

A delivered event is triggered when a message is delivered to the recipient.

Email

{
  "timestamp": 1614617139,
  "event": "delivered",
  "email": "sample@mail.com",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 470,
  "subject": "My email subject",
  "iid": "6f5b2c74-12b6-44b0-b56e-1ade1aa13510",
  "ip": "11.22.333.444"
}

Architect

{
  "timestamp": 1614674360,
  "event": "delivered",
  "email": "sample@mail.com",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "variation_id": 406,
  "subject": "My email subject",
  "iid": "6f5b2c74-12b6-44b0-b56e-1ade1aa13510",
  "ip": "111.22.333.444"
}

Blocked

A blocked event is triggered when a soft bounce (blocked) is received from the receiving server for a specific email ID. The reason for the soft bounce will also return in the payload.

Email

{
  "email": "sample@mail.com",
  "event": "bounce",
  "event_type": "blocked",
  "reason": "unable to get mx info: lookup <nil>: unrecognized address",
  "campaign_name": "My Email",
  "sender_domain": "@sender.domain",
  "timestamp": 1563890443,
  "iid": "80147815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Architect

{
  "email": "sample@mail.com",
  "event": "bounce",
  "event_type": "blocked",
  "reason": "unable to get mx info: lookup <nil>: unrecognized address",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "timestamp": 1563890443,
  "iid": "80147815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Bounced

A bounced event is triggered when a hard bounce is received from the receiving server for a specific email ID. The reason for the bounce will also return in the payload.

Email

{
  "email": "sample@mail.com",
  "event": "bounce",
  "reason": "unable to get mx info: lookup <nil>: unrecognized address",
  "campaign_name": "My Email",
  "sender_domain": "@sender.domain",
  "timestamp": 1563890443,
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Architect

{
  "email": "sample@mail.com",
  "event": "bounce",
  "reason": "unable to get mx info: lookup <nil>: unrecognized address",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "timestamp": 1563890443,
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Email Open

An open event is triggered when a recipient opens an email.

Email

{
  "timestamp": 1614617141,
  "event": "open",
  "email": "sample@mail.com",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 4868,
  "subject": "My email subject",
  "iid": "5055a891-3a72-4dd8-be76-64c3a3e5a2ed",
  "ip": "111.22.333.444",
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 Lightning/68.10.0"
}

Architect

{
  "timestamp": 1614674362,
  "event": "open",
  "email": "sample@mail.com",
  "journey_name": "My Journey",
  "personalization_name": "My Journey Email 1",
  "sender_domain": "@sender.domain",
  "variation_id": 4906,
  "subject": "My email subject",
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "ip": "11.222.33.44",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246 Mozilla/5.0"
}

Email Click

A link-click event is triggered when a recipient clicks a link in the email. The clicked link will also be sent with the webhook event.

Email

{
  "timestamp": 1614617637,
  "event": "click",
  "email": "sample@mail.com",
  "link_clicked": "https://mywebsite.com/link",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 4872,
  "subject": "My email subject",
  "iid": "4331e457-21b4-4783-961a-71f24615a57a",
  "ip": "111.222.333.444",
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36",
  "url_offset": {
    "index": 0,
    "type": "html"
  }
}

Architect

{
  "timestamp": 1614678551,
  "event": "click",
  "email": "sample@mail.com",
  "link_clicked": "https://mywebsite.com/link",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "variation_id": 4906,
  "subject": "My email subject",
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "ip": "11.22.33.44",
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36",
  "url_offset": {
    "index": 0,
    "type": "html"
  }
}

Unsubscribe

An unsubscribe webhook event is triggered when a recipient clicks the unsubscribe link in an email campaign.

Email

{
  "timestamp": 1614617242,
  "event": "unsubscribe",
  "email": "sample@mail.com",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 4870,
  "subject": "My email subject",
  "iid": "8bbf825f-9c19-425a-8144-db6dc19f91ca"
}

Architect

{
  "email": "sample@mail.com",
  "event": "unsubscribe",
  "reason": "Unsubscribed Address",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "timestamp": 1562591800,
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Group Unsubscribe

A group unsubscribe webhook event is triggered when a recipient clicks the unsubscribe link for a specific unsubscribe group.

Email

{
  "timestamp": 1603469700,
  "event": "group_unsubscribe",
  "email": "sample@mail.com",
  "msg-id": "",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 22,
  "subject": "My email subject",
  "iid": "8bbf825f-9c29-425a-9144-db6dc19f91ca",
  "ins_unsub_id": "group id"
}

Spam Complaint

A spam-complaint event is triggered when a recipient marks an email as spam.

Email

{
  "email": "sample@mail.com",
  "event": "spam_complaint",
  "campaign_name": "My Email",
  "sender_domain": "@sender.domain",
  "timestamp": 1564224981,
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Architect

{
  "email": "sample@mail.com",
  "event": "spam_complaint",
  "journey_name": "My Journey",
  "sender_domain": "@sender.domain",
  "personalization_name": "My Journey Email 1",
  "timestamp": 1564224981,
  "iid": "80257815-d6c1-459d-9edb-2f3456d4179b",
  "variation_id": 1234,
  "subject": "My email subject"
}

Deferred

A deferred event occurs when a server rejects the message temporarily.

Email

{
  "timestamp": 1603628469,
  "event": "deferred",
  "email": "sample@mail.com",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 211,
  "subject": "My email subject",
  "iid": "8bbf815f-9c19-427a-9144-db3dc18f91ca"
}

 Architect

{
  "timestamp": 1603628469,
  "event": "deferred",
  "email": "sample@mail.com",
  "campaign_name": "My Campaign",
  "sender_domain": "@sender.domain",
  "variation_id": 211,
  "subject": "My email subject",
  "journey_name": "My Journey",
  "personalization_name": "My Journey Email 1",
  "iid": "8bbf825f-9c19-426a-9144-db6dc18f11ca"
}