Webhooks

Message Received

message.received

Fires 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

FieldTypeDescription
conversationIdstringID of the conversation the message was sent in.
message.idstringUnique ID of the new message.
message.textstring | nullPlain-text body. Null when the message contains only media.
message.mediaMedia[]Array of attached media (images, audio, video).
message.from.idstringID of the fan who sent the message.
message.from.handlestringPublic handle of the sender.
message.createdAtstring (ISO 8601)Timestamp when the fan sent the message.