Skip to main content
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

{
  "messageUuid": "2f7c5e8a-6d36-4e3a-98d9-9f1b3b0a1a10",
  "chatUuid": "5939ae62-3eb5-4433-954f-f78c7b4282f3",
  "creatorUuid": "f4b2a184-2b4a-4a04-9b70-3c0e0a1caa12",
  "sentByUserId": "f4b2a184-2b4a-4a04-9b70-3c0e0a1caa12",
  "sentAt": "2026-05-20T08:41:02.114Z",
  "type": "SINGLE_RECIPIENT"
}