Managing email send frequency in SFMC

Even though Marketing Cloud offers wide range of powerful capabilities for Email sends, management of send frequency is not one of them. At the same time, our clients often ask us about available options to ensure that they do not overcontact their clients. This article would describe simple lightweight solution to meet this requirement and should be considered a starting point.

Business Case

No matter what type of sends you use, by default, there is no directly possibility to limit number of email you send to a specific subscriber in SFMC. The goal is to introduce business friendly solution to limit number of sends within specified period. If any given subscriber already received maximum number of emails within specific period all active sends should be skipped for him/her.

Solution

The solution would incldule the following components

  1. Data Extension (to store sent emails count). This data would be referenced during each send to decide if we should send communication or not.
  2. Automation. SQL activity to retrieve Sent Data View data and count number of sent emails within specified period. Data would be populated to DE mentioned earlier.
  3. Exclusion script. Exclusion script on the level of Email to support exclusion during send time.

Data Extension

We would need to create a data extension to store count of emails sends against Subscriber Key. There should be at least two fields:

  • SubscriberKey (Text, primary key)
  • SentCount (Number)

Optionally, you might want to create an attribute group based on this DE to have an opportunity to control the journey flow based on these data.

Automation

We would need to create a scheduled automation to calculate email sends count for each Subscriber. To achieve that we could retireve data from Sent Data View and limit number of events based on EventDate. In the example below we count only sent events in the last 30 days.

Exclusion Script

The final part of the solution is exclusion script that we would need to configure for each send. I expect that majority of your sends should be created in Journey Builder. In such case, you would need to add exclusion script in “Delivery Options” tab when configuring each email activity as shown below:

Exclusion script would be executed during send time (it is expected that it return True/False value). If 1 (True) is returned, subscriber is excluded from the send. Dropped messaged will not consume supermessages, contact would stay in the journey (if it is expected based on journey flow logic).

In our example the script checks if number of sent emails is equal or larger than 4. Since we defined 30 days as lookback period in the automation we could translate it into the following business logic:

Exclude all contacts who received 4 or more (should not be the case) emails in the last 30 days.

If you want to change time window or specify maximum number of sends, you would need to adjust either SQL activity in Automation Studio or Exclusion script accordingly.

Exclusion script is not the only option to support exclusion. Alternatives include:

  • RaiseError AMPscript function
  • Global Supression list
  • Control on the level of journey flow (decision splits)

All of these options have certain pros and cons which you could analyze against the needs of your specific solution.

Next steps

As mentioned, the proposed soliton is illustrative only and should present the general logic. Most probably, actual business needs would be more complex in you case and hence would require further development of this solution. In relation to this topic I encourage you to consider the following suggestions:

  • Consider using Einstein Enagegement Frequency to identify optimal send frequency with support of AI. It’s not the same as strictly defined business logic but could be effective solution for overcontacting as well.
  • Consider Frequency capping based on marketing pressure value. Not all communications are equal from perspective of marketing pressure. You could introduce the concept of marketing pressure by assigning certain numeric value representing marketing pressure based on send type. These values could be tracked and aggregated based on SendLog data and then used to limit marketing pressure.
  • Consider combining of frequency caping solution with engagement analysis. Do you still want to send the same amount of emails to your unengaged clients or maybe they worth special treatment in attempt to return their trust?
  • Consider adding frequency preferences to customer preferences center. In some cases asking client directly about his or her expectations on how often you communicate might be a good idea!

Happy journey building!

--

--

Martech enthusiast and dreamer. I helped dozens of companies to undergo digital transformation and automate their marketing initiatives with SF technology.