6

I'm wondering if there is a way in ExactTarget/Salesforce Marketing Cloud to limit the number of emails sent to a user in a specific period of time. For example, I would like to send no more than 3 emails to a subscriber in one week and no more than 1 each day.

3 Answers 3

4

Currently there is no frequency capping feature available out of the box. One way to do this is writing the email sends to a data extension and using this information as filter criteria for your email audiences for example.

0

Use this query to output to a DE with the 3 fields at the top.

SELECT  
    DISTINCT EmailAddress as [Email Address], s.SubscriberKey, GETUTCDATE() as [Date Added]
from 
    (select 
        SubscriberKey, count(1) as cnt
    from 
        _sent with(nolock)
    where
         dateadd(wK,3,EventDate) > DATEADD(dd, DATEDIFF(dd,0,getUTCdate()), 0)

    group by 
        SubscriberKey
    Having 
        count(1) >= 2
    ) x  INNER JOIN
    _Subscribers s with(nolock)
        On x.SubscriberKey = s.SubscriberKey

then use this ampscript (or ContentAreaByname point to this) at the top of your email to lookup the DE at send time

%%[ /* Suppression Lookup */ SET @FC_Row = LookupRows("Suppression_FrequencyCap_Email","SubscriberKey", _SubscriberKey) IF rowCount(@FC_Row) > 0 THEN RaiseError("Do not send to subscriber ñ Frequency Capping applied.", true) ENDIF]%%
2
  • it cut my code, here's the top half SELECT DISTINCT EmailAddress as [Email Address], s.SubscriberKey, GETUTCDATE() as [Date Added] from (select SubscriberKey, count(1) as cnt from _sent with(nolock) where dateadd(wK,3,EventDate) > DATEADD(dd, DATEDIFF(dd,0,getUTCdate()), 0) Commented May 28, 2018 at 16:36
  • Make sure to use the {} code format button in the editor or indent your entire code block by four spaces. That way your formatting won't be mangled.
    – David Reed
    Commented May 28, 2018 at 17:00
0

Since this has been posted, Salesforce introduced the Auto Suppression "Lists". While they're not target-able by Query Activity out of the box, you can make that connection via API and utilize one or more queries to maintain a suppression audience.

The benefit of using Auto Suppression is that you do not need to use Exclusion Scripts in every send definition.

I've outlined a solution here in this Github repo: https://github.com/wvpv/sfmc-frequency-suppression

Here's the Send query from that solution:

select
  a.subscriberid
, a.subscriberkey
, count(*) as SendCount
from _Sent a
inner join _Job j on j.jobid = a.jobid
where 1=1
and j.sendClassificationType = 'Default Commercial'
and j.TestEmailAddr is null
and j.Category != 'Test Send Emails'
and j.EmailSubject not Like '%test%'
and a.eventDate >= convert(date, getDate()-7)
group by
a.subscriberid
, a.subscriberkey
having count(*) > 0
/* name: Subscriber_Activity_Summary_Sends */
/* description: aggregates sends by subscriber in the past 7 days */
/* target: Subscriber_Activity_Summary */
/* action: overwrite */

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .