Skip to documentation

Webhook events

email.clicked

A tracked link in the email was followed.

When it fires

email.clicked fires each time a tracked link in the email is requested, so it needs click tracking enabled on the sending domain. Repeated clicks produce repeated events. Link scanners can trigger clicks without a person following the link. Clicks are recorded for the email, not per recipient: data.to lists the email's recipients as sent.

Payload

json
{
  "type": "email.clicked",
  "created_at": "2026-09-29T10:00:00.000Z",
  "data": {
    "created_at": "2026-09-29T09:59:59.000Z",
    "email_id": "YOUR_EMAIL_ID",
    "message_id": "SES_MESSAGE_ID",
    "from": "hello@example.com",
    "to": ["you@example.net"],
    "subject": "Welcome",
    "tags": {},
    "click": {
      "link": "https://example.com/account",
      "ipAddress": "203.0.113.10",
      "userAgent": "Mozilla/5.0",
      "timestamp": "2026-09-29T10:00:00.000Z"
    }
  }
}

click.link is the destination URL as written in the email. click.ipAddress and click.userAgent come from the request that followed the link, cut at 128 and 1024 characters. click.timestamp is when Opensend recorded the click. The other data fields are the common email fields described in email.sent.

Handle the event

Verify the signature and deduplicate by svix-id.