Webhooks
Message Received
message.receivedFires whenever a fan sends a direct message to the creator. This is the main hook to wire up for autonomous chat agents.
When it fires
Delivered the moment a fan's message lands in the creator's inbox — including PPV unlock requests and replies to mass messages.
Payload
Wrapped in the standard webhook envelope (event, data, timestamp):
json · example delivery
| 1 | { |
| 2 | "event": "message.received", |
| 3 | "data": { |
| 4 | "conversationId": "conv_xyz", |
| 5 | "message": { |
| 6 | "id": "msg_003", |
| 7 | "text": "Hey there!", |
| 8 | "media": [], |
| 9 | "from": { |
| 10 | "id": "usr_fan123", |
| 11 | "handle": "fan123" |
| 12 | }, |
| 13 | "createdAt": "2026-04-28T12:10:00Z" |
| 14 | } |
| 15 | }, |
| 16 | "timestamp": "2026-04-28T12:10:01Z" |
| 17 | } |
data fields
| Field | Type | Description |
|---|---|---|
conversationId | string | ID of the conversation the message was sent in. |
message.id | string | Unique ID of the new message. |
message.text | string | null | Plain-text body. Null when the message contains only media. |
message.media | Media[] | Array of attached media (images, audio, video). |
message.from.id | string | ID of the fan who sent the message. |
message.from.handle | string | Public handle of the sender. |
message.createdAt | string (ISO 8601) | Timestamp when the fan sent the message. |