Question
For how long does Twilio keep Conversations message history, and is that history still available if I need to analyse it at a later date?
Product
Twilio Conversations
Environment
Twilio Console
Answer
Conversations message history is retained indefinitely by default. There is no automatic expiry period applied to Conversation or Conversation Message records, so history remains available for later analysis until it is explicitly deleted.
1. Conversations is excluded from the Programmable Messaging retention policy
Twilio applies a default data access policy of 13 months (400 days) to Programmable Messaging records. That policy explicitly excludes Twilio Conversations and Programmable Chat. Conversation and Conversation Message resources therefore remain readable through the Conversations API for as long as they exist in the Conversation Service.
Records are removed only when:
- The customer deletes a Message, a Conversation, or a Conversation Service through the API or Console.
- The Twilio account is closed, remaining Customer Content is deleted 30 days after account closure.
2. The underlying messaging records follow a different policy
When a Conversation includes non-chat Participants (SMS, MMS or WhatsApp), each message also produces a separate Programmable Messaging Message record. Those records DO follow the 400-day default retention and can be configured between 7 and 400 days.
The practical consequence: the message body stays available through the Conversations API, while the corresponding delivery log in Message Logs may have aged out. Customers investigating delivery status on older conversations should be made aware of this distinction.
The setting is found in Console under Messaging > Settings > General > "Message Records Data Access and Backup".
3. Closing a Conversation does not delete its history
Conversation states and timers control the lifecycle, not retention. Once a Conversation transitions to the closed state it becomes read-only and can no longer accept new messages or participants, and the transition is permanent. The existing message history remains fully readable through the API.