Messaging Insights provides real-time analytics to help you monitor and troubleshoot your Twilio messaging application. From visiting the Messaging Insights page in Console, you can see aggregated reports on delivery rates, response rates, and OTP conversions (if applicable) across all messaging channels such as SMS, MMS, and WhatsApp.
Continue reading for an overview of Messaging Insights options, how it works, and answers to frequently asked questions.
Access Messaging Insights
To get started, log in to a Twilio account that has message logs from the last 120 days, and then access the Messaging Insights page. There you'll see the Overview page, which includes your incoming and outgoing message delivery rates, the number of messages sent or received from your application, and shows you how many messages had a status OK or generated an error code.
From the Overview, you have access to these additional dashboards:
- The Delivery & Errors report breaks out delivery rates by different dimensions, such as mobile carriers, countries, subaccounts, Messaging Services, and Twilio numbers. You can see which error codes are occurring most often, and links you directly to error code documentation for these errors.
- The Responses report helps you break down your incoming messages into opt-out, opt-in, help and user-content types of messages. If you are receiving a lot of opt-out messages, you may need to review our Messaging Policy to ensure you are adhering to all rules and best practices.
- The OTP Conversion report becomes active if you use Twilio to send One Time Passcode (OTP) messages, and provide feedback to Twilio on these messages via our Message Feedback API. If you are not providing message feedback, this dashboard will be blank.
- The Latency report shows you how long your messages waited on Twilio's platform before being sent to the carrier. If you are seeing long delivery times due to queuing, we recommend reviewing Twilio Rate Limits and Message Queues to ensure you have enough throughput (measured in Messages per Second or MPS) to handle your current sending volume. You can also learn a lot more about sending messages at scale on Twilio in Build to scale: queueing and latency on Twilio (Twilio docs).
Messaging Insights allows you to filter the data in any of these dashboards based on various parameters. You can narrow the time-window, choose a particular messaging channel, pick a particular destination country, and keep narrowing down to find patterns and triage issues.
For a deeper dive into the dashboards and filters available in Insights, including detailed screenshots, check out Explore Messaging Insights (Twilio Docs).
My message delivery rate is X% - Is that good?
There are numerous factors that make a 100% delivery rate unrealistic - users may be roaming outside of signal range, could have their phone switched off or some other device issue, gave you the wrong number, or be affected by other factors beyond your control. Your app's delivery rate will depend heavily on the quality of your contact list, and the type of messages you are sending. Because of this, there's no standard measure of a “good” delivery rate.
That said, there are steps you can take to optimize your delivery rate:
- If you have collected phone numbers that haven't been contacted in a while, or are unsure if some numbers are for landline phones, try cleaning up your contact list using Twilio Lookup.
- Make sure you are following the rules and guidelines in Twilio’s Messaging Policy, as well as the SMS Guidelines for the destination country of your message(s). This can help you to avoid opt-outs, end user complaints, and carrier violations, which can exacerbate carrier filtering and reduce delivery rates. For more details, see How Does Carrier Filtering Work.
Why is there a discrepancy with the Insights message count, billing usage, and/or Programmable SMS logs?
There are a few possible explanations for a mismatch between Insights, Usage, and SMS records retrieved by Console or API:
- Console may be using a different time zone than Insights. Insights is currently locked to UTC time (GMT+00:00), but Twilio Console usage and messaging logs are displayed using the time zone specified in your user settings. If you have set a time zone other than UTC, please take this into account when comparing data e.g. how many messages happened on a certain date.
- You may be comparing SMS message segments to messages. Insights currently displays each successful SMS request as a single message, regardless of the number of message segments it contains. This means that in Insights, a 1-segment message will count the same as a longer 3-segment message. Twilio bills messages on a per-segment basis (visible in the Console logs and via the REST API's
numSegmentsparameter), so keep this in mind when comparing data. For full details, see What the Heck is a Segment. Please note that this only applies to SMS messages, and not other types of messages such as MMS or WhatsApp.
- Processing for message billing events may be delayed. This means a message that is sent close to midnight on the final day of a month, may be billed in the first few minutes of the first day of the following month. For example: a message sent on April 30 at 23:59 UTC may have its billable record finalized on May 1 at 00:01 UTC. This can cause minor discrepancies when comparing Billing Usage records to Messages API or Insights records.
Why are some messages shown with "Unknown Carrier"?
These may be WhatsApp messages, "failed" messages where delivery was not attempted, or attempted messages where the recipient carrier is actually unknown.
In a future update, this will be changed so that WhatsApp messages show the carrier as "WhatsApp."
Can I export graphs or message logs from Insights?
Yes, you can export graphs or message logs from the Delivery and Errors, Responses or OTP Conversion tabs of Insights by clicking the Export drop-down menu. This will allow you to download a .CSV file of tabular data, or a .PNG image file of the graphs you are viewing. Any filters you have applied to the data will be reflected in the export.
Please note, message bodies are not stored in Messaging Insights, and you cannot use Insights to export message records with the body contents. For help exporting SMS logs in full, see Exporting SMS and Call Logs.
Additional frequently asked questions (FAQs)
How long is Messaging Insights data stored?
Messaging Insights can display records and metrics for the last 120 days.
What time zone is Insights in? Can the time zone be changed?
Messaging Insights uses the UTC time zone (GMT) by default. This cannot currently be changed.
Is there an API for Messaging Insights?
Not at this time. Messaging Insights was created to provide reporting for our customers, and to save them the trouble of building out custom reporting using the Messages API.
If you have specific reporting needs, or you want to generate reporting within your application, you are welcome to pull Twilio's message data into your application to feed your own reports. Specifically, we recommend using the Inbound Message webhook for incoming messages, and StatusCallbacks for outgoing messages. For help using these tools, see SMS Webhooks (Twilio Docs).
My user says that a message was delayed, but I don't see any latency in the Latency dashboard.
The Latency dashboard measures the amount of time a message spent in queue on Twilio, waiting to be sent to a carrier. Delays caused by issues at a carrier or a handset are not currently reflected in the Latency dashboard.
If a user reports that a message was delayed, but no latency is displayed on the Latency dashboard, that is a sign that the delay occurred after the message left Twilio.
For a detailed walkthrough on possible causes and solutions for message delays, see Troubleshooting Twilio Programmable Messaging Delivery Delays.