SFMC Mobile Connect Data Views
Dive deep into SMS System Data Views - the backend Marketing Cloud data. Actionable pearls await.
System Data Views
Learn about SFMC System Data Views Basics and specific backend tables covering Email Studio, Journey Builder & Automation Studio data here.
MobileConnect Data Views
MobileConnect Data Views are unique, as most of them are no longer supported by Salesforce. But some still works. All those data views show data limited to a specific Business Unit.
Most of the MobileConnect data is assigned to Mobile Number, not Contact. It means that it might be shared by a few contacts (if multiple have the same mobile number set) or migrate between them (if the mobile number gets reassigned).
It shouldn't be a big problem in B2C environments, as most people will have their mobile number and keep it long. However, remember that unused numbers might be recycled after a few years by telecom and go back to the market and given to a new user.
Mobile number recycling is much more present in the B2B scenario, where there is a bigger chance for shared mobile numbers and much faster recycling of the numbers. Many companies reuse the phone number of the employees that left.
When working with Mobile Number history of engagement and subscription, take this into consideration.
_MobileAddress
_MobileAddress
Data View is officially not supported by Salesforce. But it's too good not to use it. And there is no replacement for it. Why? Because Marketing Cloud still uses this Data View as a backend data source for the MobileConnect Demographics Data.
- Fields
- Field Picklist Values
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
_MobileID | MobileConnect Contact ID | Number | X |
_ContactID | Global Contact ID (not Contact Key) | Number | |
_MobileNumber | Mobile number for the subscriber | Text | |
_Status | Status of the Contact | Number | X |
_Source | Source of the Contact | Number | X |
_SourceObjectId | ID of the object if _Source = 10 | Text | X |
_Priority | In case the contact uses multiple mobile numbers, the Priority field's value establishes the order in which to use those mobile numbers. _Priority = 1 is first in order | Number | X |
_Channel | Communication channel. Used to be Mobile, now not in use | Text | X |
_CarrierID | Numeric code for the mobile carrier used by the contact | Number | |
_CountryCode | Two letter country code | Text | |
_CreatedDate | Date the subscription was created | Date | |
_CreatedBy | Person responsible for contact creation | Date | |
_ModifiedBy | Person responsible for contact modification | Text | X |
_City | Contact's City | Text | X |
_State | Contact's State | Text | X |
_ZipCode | Contact's Zip Code | Text | X |
_FirstName | Contact's First Name | Text | X |
_LastName | Contact's Last Name | Text | X |
_UTCOffset | The number of hours from which the user's time zone deviates from UTC. Defaults to 0 | Number | X |
_IsHonorDST | Whether the user's time zone observers Daylight Savings Time or not. Defaults to false | Boolean | X |
_Status
possible values:
Value | Meaning |
---|---|
1 | Active |
2 | Inactive |
3 | Deleted |
_Source
possible values:
Value | Meaning |
---|---|
0 | Unspecified |
1 | Webcollect |
2 | API |
3 | FTAF |
4 | Import |
5 | MoveCopy |
6 | Manual |
7 | SalesForce |
8 | Segmentation |
9 | GenericExtension |
10 | CustomObject |
11 | FacebookAPI |
12 | SmartCapture |
13 | MobileOptIn |
SELECT
mobileAddress._MobileID AS MobileID
, mobileAddress._ContactID AS ContactID
, mobileAddress._MobileNumber AS MobileNumber
, mobileAddress._Status AS Status
, mobileAddress._Source AS Source
, mobileAddress._SourceObjectId AS SourceObjectId
, mobileAddress._Priority AS Priority
, mobileAddress._Channel AS Channel
, mobileAddress._CarrierID AS CarrierID
, mobileAddress._CountryCode AS CountryCode
, mobileAddress._CreatedDate AS CreatedDate
, mobileAddress._CreatedBy AS CreatedBy
, mobileAddress._ModifiedBy AS ModifiedBy
, mobileAddress._City AS City
, mobileAddress._State AS State
, mobileAddress._ZipCode AS ZipCode
, mobileAddress._FirstName AS FirstName
, mobileAddress._LastName AS LastName
, mobileAddress._UTCOffset AS UTCOffset
, mobileAddress._IsHonorDST AS IsHonorDST
FROM _MobileAddress AS mobileAddress
When working with _MobileAddress
Data View:
- There is no guarantee of how long it will work and how long the data will be correct. Be sure you are checking it periodically or - even better - have validation in your code.
- The rule of thumb when working with MobileConnect is to use the official, supported solutions. Only when they cannot deliver - check whether
_MobileAddress
can help. - Do not use the User Interface editor in MobileConnect Demographics part of the Contact to edit information in this Data View. It is broken and overwrites all connected Mobile Numbers with a change made to just one. However, the changes are possible with SSJS - including ContactID and MobileNumber changes and limited merging. It is the most significant selling point of this Data View.
_MobileAddress
Data View is available in Data Designer within MobileConnect Attribute Group. It allows you to add custom fields to it that you can later leverage in sends.- Whenever creating a MobileConnect Contact, be sure to provide the
_MobileNumber
with the dialling code prefix (without the+
or00
). For example, Poland has a+48
dialling code and nine-digit numbers, so the correct format is 48123456789. Double-check whether_CountryCode
is an appropriate two-letter code (for example,PL
). - The Contact may have multiple Mobile Numbers assigned, but it will receive communication only to the one with the highest
_Priority
. - Whenever you add a Mobile Number to a new Contact, for all other Contacts with this number, it gets lower
_Priority
(SFMC assumes that it was transferred). _ContactID
makes this Data View useful for cross-channel applications. New Data Views (_SMSSubscriptionLog
and_SMSMessageTracking
) have Subscriber Key information, but if the Mobile Number is shared, it won't provide the data.
_MobileSubscription
_MobileSubscription
Data View is officially unsupported by Salesforce. Marketing Cloud still fills it with data, but there is no guarantee of how long it will persist or whether it will be correct.
Worry not, there is a nearly identical Data View available and supported - _SMSSubscriptionLog
.
The new Data View contains nearly all the same fields (sans _CreatedBy
and _ModifiedBy
) and even adds three more (LogDate
, SubscriberKey
and MovileSubscriptionID
).
- Fields
- Field Picklist Values
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
_SubscriptionDefinitionID | The unique ID of the subscription record | Text | |
_MobileNumber | Mobile number for the subscriber | Text | |
_OptOutStatusID | Whether the subscriber has opted out of SMS messages | Text | X |
_OptOutMethodID | Method the subscriber used to opt-out of SMS messages | Text | X |
_OptOutDate | Date, the subscriber, opted out of SMS messages | Date | X |
_OptInStatusID | Whether the subscriber has opted-in to the SMS messages | Text | |
_OptInMethodID | Method the subscriber used to opt-in to the SMS messages | Text | X |
_OptInDate | Date, the subscriber, opted-in to the SMS messages | Date | X |
_Source | The subscription source | Text | X |
_CreatedDate | Date the subscription was created | Date | |
_CreatedBy | Person responsible for subscription creation | Text | X |
_ModifiedDate | Date the subscription was modified | Date | |
_ModifiedBy | Person responsible for the modification | Text | X |
_OptOutStatusID
possible values:
Value | Meaning |
---|---|
0 | NotOptedOut |
1 | OptedOut |
10 | DeletingNotOptedOut |
11 | DeletingOptedOut |
_OptOutMethodID
possible values (more can come in the future):
Value | Meaning |
---|---|
4 | Import |
6 | Application |
14 | MobileOriginated |
15 | Suppression |
NULL | Subscriber texted an Opt-Out Keyword |
_OptInStatusID
possible values:
Value | Meaning |
---|---|
0 | NotOptedIn |
1 | OptInPending |
2 | OptedIn |
10 | DeletingNotOptedIn |
11 | DeletingOptInPending |
12 | DeletingOptedIn |
_OptInMethodID
possible values:
Value | Meaning |
---|---|
0 | Unspecified |
1 | WebCollect |
2 | API |
3 | FTAF |
4 | Import |
5 | MoveCopy |
6 | Application |
7 | SalesForce |
8 | Segmentation |
9 | GenericExtension |
10 | CustomObject |
11 | RMM |
12 | Mobile Opt-In |
13 | DeviceRegistration |
_Source
possible values:
Value | Meaning |
---|---|
2 | API |
4 | Import |
6 | Application |
10 | CustomObject |
12 | MobileOptIn |
SELECT
mobileSub._SubscriptionDefinitionID AS SubscriptionDefinitionID
, mobileSub._MobileNumber AS MobileNumber
, mobileSub._OptOutStatusID AS OptOutStatusID
, mobileSub._OptOutMethodID AS OptOutMethodID
, mobileSub._OptOutDate AS OptOutDate
, mobileSub._OptInStatusID AS OptInStatusID
, mobileSub._OptInMethodID AS OptInMethodID
, mobileSub._OptInDate AS OptInDate
, mobileSub._Source AS Source
, mobileSub._CreatedDate AS CreatedDate
, mobileSub._CreatedBy AS CreatedBy
, mobileSub._ModifiedDate AS ModifiedDate
, mobileSub._ModifiedBy AS ModifiedBy
FROM _MobileSubscription AS mobileSub
You shouldn't be working with _MobileSubscription
Data View. Use _SMSSubscriptionLog
instead.
_SubscriberSMS
_SubscriberSMS
Data View is a legacy table. It is neither supported nor updated, and you won't have records there. Marketing Cloud used it in pre-MobileConnect times, so I do not recommend using it for any projects.
- Fields
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
SubscriberID | The subscriber ID for the affected subscriber | Number | |
SubscriberKey | The subscriber key for the affected subscriber | Text | |
MobileNumber | Mobile number for the subscriber | Phone | |
TransactionalOptIn | Whether the subscriber has opted-in to Transactional SMS messages | Boolean | |
TransactionalOptInDate | Date, the subscriber, opted-in to Transactional SMS messages | Date | |
TransactionalOptOutDate | Date, the subscriber, opted out of Transactional SMS messages | Date | X |
MarketingOptIn | Whether the subscriber has opted-in to Marketing SMS messages | Boolean | |
MarketingOptInDate | Date, the subscriber, opted-in to Marketing SMS messages | Date | |
MarketingOptOutDate | Date, the subscriber, opted out of Marketing SMS messages | Date | X |
SMSCarrierName | Name of the SMS Carrier used for delivery | Text | X |
SELECT
smsSub.SubscriberID
, smsSub.SubscriberKey
, smsSub.MobileNumber
, smsSub.TransactionalOptIn
, smsSub.TransactionalOptInDate
, smsSub.TransactionalOptOutDate
, smsSub.MarketingOptIn
, smsSub.MarketingOptInDate
, smsSub.MarketingOptOutDate
, smsSub.SMSCarrierName
FROM _SubscriberSMS AS smsSub
You shouldn't be working with _SubscriberSMS
Data View.
_SMSSubscriptionLog
_SMSSubscriptionLog
Data View stores complete information about subscription status for each Mobile Number. It replaced the unsupported _MobileSubscription
Data View.
- Fields
- Field Picklist Values
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
LogDate | The date the subscription is logged | Date | X |
SubscriberKey | The subscriber key for the affected subscriber | Text | |
MobileSubscriptionID | The unique ID of the subscription record | Number | |
SubscriptionDefinitionID | The unique Keyword ID (GUID() ) | Text | |
MobileNumber | Mobile number for the subscriber | Phone | |
OptOutStatusID | Whether the subscriber has opted out of SMS messages | Number | X |
OptOutMethodID | Method the subscriber used to opt-out of SMS messages | Number | X |
OptOutDate | Date, the subscriber, opted out of SMS messages | Date | X |
OptInStatusID | Whether the subscriber has opted-in to the SMS message | Number | |
OptInMethodID | Method the subscriber used to opt-in to the SMS messages | Number | X |
OptInDate | Date, the subscriber, opted-in to the SMS messages | Date | X |
Source | The subscription source | Number | X |
CreatedDate | Date the subscription was created | Date | |
ModifiedDate | Date the subscription was modified | Date |
OptOutStatusID
possible values:
Value | Meaning |
---|---|
0 | NotOptedOut |
1 | OptedOut |
10 | DeletingNotOptedOut |
11 | DeletingOptedOut |
OptOutMethodID
possible values (more can come in the future):
Value | Meaning |
---|---|
4 | Import |
6 | Application |
14 | MobileOriginated |
15 | Suppression |
NULL | Subscriber texted an Opt-Out Keyword |
OptInStatusID
possible values:
Value | Meaning |
---|---|
0 | NotOptedIn |
1 | OptInPending |
2 | OptedIn |
10 | DeletingNotOptedIn |
11 | DeletingOptInPending |
12 | DeletingOptedIn |
OptInMethodID
possible values:
Value | Meaning |
---|---|
0 | Unspecified |
1 | WebCollect |
2 | API |
3 | FTAF |
4 | Import |
5 | MoveCopy |
6 | Application |
7 | SalesForce |
8 | Segmentation |
9 | GenericExtension |
10 | CustomObject |
11 | RMM |
12 | Mobile Opt-In |
13 | DeviceRegistration |
Source
possible values:
Value | Meaning |
---|---|
2 | API |
4 | Import |
6 | Application |
10 | CustomObject |
12 | MobileOptIn |
SELECT
smsSubLog.LogDate
, smsSubLog.SubscriberKey
, smsSubLog.MobileSubscriptionID
, smsSubLog.SubscriptionDefinitionID
, smsSubLog.MobileNumber
, smsSubLog.OptOutStatusID
, smsSubLog.OptOutMethodID
, smsSubLog.OptOutDate
, smsSubLog.OptInStatusID
, smsSubLog.OptInMethodID
, smsSubLog.OptInDate
, smsSubLog.Source
, smsSubLog.CreatedDate
, smsSubLog.ModifiedDate
FROM _SMSSubscriptionLog AS smsSubLog
When working with _SMSSubscriptionLog
Data View:
- SFMC assigns subscription data to Mobile Number, not particular SubscriberKey or Contact. If you reassign the Phone Number to a different contact - Subscriptions will follow.
- SubscriberKey will be correctly populated if there is one (and only one) Subscriber with the same Mobile Number. Otherwise, it will have either have a
No MobileAddress record has been found or this mobile number
orMultiple subscriber keys found for this mobile number
as a value. SubscriptionDefinitionID
is a GUID, and there is no apparent connection to a specific Keyword. But there are two tricks.JOIN
_SMSMessageTracking
Data View and useKeywordID
andSharedKeyword
columns to map the GUID to readable Keyword name. If you cannot find this information there, there is a second option:- Go to MobileConnect Contacts, open your test contact and make sure he is subscribed to all your Keywords. Click the Attributes tab and scroll to MobileConnect Data. Click on the
Carrier ID
value. It will open a MobileConnect Subscriptions view - the above Data View in User Interface format. If you check the Keyword column, you will see your MobileConnect Short or Long Code along with Keyword in a readable format. Write it down and clickEdit
. Now you will see the same data, but with Keyword GUID. With those two values, you can use a SQLCASE
statement to convert this Data View to a more readable format.
_SMSMessageTracking
- Fields
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
MobileMessageTrackingID | Unique Tracking ID - one for each SMS sent | Number | |
EID | Enterprise ID number for the sender | Number | X |
MID | Member ID (Business Unit ID) | Number | X |
Mobile | Mobile number for the subscriber | Phone | |
MessageID | Unique Mobile Message ID | Number | |
KeywordID | Unique identifier for the keyword (GUID) | Text | X |
CodeID | Unique identifier for the SMS code (GUID) | Text | X |
ConversationID | Unique identifier for the SMS conversation. Currently always null. | Text | X |
CampaignID | The SMS campaign tied to the record | Number | X |
Sent | If the message was sent | Boolean | |
Delivered | If the message was delivered | Boolean | X |
Undelivered | Whether the message was delivered successfully or not | Boolean | X |
Unsub | If the subscriber unsubscribed. Currently always null. | Boolean | X |
OptIn | Whether the subscriber has opted-in to the SMS messages. Currently always null. | Boolean | X |
OptOut | Whether the subscriber has opted out of SMS messages. Currently always null. | Boolean | X |
Outbound | If the message was outgoing | Boolean | X |
Inbound | If the message was incoming | Boolean | X |
CreateDateTime | The date and time the tracking record was created | Date | |
ModifiedDateTime | The date and CST time the tracking record was modified | Date | |
ActionDateTime | The actual date/time the Marketing Cloud received a delivery or non-delivery event. Timestamps for delivery receipts are not indicative of when a message was received on a handset. The SMS industry does not support read receipts, and the data returned in this view are based on when a delivery receipt is returned to our system. | Date | |
MessageText | The text of the message | Text | X |
IsTest | If the message was a test message | Number | X |
MobileMessageRecurrenceID | The ID of the recurrence schedule for the message. Can be used for troubleshooting send issues. | Number | X |
ResponseToMobileMessageTrackingID | The tracking ID of the response to the message | Number | X |
IsValid | Populates to 1 for inbound message and 0 for Outbound message | Number | X |
InvalidationCode | Invalidation code for the message. Currently always null. | Number | X |
SMSJobID | GUID with JobID matching value in SMS Send Log. Filled only for sends since Spring 2023. | String | X |
SMSBatchID | BatchID matching value in SMS Send Log. Filled only for sends since Spring 2023. | Number | X |
SendID | The send ID number for the SMS send | Number | X |
SendSplitID | If the message was split, the ID of the split | Number | X |
SendSegmentID | The ID of the segment tied to the message | Number | X |
SendJobID | The job ID for the SMS send | Number | X |
SendGroupID | The group ID for the SMS send | Number | X |
SendPersonID | The sendperson ID for the SMS send | Number | X |
SubscriberID | The subscriber ID for the affected subscriber. This number represents the unique ID for each subscriber record | Number | X |
SubscriberKey | The subscriber key for the affected subscriber | Text | X |
SMSStandardStatusCodeId | SFMC delivery status code | Number | X |
Description | Detailed description of the status code | Text | X |
Name | The SMS Message or Journey Activity name | Text | X |
ShortCode | The short code or long code used to send your message | Text | X |
SharedKeyword | The keyword used in your message | Text | X |
Ordinal | Represents the parts in a multi-part message. Represented in ascending order starting at 0. | Number | X |
FromName | From Name that an individual message was deployed with. Maximum length: 11 characters | Text | X |
JBDefinitionID | Unique identifier for the related journey | Text | X |
JBActivityID | Unique identifier for the related journey activity | Text | X |
SELECT
smsTracking.MobileMessageTrackingID
, smsTracking.EID
, smsTracking.MID
, smsTracking.Mobile
, smsTracking.MessageID
, smsTracking.KeywordID
, smsTracking.CodeID
, smsTracking.ConversationID
, smsTracking.CampaignID
, smsTracking.Sent
, smsTracking.Delivered
, smsTracking.Undelivered
, smsTracking.Unsub
, smsTracking.OptIn
, smsTracking.OptOut
, smsTracking.Outbound
, smsTracking.Inbound
, smsTracking.CreateDateTime
, smsTracking.ModifiedDateTime
, smsTracking.ActionDateTime
, smsTracking.MessageText
, smsTracking.IsTest
, smsTracking.MobileMessageRecurrenceID
, smsTracking.ResponseToMobileMessageTrackingID
, smsTracking.IsValid
, smsTracking.InvalidationCode
, smsTracking.SMSJobID
, smsTracking.SMSBatchID
, smsTracking.SendID
, smsTracking.SendSplitID
, smsTracking.SendSegmentID
, smsTracking.SendJobID
, smsTracking.SendGroupID
, smsTracking.SendPersonID
, smsTracking.SubscriberID
, smsTracking.SubscriberKey
, smsTracking.SMSStandardStatusCodeId
, smsTracking.Description
, smsTracking.Name
, smsTracking.ShortCode
, smsTracking.SharedKeyword
, smsTracking.Ordinal
, smsTracking.FromName
, smsTracking.JBDefinitionID
, smsTracking.JBActivityID
FROM _SMSMessageTracking AS smsTracking
When working with _SMSMessageTracking
Data View:
- If you send one SMS to multiple Subscribers, you will have multiple rows of data with different
MobileMessageTrackingID
but the sameMessageID
. Apart fromMessageID
you may also use theName
field that contains the asset name from MobileConnect. KeywordID
andCodeID
are GUIDs, but the same table also has the readable versions of those columns -ShortCode
andSharedKeyword
.ShortCode
, despite the name, also displays Long Codes.- The fields marked above as boolean (like
Sent
,Delivered
,IsTest
,Outbound
) have the value in the form of a number:0
= false,1
= true. Some might also benull
- for example, if a message was outbound,Outbound
will have the value of1
, whereasInbound
will benull
. MessageText
will not only show you the text you sent in your SMS - it will also display it after personalisation is applied. On the one hand, it is great for debugging, as it allows you to check the final content the user received. On the other hand, you won't be able to assess personalisations used across your messaging.ResponseToMobileMessageTrackingID
is an excellent way to check customer response. You can make Self-Join between inboundResponseToMobileMessageTrackingID
and outboundMobileMessageTrackingID
to output response data in the same line.- Some fields in this Data View are filled only under specific conditions:
CampaignID
is populated only when an SMS is sent to Data Extension as Audience or send type is Send to Data Extension. SMS must be connected to a Campaign for the field to be populated.SendID
,SendJobID
are populated only for SMS messages sent via Automation Studio's Send SMS Activity or when an SMS is sent to Data Extension as Audience.SendSplitID
,SendSegmentID
,SendGroupID
,SendPersonID
are populated only when SMS is sent to Data Extension as Audience.ConversationID
is populated only when a conversation is created with a MO user using AMPScriptCreateSMSConversation
.
Unsub
,OptIn
,OptOut
are currently not populated at all. You should pull that data from_SMSSubscriptionLog
.JBDefinitionID
andJBActivityID
let you cleanly match SMS data toJourney
and_JourneyActivity
Data Views usingVersionID
andActivityID
respectively. However, it won't work for old (created before October 2020) SMS Activities - for those you can make aJOIN
usingName
field:ON smsTracking.Name = journeyActivity.ActivityName
.SMSStandardStatusCodeId
andDescription
are great for understanding your SMS send's current status.SMSJobID
andSMSBatchID
are the only way to connect _SMSMessageTracking Data View to SMS Send Log. You canJOIN
ON smsTracking.SubscriberID = sendLog.SubID AND smsTracking.SMSJobID = sendLog.SMSJobID AND smsTracking.SMSBatchID = sendLog.BatchID
.
SMS Status Codes
Code | Status | Definition |
---|---|---|
1000 | QueuedToSfmcSendService | Message queued to internal send service. |
1500 | QueueFailureToSfmcSendService | Message failed to queue to internal send service. Retry your send. |
1501 | ValidationError | Internal validation error. Retry your send. |
2000 | DeliveredToAggregator | Message delivered to the aggregator. The status will be updated when the delivery confirmation comes from the carrier or mobile device. For shared codes, this is the final status. |
2500 | FailedToAggregator | Message not delivered to the aggregator. Retry your send. |
2501 | UnknownToAggregator | Unknown aggregator error. |
2600 | ThrottledToAggregator | Message not accepted by aggregator due to capacity issues. Send will be retried automatically. |
3000 | Enroute | Message is en route to carrier. Waiting on carrier confirmation. |
3001 | SentToCarrier | Message sent to carrier. Waiting to be accepted by carrier. |
3002 | AcceptedByCarrier | Message accepted by carrier. Waiting for delivery confirmation. |
3400 | Unknown | Unknown error |
4000 | Delivered | Message delivered to mobile device. |
4500 | Undeliverable | Message not delivered to mobile device. |
4501 | Expired | Message expired. Message exhausted the carrier retry process. Mobile device may be out of carrier range. |
4502 | Deleted | Message deleted by the carrier. |
4503 | Rejected | Message rejected. Carrier may have detected a loop or assumed that message is spam. This status can indicate an administrative or financial problem between the operator and the end-users. |
_UndeliverableSMS
Stores information about failed message deliveries from MobileConnect.
There might be multiple reasons for the SMS to be undelivered, for example:
- The mobile device is powered off.
- The user is out of range of cellular networks
- The number is for a landline
- Fields
- SQL Query
Name | Description | Data Type | Nullable |
---|---|---|---|
MobileNumber | Mobile number for the subscriber | Text | |
Undeliverable | Whether the subscriber is eligible for future deliveries | Boolean | |
BounceCount | Number of times message was not delivered | Number | |
FirstBounceDate | Date of the first unsuccessful delivery | Date | |
HoldDate | Date when the subscriber can be used in sends again | Date | X |
SELECT
undeliverableSMS.MobileNumber
, undeliverableSMS.Undeliverable
, undeliverableSMS.BounceCount
, undeliverableSMS.FirstBounceDate
, undeliverableSMS.HoldDate
FROM _UndeliverableSMS AS undeliverableSMS
When working with _JourneyActivity
Data View:
- If
Undeliverable
isTRUE
, checkHoldDate
to know when the number will be reachable again. - Monitor this data view and blocklist numbers with significant
BounceCount
values to clean up your database, save money and protect from spamming potential future owners of the recycled phone number. - It's impossible to know the actual delivery status for SMS sends - Marketing Cloud reports only whether the SMS carrier accepted the message. It does not know what happens with it after the carrier takes over. However, most of the SMS messages accepted by carriers are delivered.