Stored Messages saves an exact copy of each rendered message in a cloud storage bucket that you own and manage. This gives you an immutable archive for your communications, so you can support audits, retention requirements, and customer support or dispute resolution workflows with confidence.
Iterable’s approach to storing messages offers these unique benefits:
- Using Stored Messages doesn't delay your campaigns. Iterable archives messages in a background process that is separate from the send pipeline.
- Iterable only stores messages after they’re confirmed as successfully sent to the delivery provider. You don’t need additional checks to confirm whether a message was actually sent to a recipient.
TIP
Stored Messages is an add-on feature. Talk to your Iterable account manager about adding Stored Messages to your plan.
# In this article
# How Stored Messages works
For each Iterable project, you can set up a single destination where Iterable stores exact copies of sent messages for all message types (blast, triggered, and journey) for the channels you've configured (Email, SMS, and/or Push).
When a campaign is triggered to be sent to a user, Iterable renders and then sends a message. Once Iterable confirms the message was successfully sent to the delivery provider, an exact copy is saved to your cloud storage bucket.
Once messages are stored, you can access them in your cloud storage provider, and you have full control over data storage and access.
# Supported storage destinations
For Stored Messages, Iterable supports Amazon S3 as a storage destination.
TIP
Additional storage destinations are coming soon:
- Azure Blob Storage
- Google Cloud Storage
# Data encryption
During transfer, Iterable encrypts data using HTTPS (TLS).
Encryption for data at rest is not handled by Iterable. Your organization owns the bucket and is responsible for configuring encryption while data is at rest. Your storage provider may incur additional costs for encrypting data at rest, so check with your provider before enabling encryption for data at rest.
# Retry policies
Sometimes Iterable needs to retry storing a message. Here are the reasons why this happens, and how Iterable responds in each scenario.
# Rate limiting by the cloud storage provider
If Iterable encounters rate limiting by the cloud storage provider, it retries saving that message automatically and indefinitely, until the message is stored.
# Connection or authentication issues
If Iterable encounters issues related to bucket access or authentication—including an outage by the provider—it retries the message at 8-hour intervals for up to seven days. Messages that fail to be stored after the 7-day retry period cannot be archived.
# Next steps
To get started with Stored Messages, follow the setup guide for your storage destination:
Once your destination is ready, connect it to your Iterable project by following the instructions in Connecting a Destination for Stored Messages.
To learn about viewing files and JSON payloads for stored messages, see Stored Message JSON Payloads.
# Want to learn more?
For more information about some of the topics in this article, check out this Iterable Academy Product Bite. Iterable Academy is open to everyone — you don't need to be an Iterable customer!