---
source_url: https://www.pubnub.com/docs/integrations/event-forwarding/event-sources
title: Event sources
updated_at: 2026-09-30T07:20:08.000Z
---

# Event sources

## Documentation index

To discover more PubNub resources:

1. Fetch [PubNub's llms.txt](https://www.pubnub.com/llms-full.txt) for a list of available pages in Markdown format.
2. Identify relevant URLs from that index.
3. Fetch the target pages.

Do not assume a path exists, always check the index first.

An [event listener](https://www.pubnub.com/docs/integrations/event-forwarding/overview.md) watches one event source. This reference lists every event producer and event type available to a listener, grouped by source, and the underlying PubNub feature each event type reports on. For how to build a listener and attach a filter to one, see [Configure Events & Actions](https://www.pubnub.com/docs/integrations/event-forwarding/configure.md). For the JSON payload of each event type below, see [Events & Actions payloads](https://www.pubnub.com/docs/integrations/event-forwarding/payloads.md).

Choose a source when you create a listener:

* [Messages](#messages)
* [Users](#users)
* [Channels](#channels)
* [Mobile Push Notifications](#mobile-push-notifications)
* [Memberships](#memberships)

## Messages

| Event producer | Event type | Description |
| --- | --- | --- |
| `Pub/Sub` | `Message sent` | A message was [published](https://www.pubnub.com/docs/pub-sub/publish/overview.md) on a channel. Events & Actions doesn't fire for the internal publishes that [Presence](https://www.pubnub.com/docs/presence/overview.md) makes to a channel's [-pnpres companion channel](https://www.pubnub.com/docs/presence/overview.md#how-presence-delivers-its-data). |
| `Message Actions` | `Message action created` | A [message action](https://www.pubnub.com/docs/pub-sub/message-actions/overview.md) was added to a published message. |
| `Message Actions` | `Message action deleted` | A message action was removed from a published message. |
| `Files` | `File sent` | A [file](https://www.pubnub.com/docs/data-storage/files/overview.md) was sent to a channel. |

## Users

| Event producer | Event type | Description |
| --- | --- | --- |
| `Presence` | `User state changed in channel` | A user's state on a channel, tracked by [Presence](https://www.pubnub.com/docs/presence/overview.md), changed. |
| `CRUD` | `User created` | [User metadata](https://www.pubnub.com/docs/data-storage/metadata/overview.md) was set for a User ID that had none. |
| `CRUD` | `User updated` | Existing user metadata was changed. |
| `CRUD` | `User deleted` | User metadata was removed. |

## Channels

| Event producer | Event type | Description |
| --- | --- | --- |
| `Presence` | `User started subscription to channel` | A user subscribed to a channel. |
| `Presence` | `User stopped subscription to channel` | A user unsubscribed from a channel. |
| `Presence` | `User timed out while subscribing to channel` | A user's subscription to a channel dropped without an unsubscribe call. |
| `Presence` | `First user subscribed to channel` | A channel's occupancy changed from `0` to `1`. |
| `Presence` | `Last user left channel` | A channel's occupancy changed from `1` to `0`. |
| `Presence` | `Interval occupancy counted` | A channel reported its occupancy and user deltas at its configured [Presence](https://www.pubnub.com/docs/presence/overview.md) interval. |
| `CRUD` | `Channel created` | [Channel metadata](https://www.pubnub.com/docs/data-storage/metadata/overview.md) was set for a channel that had none. |
| `CRUD` | `Channel updated` | Existing channel metadata was changed. |
| `CRUD` | `Channel deleted` | Channel metadata was removed. |

## Mobile Push Notifications

| Event producer | Event type | Description |
| --- | --- | --- |
| `Devices` | `Device removed` | A device token was removed from a channel's push registration. |
| `Devices` | `Push error` | A mobile push notification attempt failed. |

## Memberships

| Event producer | Event type | Description |
| --- | --- | --- |
| `CRUD` | `Membership created` | [Membership metadata](https://www.pubnub.com/docs/data-storage/metadata/overview.md) linking a user to a channel was set. |
| `CRUD` | `Membership updated` | Existing membership metadata was changed. |
| `CRUD` | `Membership deleted` | Membership metadata was removed. Membership data persists until explicitly deleted, so this event reports a durable state change rather than a transient signal. |

Identifier fields vary by event type and envelope. Message and File payloads use `senderId`; Message Actions and App Context payloads use `userId`; Presence payloads can contain `uuid` inside their presence data. These fields hold the User ID value where shown. See [Events & Actions payloads](https://www.pubnub.com/docs/integrations/event-forwarding/payloads.md#messages) for the exact JSON for every event type and envelope variant.

## Next steps

* [Events & Actions](https://www.pubnub.com/docs/integrations/event-forwarding/overview.md). Understand the event, listener, and action model before you build a listener.
* [Available actions](https://www.pubnub.com/docs/integrations/event-forwarding/available-actions.md). See every destination a listener can forward a matching event to.
* [Events & Actions payloads](https://www.pubnub.com/docs/integrations/event-forwarding/payloads.md). Look up the exact JSON for any event type in this reference.
* [Configure Events & Actions](https://www.pubnub.com/docs/integrations/event-forwarding/configure.md). Create a listener, pick a source and filter, and attach an action.

Last updated at: 2026-09-30T07:20:08.000Z
