message.sent is deprecated. Use creator.message.sent instead. This event continues to fire during the migration window; new integrations should use the creator.* event.
When this fires
Triggered (message.sent) on every outbound creator → fan message, whatever its source: a message the creator types in the Fanvue UI, one an agency manager sends on their behalf, an automated/scheduled message, or an AI-generated reply or voice/image message.
This is the outbound counterpart to message.received. Together they let you keep a full, real-time mirror of a conversation without polling the chat tail.
message.sent requires the read:chat scope. Consent is checked against the creator who owns the conversation (the sending side), so the event is delivered to apps the creator, or their agency manager, has authorized.
Payload
messageUuid: Unique identifier for the message
chatUuid: UUID of the conversation. The conversation is addressed by the counterpart (fan) user UUID across the API, so this is the fan’s user UUID.
creatorUuid: UUID of the creator who owns the conversation
sentByUserId: UUID of the actual writer, the creator, the agency manager who sent on their behalf, or the creator’s automation/AI acting as them. Equals creatorUuid for self-sends.
sentAt: ISO 8601 time the message was sent
type: The message type. One of the platform message-type values, e.g. SINGLE_RECIPIENT (a normal direct message), BROADCAST (mass message), TIP, LOCKED_MESSAGE_UNLOCKED, VOICE_CALL, or one of the AUTOMATED_* / CHAT_TEXT_* automation types.
Example payload