# Webhook Events Reference

This page lists every event you can subscribe to. Events are grouped by the entity that changed. The `data` field in each delivery payload contains the corresponding API resource representation for that entity.

For the delivery envelope format and signature verification, see [Webhooks Overview](/developer/webhooks/overview.md).

## Event List[​](#event-list "Direct link to Event List")

### Audience Member[​](#audience-member "Direct link to Audience Member")

These events fire when an audience member record is created, updated, or deleted.

| Event                     | Trigger                                                                    | Payload `data`           |
| ------------------------- | -------------------------------------------------------------------------- | ------------------------ |
| `audience_member.created` | Fired when a new audience member is created.                               | `AudienceMemberResource` |
| `audience_member.updated` | Fired when an audience member is updated (excludes activity-only changes). | `AudienceMemberResource` |
| `audience_member.deleted` | Fired when an audience member is deleted.                                  | `AudienceMemberResource` |

note

`audience_member.updated` is **not** fired for activity-only changes such as `last_active_at` updates. It fires only when meaningful profile data changes.

### External Profile[​](#external-profile "Direct link to External Profile")

External profiles store data from third-party providers (such as a CRM or identity provider) attached to a member.

| Event                                      | Trigger                                              | Payload `data`                          |
| ------------------------------------------ | ---------------------------------------------------- | --------------------------------------- |
| `audience_member.external_profile.created` | Fired when an external profile is added to a member. | `AudienceMemberExternalProfileResource` |
| `audience_member.external_profile.updated` | Fired when an external profile is updated.           | `AudienceMemberExternalProfileResource` |
| `audience_member.external_profile.deleted` | Fired when an external profile is removed.           | `AudienceMemberExternalProfileResource` |

### Foreign Key[​](#foreign-key "Direct link to Foreign Key")

Foreign keys link an audience member to an identifier in an external system (for example, a CRM contact ID or a subscriber ID in your publishing platform).

| Event                                 | Trigger                                           | Payload `data`                     |
| ------------------------------------- | ------------------------------------------------- | ---------------------------------- |
| `audience_member.foreign_key.created` | Fired when a foreign key is attached to a member. | `AudienceMemberForeignKeyResource` |
| `audience_member.foreign_key.updated` | Fired when a foreign key is updated.              | `AudienceMemberForeignKeyResource` |
| `audience_member.foreign_key.deleted` | Fired when a foreign key is removed.              | `AudienceMemberForeignKeyResource` |

### Entitlement[​](#entitlement "Direct link to Entitlement")

Entitlement events fire when a member's access to a product changes.

| Event                 | Trigger                               | Payload `data`        |
| --------------------- | ------------------------------------- | --------------------- |
| `entitlement.created` | Fired when an entitlement is granted. | `EntitlementResource` |
| `entitlement.updated` | Fired when an entitlement is updated. | `EntitlementResource` |
| `entitlement.deleted` | Fired when an entitlement is deleted. | `EntitlementResource` |

### Purchase[​](#purchase "Direct link to Purchase")

Purchase events fire when a member's purchase is created or changes (for example, a refund). Purchases are not hard-deleted, so there is no `purchase.deleted` event.

| Event              | Trigger                                                   | Payload `data`            |
| ------------------ | --------------------------------------------------------- | ------------------------- |
| `purchase.created` | Fired when a purchase is created.                         | `PurchaseWebhookResource` |
| `purchase.updated` | Fired when a purchase is updated (for example, refunded). | `PurchaseWebhookResource` |

### Interaction[​](#interaction "Direct link to Interaction")

Interaction events fire when an interaction is created, updated, or deleted.

| Event                 | Trigger                               | Payload `data`               |
| --------------------- | ------------------------------------- | ---------------------------- |
| `interaction.created` | Fired when an interaction is created. | `InteractionWebhookResource` |
| `interaction.updated` | Fired when an interaction is updated. | `InteractionWebhookResource` |
| `interaction.deleted` | Fired when an interaction is deleted. | `InteractionWebhookResource` |

### Template[​](#template "Direct link to Template")

Template events fire when a template is created, updated, or deleted.

| Event              | Trigger                           | Payload `data`            |
| ------------------ | --------------------------------- | ------------------------- |
| `template.created` | Fired when a template is created. | `TemplateWebhookResource` |
| `template.updated` | Fired when a template is updated. | `TemplateWebhookResource` |
| `template.deleted` | Fired when a template is deleted. | `TemplateWebhookResource` |

### System[​](#system "Direct link to System")

| Event  | Trigger                                              | Payload `data`                                             |
| ------ | ---------------------------------------------------- | ---------------------------------------------------------- |
| `ping` | A test event sent when an active webhook is created. | The webhook's `id`, subscribed `events`, and `created_at`. |

The `ping` event is not subscribable — it is sent automatically and cannot be selected when configuring event subscriptions.

## Example Payload[​](#example-payload "Direct link to Example Payload")

The following is a complete delivery envelope for an `entitlement.created` event:

```json
{
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "event": "entitlement.created",
    "created_at": "2024-10-15T14:32:00Z",
    "data": {
        "id": "01j9z1a0000000000000000001",
        "type": "entitlement",
        "attributes": {
            "product_id": "01j8x0b0000000000000000001",
            "product_name": "Digital Subscription",
            "audience_member_id": "01j7w0c0000000000000000001",
            "starts_at": "2024-10-15T00:00:00Z",
            "expires_at": null,
            "status": "active",
            "source": "manual",
            "created_at": "2024-10-15T14:32:00Z",
            "updated_at": "2024-10-15T14:32:00Z"
        }
    }
}

```

## Adding New Events[​](#adding-new-events "Direct link to Adding New Events")

The subscribable event list is generated from the `WebhookEventType` registry in the platform. New event types registered there become immediately available in the webhook subscription UI and in this reference.

## Related[​](#related "Direct link to Related")

* [Webhooks Overview](/developer/webhooks/overview.md) — creating webhooks, delivery envelope, signature verification, and retries
* [Entitlements](/product/entitlements.md) — how entitlements and products work
* [Audience Members](/product/audience.md) — member profiles and data
