Webhook payload reference

This page is for developers building something to receive EcoSend's webhooks. It lists every field EcoSend sends, with an example of each event.

New to webhooks in EcoSend? Start with sending activity to other tools with webhooks to set one up.

Each request contains a JSON payload describing a single event.

Event types

The type field tells you which trigger fired.

Triggertype
Email sentemail-sent
Email deliveredemail-delivered
Email openedemail-opened
Email link clickedlink-clicked
Email bouncedemail-bounced
Email marked as spamemail-complained

Smart Group triggers send a different payload. To see exactly what they contain, send one to a request inspector first, as described in things to know.

Common fields

Every email activity payload includes these fields.

FieldDescription
versionThe version of the payload format, currently 0.0.1. This is unlikely to change, but if we ever change the structure we’ll update this.
typeThe event that happened. See event types.
timestampWhen the event happened, as a Unix timestamp in milliseconds.
person_idThe contact the event relates to.
email.idA unique ID for the individual email. Every event for the same email shares this ID, so you can use it to group them.
email.fromThe sender name and address the email was sent from.
email.toThe contact's email address.
email.subjectThe subject line of the email.
source.typeWhat sent the email: broadcast, automated-message, or sequence.
source.idThe ID of the Broadcast, automated message, or sequence that sent the email. Useful for tracing an event back to what sent it.
source.messageSequences only. The ID of the message within the sequence.

Some events include extra fields, which are described alongside their examples below.

Email sent

{ "version": "0.0.1", "type": "email-sent", "timestamp": 1791032473006, "person_id": "email:someone@example.com", "email": { "id": "010001a101dab4d9-7d91daab-33b0-4195-8a05-d5a8a52cae5a-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" }, "source": { "type": "broadcast", "id": "2b2cdcbc-7d6e-4c19-8c5a-d36095f0bbe5" } }

Email delivered

{ "version": "0.0.1", "type": "email-delivered", "timestamp": 1791032482986, "person_id": "email:someone@example.com", "source": { "type": "broadcast", "id": "6975c4e5-dac5-4693-b9cd-4e4ec2dd0783" }, "email": { "id": "010001a101dadab7-1fbb1491-4938-429a-b7e3-da8fb76c8477-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" } }

Email opened

{ "version": "0.0.1", "type": "email-opened", "timestamp": 1791032484326, "person_id": "email:someone@example.com", "source": { "type": "broadcast", "id": "6975c4e5-dac5-4693-b9cd-4e4ec2dd0783" }, "email": { "id": "010001a101dadab7-1fbb1491-4938-429a-b7e3-da8fb76c8477-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" } }

Includes url, the link the contact clicked.

{ "version": "0.0.1", "type": "link-clicked", "timestamp": 1791032654624, "person_id": "email:someone@example.com", "url": "https://example.com", "source": { "type": "broadcast", "id": "2b2cdcbc-7d6e-4c19-8c5a-d36095f0bbe5" }, "email": { "id": "010001a101dab4d9-7d91daab-33b0-4195-8a05-d5a8a52cae5a-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" } }

Email bounced

Includes a bounce object:

  • bounce.type: the kind of bounce, such as permanent. See understanding bounces for the difference between bounce types.
  • bounce.reason: the response from the contact's mail server explaining why the email bounced.
{ "version": "0.0.1", "type": "email-bounced", "timestamp": 1791032473548, "person_id": "email:someone@example.com", "bounce": { "type": "permanent", "reason": "550 5.1.1 As requested: user unknown <someone@example.com>" }, "source": { "type": "broadcast", "id": "2b2cdcbc-7d6e-4c19-8c5a-d36095f0bbe5" }, "email": { "id": "010001a101dab4d9-7d91daab-33b0-4195-8a05-d5a8a52cae5a-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" } }

Email marked as spam

Includes a complaint object, where complaint.type describes the complaint, such as abuse.

{ "version": "0.0.1", "type": "email-complained", "timestamp": 1791032483316, "person_id": "email:someone@example.com", "complaint": { "type": "abuse" }, "source": { "type": "broadcast", "id": "6975c4e5-dac5-4693-b9cd-4e4ec2dd0783" }, "email": { "id": "010001a101dadab7-1fbb1491-4938-429a-b7e3-da8fb76c8477-000000@email.amazonses.com", "from": "Example Sender <sender@example.com>", "to": "someone@example.com", "subject": "Example Subject Line" } }

Need a hand?

If you have any questions about setting up webhooks, or want ideas for your own setup, get in touch and we'll be happy to help.

Last updated November 2026

The email platform that funds nature restoration

Beautiful emails, human support, and every campaign contributes to verified climate projects — so you can focus on growing.

Free foreverNo credit card requiredCancel anytime