Webhook Events

Complete list of webhook event types and their payloads.

Event Types

EventDescription
email.sentEmail accepted by recipient's mail server
email.deliveredEmail confirmed delivered to inbox
email.bouncedEmail bounced (hard or soft)
email.complainedRecipient marked email as spam
email.openedEmail was opened (if tracking enabled)
email.clickedLink in email was clicked (if tracking enabled)
email.delivery_delayedEmail delivery was delayed
email.suppressedEmail was suppressed (recipient on suppression list)
email.scheduledEmail was scheduled for future delivery
email.receivedInbound email was received
contact.createdNew contact was added to an audience
contact.updatedContact information was updated
contact.deletedContact was removed from an audience
domain.createdNew domain was added
domain.updatedDomain settings were changed
domain.deletedDomain was removed
domain.verifiedDomain verification completed

email.sent

Fired when the email is accepted by the recipient's mail server.

{
  "id": "evt_abc123",
  "type": "email.sent",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "tags": ["welcome"]
  }
}

email.delivered

Fired when delivery is confirmed. Not all mail servers report this.

{
  "id": "evt_def456",
  "type": "email.delivered",
  "timestamp": "2024-01-15T10:30:02Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "deliveredAt": "2024-01-15T10:30:02Z"
  }
}

email.bounced

Fired when an email bounces. Includes bounce type and reason.

{
  "id": "evt_ghi789",
  "type": "email.bounced",
  "timestamp": "2024-01-15T10:30:01Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "bounceType": "hard",
    "bounceReason": "User unknown",
    "diagnosticCode": "550 5.1.1 User not found"
  }
}

Bounce Types

  • hard - Permanent failure (invalid address, domain doesn't exist)
  • soft - Temporary failure (mailbox full, server unavailable)

email.complained

Fired when a recipient marks your email as spam.

{
  "id": "evt_jkl012",
  "type": "email.complained",
  "timestamp": "2024-01-15T11:45:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "complainedAt": "2024-01-15T11:45:00Z"
  }
}
Important: High complaint rates can affect your sending reputation. Remove recipients who complain from your lists.

email.opened

Fired when an email is opened (requires open tracking to be enabled).

{
  "id": "evt_mno345",
  "type": "email.opened",
  "timestamp": "2024-01-15T12:00:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "openedAt": "2024-01-15T12:00:00Z",
    "userAgent": "Mozilla/5.0...",
    "ipAddress": "203.0.113.1"
  }
}

email.clicked

Fired when a link in the email is clicked (requires click tracking).

{
  "id": "evt_pqr678",
  "type": "email.clicked",
  "timestamp": "2024-01-15T12:05:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "clickedAt": "2024-01-15T12:05:00Z",
    "link": "https://example.com/offer",
    "userAgent": "Mozilla/5.0...",
    "ipAddress": "203.0.113.1"
  }
}

email.delivery_delayed

Fired when email delivery is temporarily delayed due to recipient server issues.

{
  "id": "evt_stu901",
  "type": "email.delivery_delayed",
  "timestamp": "2024-01-15T10:35:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "delayedAt": "2024-01-15T10:35:00Z",
    "reason": "Recipient server temporarily unavailable",
    "retryCount": 1,
    "nextRetryAt": "2024-01-15T10:50:00Z"
  }
}

email.suppressed

Fired when an email is not sent because the recipient is on your suppression list.

{
  "id": "evt_vwx234",
  "type": "email.suppressed",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "suppressedAt": "2024-01-15T10:30:00Z",
    "reason": "BOUNCE",
    "originalEventAt": "2024-01-10T08:00:00Z"
  }
}

Suppression Reasons

  • BOUNCE - Previous email to this address bounced
  • COMPLAINT - Recipient previously marked email as spam
  • MANUAL - Manually added to suppression list

email.scheduled

Fired when an email is scheduled for future delivery.

{
  "id": "evt_yza567",
  "type": "email.scheduled",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "emailId": "clx1abc123def456",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Hello!",
    "scheduledFor": "2024-01-16T09:00:00Z",
    "timezone": "America/New_York"
  }
}

email.received

Fired when an inbound email is received on your configured receiving address.

{
  "id": "evt_bcd890",
  "type": "email.received",
  "timestamp": "2024-01-15T14:20:00Z",
  "data": {
    "emailId": "clx1xyz789abc123",
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Re: Your inquiry",
    "receivedAt": "2024-01-15T14:20:00Z",
    "textBody": "Thank you for reaching out...",
    "htmlBody": "<p>Thank you for reaching out...</p>",
    "attachments": [
      {
        "filename": "document.pdf",
        "contentType": "application/pdf",
        "size": 102400
      }
    ]
  }
}

contact.created

Fired when a new contact is added to an audience.

{
  "id": "evt_efg123",
  "type": "contact.created",
  "timestamp": "2024-01-15T09:00:00Z",
  "data": {
    "contactId": "clx1contact123",
    "audienceId": "clx1audience456",
    "audienceName": "Newsletter Subscribers",
    "email": "[email protected]",
    "firstName": "John",
    "lastName": "Doe",
    "createdAt": "2024-01-15T09:00:00Z",
    "source": "api",
    "customFields": {
      "company": "Acme Inc",
      "plan": "pro"
    }
  }
}

contact.updated

Fired when contact information is updated.

{
  "id": "evt_hij456",
  "type": "contact.updated",
  "timestamp": "2024-01-15T11:30:00Z",
  "data": {
    "contactId": "clx1contact123",
    "audienceId": "clx1audience456",
    "audienceName": "Newsletter Subscribers",
    "email": "[email protected]",
    "updatedAt": "2024-01-15T11:30:00Z",
    "changes": {
      "firstName": {
        "old": "John",
        "new": "Jonathan"
      },
      "customFields.plan": {
        "old": "pro",
        "new": "enterprise"
      }
    }
  }
}

contact.deleted

Fired when a contact is removed from an audience.

{
  "id": "evt_klm789",
  "type": "contact.deleted",
  "timestamp": "2024-01-15T15:00:00Z",
  "data": {
    "contactId": "clx1contact123",
    "audienceId": "clx1audience456",
    "audienceName": "Newsletter Subscribers",
    "email": "[email protected]",
    "deletedAt": "2024-01-15T15:00:00Z",
    "reason": "unsubscribed"
  }
}

Deletion Reasons

  • unsubscribed - Contact unsubscribed from the audience
  • manual - Manually deleted via dashboard or API
  • bounced - Removed due to hard bounce
  • complained - Removed due to spam complaint

domain.created

Fired when a new sending domain is added to your account.

{
  "id": "evt_nop012",
  "type": "domain.created",
  "timestamp": "2024-01-15T08:00:00Z",
  "data": {
    "domainId": "clx1domain123",
    "domain": "mail.yourdomain.com",
    "createdAt": "2024-01-15T08:00:00Z",
    "status": "pending",
    "dnsRecords": [
      {
        "type": "TXT",
        "name": "_dmarc.mail.yourdomain.com",
        "value": "v=DMARC1; p=none"
      }
    ]
  }
}

domain.updated

Fired when domain settings are changed.

{
  "id": "evt_qrs345",
  "type": "domain.updated",
  "timestamp": "2024-01-15T10:00:00Z",
  "data": {
    "domainId": "clx1domain123",
    "domain": "mail.yourdomain.com",
    "updatedAt": "2024-01-15T10:00:00Z",
    "changes": {
      "openTracking": {
        "old": false,
        "new": true
      },
      "clickTracking": {
        "old": false,
        "new": true
      }
    }
  }
}

domain.deleted

Fired when a domain is removed from your account.

{
  "id": "evt_tuv678",
  "type": "domain.deleted",
  "timestamp": "2024-01-15T16:00:00Z",
  "data": {
    "domainId": "clx1domain123",
    "domain": "old.yourdomain.com",
    "deletedAt": "2024-01-15T16:00:00Z"
  }
}
Warning: Deleting a domain will immediately stop all email sending from that domain.

domain.verified

Fired when domain DNS verification is completed successfully.

{
  "id": "evt_wxy901",
  "type": "domain.verified",
  "timestamp": "2024-01-15T12:00:00Z",
  "data": {
    "domainId": "clx1domain123",
    "domain": "mail.yourdomain.com",
    "verifiedAt": "2024-01-15T12:00:00Z",
    "dkimVerified": true,
    "spfVerified": true,
    "dmarcVerified": true
  }
}
Ready to send: Once verified, you can start sending emails from this domain immediately.

Related

Webhook Events - GetMailer Docs | GetMailer