Posts

Identifying Opt-In Preferences for In-App Messages in Salesforce MobileConnect

Understanding how to manage and identify opt-in preferences for in-app messages is crucial for effective mobile marketing. Based on a recent case I opened with Salesforce support, here are some insights and best practices for managing your audience for push and in-app messages.  Building Mobile Filtered Lists for Push Messages  To identify contacts who are opted in to receive push messages, you can create a mobile-filtered list with the following criteria:  Status: Active  Device ID: Not null  Opt-In Status: Opted In  Identifying Contacts for In-App Messages  One common question is how to identify contacts who have opted out of push messages but can still receive in-app messages, or vice versa. Here’s what I found: Opt-In Status for In-App Messages  Salesforce targets in-app and inbox messages to all Device IDs, regardless of their opt-in status. As long as the Device IDs are valid, in-app and inbox messages will be sent. If Apple Push Notificatio...

Understanding Push Message Delivery and Audience Management in Salesforce MobileConnect

In mobile marketing, ensuring that your push messages reach the intended audience is crucial. However, sometimes the numbers can be confusing, especially when the failed message count exceeds the total audience size. Let's dive into a scenario to understand this better and explore how to manage these challenges effectively. The Mystery of the High Failure Rate Imagine you’ve launched a campaign targeting less than 4 million contacts. After the campaign, you notice the following statistics:  Delivered : 734,935  Failed : 5,759,239  At first glance, it seems perplexing that the number of failed messages is significantly higher than the total audience size. Here’s why this happens: Understanding Device IDs and Contact Records  In Salesforce MobileConnect, the total number of delivered and failed messages is based on Device IDs, not individual contact records. A single contact can have multiple devices associated with them, each receiving or attempting to receive the pus...

Understanding Contact Status in Salesforce MobileConnect

Managing contact statuses in Salesforce MobileConnect can be complex, but it's crucial for ensuring your mobile marketing campaigns are effective and compliant. In this article, I'll walk you through some key aspects of managing contact statuses, based on a recent discussion with Salesforce support. Creating a Mobile List You can create a contactable mobile filtered list by using the following filters: Status: Active Opt-In Status: Opted In Mobile Number: Not Null Key Questions & Insights 1) Identifying Single Opt-In vs. Double Opt-In Contacts  Unfortunately, the filtered list itself doesn't distinguish between single opt-in and double opt-in contacts. However, you can query the data view to find this information. The SMSSubscriptionLog data view logs changes to the opt-in status of a number. Here's how you can use it:  OptInStatusID Values:   1 = OptInPending: The number has initiated the double opt-in process but hasn't texted Y/Yes to complete it.  2 = OptedI...

TLS Encryption for Email Sends in SFMC

Transport Layer Security (TLS) is a crucial aspect of email security, ensuring that your communications are encrypted and secure during transmission. In Salesforce Marketing Cloud (SFMC), TLS is enabled for all outbound emails by default. Here’s a comprehensive look at how TLS works in SFMC and what you need to know to manage it effectively. Default TLS Settings By default, SFMC uses an opportunistic TLS setting for all outbound emails. This means that SFMC will attempt to establish a TLS connection when sending emails. If a TLS connection cannot be established, the email will be sent in plain text. This default setting ensures that emails are encrypted whenever possible without disrupting the delivery process. For more detailed information, you can refer to the official Salesforce article here:  https://help.salesforce.com/s/articleView?id=000387912&type=1 Reviewing Email Headers for TLS Information To verify if an email was sent using TLS, you can review the email headers. Lo...

SFMC Automation Error: Automation failed due to system error.

Recently, I encountered an automation that repeatedly failed during a Query activity, with the dreaded error message: “Automation failed due to system error.” Despite my best efforts to modify the query and explore other avenues, I couldn’t resolve the issue. Naturally, I turned to Google for answers. The majority of responses pointed to common culprits:  Primary Key Violation : If your query generates duplicate rows that violate the primary key constraints, it can lead to failure.  Inserting Null Values : Attempting to insert null values into non-nullable fields can trigger errors. Data Truncation : Inserting values longer than the field allows (resulting in truncation) can cause issues. Timeouts : If your query exceeds the 30-minute timeout window, it will fail.  Despite checking my query against these possibilities, none seemed to fit my case.  Desperate for a solution, I contacted Salesforce support. Their investigation uncovered a critical detail: an ‘Invalid le...

How to Parse UTM Parameters Used in Emails

Recently I worked on a project where the requirement was to extract UTM parameters used in triggered emails for some audit purposes. These are the tracking parameters that are appended to the URLs when the links are clicked in the emails and they are used to understand and attribute the web traffic generated from the CRM emails. For example, some common parameters will be the source, content block name, campaign name, email name etc. Source will always be email, campaign name will be the name of the campaign (Black Friday, Summer Sale, Boxing Day etc.), email name to understand which email generated the higher traffic and revenue and content block names to understand how different sections within the email performed.  The approach that I took was to: First, identify all the triggered sends in the account using WSproxy. This provided a list of all active triggered emails in the account along with important details like name, customer key, JobId, BatchId, Subscriberkey etc. Second, d...

How to Download Historical Tracking Extract Data of an SFMC Instance

Recently Salesforce announced changes to its data retention policy for Marketing Cloud Engagement. Starting January 15, 2025, subscriber and journey engagement data will be retained and accessible for 180 days. This policy applies to data you retrieve using the Email Studio Reports in Analytics Builder, the tracking reports in Email Studio, Tracking Extracts in Automation Studio, or requests to SOAP API.  When this policy takes effect, subscriber and journey engagement data over 180 days old will no longer be accessible using these reports.  Here is the announcement Most of the Marketing Cloud instances I have worked on in the past, typically have automation that extracts previous days' tracking data, imports it in a data extension and also transfers it to external reporting or data storage service. The most common and important tracking extract data are - Sent, Not Sent, Open, Clicks, Unsubscribes, Subscribers, Send Jobs and Bounces. In case you do not have this historic...

JavaScript Activity to Invoke Another Automation in Marketing Cloud

There are going to be situations where you may want to invoke another automation from one automation. Or you may want to run a series of automations one after another without worrying about setting up a schedule.  You can use the below mentioned JS code in a script activity in an Automation in Marketing Cloud to invoke another automation. Simply copy / paste this code in a script activity and just make one small change - add the customer key of automation which you want to run/invoke from the current automation.  When you run this script activity, it will initiate the other automation to run. You can use this activity as last activity in two automations that will invoke each other and can run in an infinite look until you manually pause them. This could be useful in a case where you may want to run an automation earlier than allowed interval of 1 hour. The earliest an automation can run is every 1 hour. You can use this method to trigger an automation earlier than this time a...

Transactional Messaging API Vs Traditional Triggered Sends in SFMC

Image
When we create triggered send messages in Marketing Cloud, there is an option to set the message's priority. This is a drop-down which is always set to medium by default. The other two options allow you to set the priority to either high or low.  Only a couple of months ago, I had no idea what this option meant and I never paid attention to it or tried changing it. I do know from experience that in many of the projects I worked it was set to high and for a small number of accounts, I noticed it to be set to medium.  Recently I was tasked to look into an issue where the account creation emails were taking more than 5 minutes to reach the customers' inbox. These were transactional emails that were created either at the point of sale or by customers themselves when they created their accounts online. This resulted in a bad customer experience. When I searched for that email in SFMC, I noticed that it was a triggered send, the send classification was Transactional and priority was...

Distributed Marketing Use Case for Contact Center

 Recently, I worked on a project to set up Distributed Marketing feature for a Bank's contact centre. The feature allowed contact centre agents working for a Bank to send Marketing approved emails to customers from within the service console in Salesforce. The feature was greatly liked by agents and we saw good adoption rates after some training and persuasion. Use Case:  Work with your service team to get an understanding of what kind of content your customers are looking for when they are calling and speaking with the service centre agents. Or try to understand the frequently asked questions when customers reach out for help through email, social web or phone. This will help you in creating Distributed Marketing Content to provide to your service centre staff. You can then create the Distributed Marketing journeys' in Marketing Cloud with the relevant content and add those as a quick send feature in the Service Cloud console that contact centre agents use. Now when your supp...