# Messaging best practices

**Learn how to integrate the Messaging API into your platform with recommended patterns for guest and property communication.**

## Retrieve new guest messages every 10 minutes

Poll the API regularly to retrieve new messages sent by guests.

**How to implement:**

1. Call [/messages/latest](/demand/docs/open-api/demand-api/messages/fetchlatestmessages) every 10 minutes, .
2. Extract new messages from the response.
3. Confirm receipt using [/messages/latest/confirm](/demand/docs/open-api/demand-api/messages/confirmmessagereceipt).


**Example request to confirm receipt:**


```json
{
  "messages": ["123e4567-e89b-12d3-a456-426614174000", "987f6543-e21d-65c4-b789-426614174999"]
}
```

Confirming messages prevents duplicate delivery.

## Display a full message history in your UI

Show all past messages in your customer support or partner dashboard.

**How to implement:**

1. Use [/messages/latest](/demand/docs/open-api/demand-api/messages/fetchlatestmessages) to get the latest messages.
2. Extract the `conversation`, `reservation`, and `accommodation` values.
3. Call [/messages/conversations](/demand/docs/open-api/demand-api/conversations/retrieve-conversation) with `accommodation` and either `reservation`, or `conversation`.


**Example request with conversation id:**


```json
{
  "conversation": "cc872746-77f2-5886-ba7c-17e0497241b5",
  "accommodation": 2098153
}
```

The response includes the full message history, including timestamps, senders, and attachments (if any).

This is useful for resolving disputes, tracking guest requests, or viewing communication logs.

Messages remain accessible for up to 1 year after checkout or cancellation.

## For guest platforms

These actions are typically used by platforms representing travellers.

### Send a message about a booking

Guests can send a message about their stay—e.g. to ask about parking or check-in time.

**How to implement:**

1. Call [/messages/send](/demand/docs/open-api/demand-api/messages/sendmessage) with the reservation, accommodation, and the message content.


Example:


```json
{
  "reservation": "4380765874",
  "accommodation": 2098153,
  "content": "Hi! What time is check-in? Is there parking available on-site?"
}
```

If the conversation doesn’t exist yet, it will be created automatically.

### Check for property replies

Fetch the latest responses from the property.

**How to implement:**

1. Periodically call [/messages/latest](/demand/docs/open-api/demand-api/messages/fetchlatestmessages) to see new replies.
2. Display messages in your guest-facing app.
3. Confirm receipt with [/messages/latest/confirm](/demand/docs/open-api/demand-api/messages/confirmmessagereceipt).


### View past conversations

Let guests view their previous conversations during or after their stay.

**How to implement:**

1. Use [/messages/latest](/demand/docs/open-api/demand-api/messages/fetchlatestmessages) to find the conversation.
2. Call [/messages/conversations](/demand/docs/open-api/demand-api/conversations/retrieve-conversation) using the conversation, reservation, and accommodation IDs.


Note: Guests can access messages for up to 66 days after checkout or cancellation.

Curious to know more?
* Get started - [Try the messaging flows](/demand/docs/messaging/try-out-messages)
* See the [Managing messages guide](/demand/docs/messaging/manage-messages) for detailed instructions on sending and retrieving messages.