> ## Documentation Index
> Fetch the complete documentation index at: https://docs.custral.com/llms.txt
> Use this file to discover all available pages before exploring further.

# email.unsubscribed

> A recipient used the unsubscribe link in mail a workflow or sequence sent.

Fires when somebody uses the unsubscribe link at the foot of an email sent by a
workflow or a sequence. The address is added to the workspace's
[suppressions](/comms/suppressions/overview) as the event fires.

## Payload

```json theme={null}
{
  "id": "whd_7Tc4nL9qS",
  "event": "email.unsubscribed",
  "createdAt": "2026-09-11T11:48:02.917Z",
  "data": {
    "email": "ada@ravennafoods.com",
    "reason": "unsubscribed",
    "recordId": "rec_3Ab9xK2mQ7"
  }
}
```

<ResponseField name="email" type="string" required>
  The address that unsubscribed. Always present. An unsubscribe is about an
  address rather than one message, so this is the identifier and there is no
  message id.
</ResponseField>

<ResponseField name="reason" type="string">
  Always `unsubscribed` today.
</ResponseField>

<ResponseField name="recordId" type="string">
  The record with this email address, when the workspace has one. **Omitted**
  when no record has the address.
</ResponseField>

## Worth knowing

* **No send is named.** The payload does not say which email or which sequence
  the link was in.
* **Unsubscribing again fires again.** Every use of the link delivers an event,
  so deduplicate on `email`.
* **Automated link checks can trigger it.** Opening the link is enough to
  unsubscribe, so an email security gateway that follows every link in a message
  can fire this without the recipient doing anything.

## Example

```ts theme={null}
custral.on("email.unsubscribed", async (event) => {
  const {email} = event.data;

  await newsletter.suppress({email: String(email), source: "custral"});
});
```


## Related topics

- [Email](/dev/webhooks/events/email.md)
- [Webhooks](/dev/webhooks/overview.md)
- [Event catalog](/dev/webhooks/events/overview.md)
- [Suppressions](/comms/suppressions/overview.md)
