# Messaging

Send, receive, and follow customer conversations across connected channels. For outbound
messaging, choose an inbox, optionally upload media, send a message, then poll the message
resource for delivery state when you are not using webhooks.

11 operations in the Messaging resource group.

## Operations

- [Send a message](/reference/messaging/send-message.md) - POST `/messages` - Starts or continues a customer conversation by recipient. Choose an inbox first with
`GET /inboxes`, optionally prepare WhatsApp template or media content, then send with a
recipient that points to an existing conversation, a known contact, or a channel recipient.
The response uses `202 Accepted`; poll `GET /messages/{id}` or the conversation messages
endpoint to follow delivery state without webhooks.
- [Get message](/reference/messaging/get-message.md) - GET `/messages/{id}` - Returns delivery state and conversation context for polling integrations.
- [Upload message media](/reference/messaging/create-media-upload.md) - POST `/media/uploads` - Uploads a file and returns a `mediaId` handle for later message sends.
Pass the handle as `content.media.mediaId` when sending media content.
Use the same Idempotency-Key when retrying the same upload request.
- [List conversations](/reference/messaging/list-conversations.md) - GET `/conversations` - Returns conversations visible to the authenticated user. Use this before polling
message history or assigning work to a teammate.
- [Get conversation](/reference/messaging/get-conversation.md) - GET `/conversations/{id}` - Returns the current conversation context, including the sendability window that tells
whether an agent or bot can reply right now.
- [List conversation messages](/reference/messaging/list-conversation-messages.md) - GET `/conversations/{id}/messages` - Returns the message history for a conversation, newest-page token included when more messages are available.
- [Send message in a conversation](/reference/messaging/send-conversation-message.md) - POST `/conversations/{id}/messages` - Sends a reply in an existing conversation. Pass `inboxId` when you want to choose the
sender explicitly; otherwise Flownally uses the latest open session for that conversation.
The response is returned as soon as the message is accepted, so poll the message resource
to follow delivery state when you are not using webhooks.
- [Add or remove a reaction on a message](/reference/messaging/send-reaction.md) - POST `/messages/{id}/reactions`
- [Reassign conversation](/reference/messaging/reassign-conversation.md) - POST `/conversations/{id}/reassign` - Reassigns a conversation to a different user
- [Mark conversation as read](/reference/messaging/mark-conversation-read.md) - POST `/conversations/{id}/read` - Marks messages up to the specified message as read for the authenticated user
- [Close conversation](/reference/messaging/close-conversation.md) - POST `/conversations/{id}/close` - Closes the active session for the conversation

## Schemas

- [ProblemDetails](/reference/schemas/problem-details.md) - object - RFC 9457 Problem Details response with a stable Flownally error code.
- [FieldViolation](/reference/schemas/field-violation.md) - object
- [Window](/reference/schemas/messaging-window.md) - object - Tells a client whether the current actor can send in this conversation right now.
- [CreateMessageRequest](/reference/schemas/create-message-request.md) - object - Body for sending the first message or continuing a conversation by recipient.
- [MessageRecipient](/reference/schemas/message-recipient.md) - object - Choose how Flownally should find the customer thread: an existing conversation,
a known contact, or a channel recipient for first-message sends.
- [ConversationRecipient](/reference/schemas/conversation-recipient.md) - object - Continue a known conversation.
- [ContactRecipient](/reference/schemas/contact-recipient.md) - object - Send to a contact identity. Pass channel when the contact has more than one route.
- [MessageRecipientChannel](/reference/schemas/message-recipient-channel.md) - enum
- [ChannelRecipient](/reference/schemas/channel-recipient.md) - object - Start a conversation with a channel-specific recipient identifier.
- [MessageContent](/reference/schemas/message-content.md) - object - Message body to send or display. Use `text` for plain replies, `media` for uploaded
or hosted files, `template` for WhatsApp-approved templates, and `richMessage` for
interactive channel content.
- [TextMessageContent](/reference/schemas/text-message-content.md) - object - Plain text message content.
- [TextContent](/reference/schemas/text-content.md) - object - Plain text body.
- [MessageContent](/reference/schemas/media-message-content.md) - object - Media message content. Upload with `/media/uploads` first, then pass the returned `mediaId`.
- [Content](/reference/schemas/media-content.md) - object - Media reference and optional presentation details. Use `mediaId` from `POST /media/uploads`
for Flownally-hosted media. Use `url` only for externally hosted media or an existing
Flownally media handle.
- [TemplateMessageContent](/reference/schemas/template-message-content.md) - object - WhatsApp template message content. The gateway maps this to the channel-specific send internally.
- [WhatsAppTemplateContent](/reference/schemas/whats-app-template-content.md) - object
- [TemplateComponent](/reference/schemas/template-component.md) - object
- [TemplateParameter](/reference/schemas/template-parameter.md) - object
- [Parameter](/reference/schemas/media-parameter.md) - object
- [CurrencyParameter](/reference/schemas/currency-parameter.md) - object
- [DateTimeParameter](/reference/schemas/date-time-parameter.md) - object
- [RichMessageContent](/reference/schemas/rich-message-content.md) - object - Structured rich message content for channels that support cards or actions.
- [RichMessage](/reference/schemas/rich-message.md) - object
- [Card](/reference/schemas/card.md) - object
- [CardHeader](/reference/schemas/card-header.md) - object
- [CardBody](/reference/schemas/card-body.md) - object
- [CardFooter](/reference/schemas/card-footer.md) - object
- [CardAction](/reference/schemas/card-action.md) - object
- [SendMessageResponse](/reference/schemas/send-message-response.md) - object - Returned after Flownally accepts a message for delivery.
- [Message](/reference/schemas/message.md) - object - Message record with content, delivery state, and channel delivery context.
- [Reaction](/reference/schemas/reaction.md) - object
- [Conversation](/reference/schemas/conversation.md) - object - A customer conversation as it appears in the shared Flownally inbox.
- [GetMessageResponse](/reference/schemas/get-message-response.md) - object - Message status and conversation context for polling integrations.
- [CreateMediaUploadRequest](/reference/schemas/create-media-upload-request.md) - object - Multipart upload body containing the media file to send later.
- [UploadResponse](/reference/schemas/media-upload-response.md) - object - Uploaded media reference for message content.
- [ListConversationsResponse](/reference/schemas/list-conversations-response.md) - object
- [ConversationDetail](/reference/schemas/conversation-detail.md) - object
- [ListMessagesResponse](/reference/schemas/list-messages-response.md) - object
- [SendMessageRequest](/reference/schemas/send-message-request.md) - object - Body for replying inside an existing conversation.
- [SendReactionRequest](/reference/schemas/send-reaction-request.md) - object
- [SendReactionResponse](/reference/schemas/send-reaction-response.md) - object
- [ReassignConversationRequest](/reference/schemas/reassign-conversation-request.md) - object
- [MarkConversationReadRequest](/reference/schemas/mark-conversation-read-request.md) - object
