Staggered email sendout

Not applicable

Staggered email sendout

Hi everyone,

I'm currently working on a project where an email will be re-sent roughly once a month, but due to the number of contacts, I would like to spread this out. I would ideally like a quarter of the leads to be sent each time, and would like any leads that have been emailed in the past 30 days to be excluded.

In the past, we have achieved this by using a static list, which is then split into four lists using a smart campaign. Four other smart campaigns are used to then manually trigger the email send to each of the split lists. This is quite time consuming, as all the lists need to be reconstructed manually each time (to add in new customers), and the emails have to be manually sent.

I'm just wondering if there is an easier way of doing this that allows the process to be fully automated.


Level 5

Re: Staggered email sendout

Hi Robert,

Can you clarify what you are trying to do? I'm unclear if you want to send the email to all four lists every month, or you want to send the email to list 1 in the first month, send the email to list 2 in the second month, etc. I just want to make sure that I can tell you something that would work for your scenario.

Level 10

Re: Staggered email sendout

Great question! I'll rely on your existing decisions that this is worth the effort and you're seeing greater effectiveness by targeting/sending this way and just get to a possible solution.

There are a few solutions I've been thinking of, but they all have their own pros and cons, and you might have the most straightforward setup already in place. There are tradeoffs between "amount of human time saved per month" and "amount of processing power and likelihood of human error."

Option One: Clone Program Template with Manually-Scheduled Send Campaigns

This takes a large amount of time per month. You can probably streamline this and cut down the time per month by about half an hour, I'd guess, if you turn it into a program template that you just have to clone instead of rebuilding from scratch.

Here's what the program would look like:


Each of those four "Send Email" smart campaigns would be manually scheduled to certain dates throughout the month.

Here's what each "Send Email" campaign looks like.

Smart list:




The benefit of this approach is that it has the best usage of processing power while still being pretty streamlined. If you clone this template, each smart campaign will reference that email in its send without a separate step. Each of the Send Email campaigns will be ready to go, just needs the final step of manually scheduling. The other benefit is that you have Progressions correctly measuring who was Sent/Opened/Clicked/Unsubscribed, because they're based on the same email instead of separate email programs. Honestly, I'd probably do this one if I were you.

Option Two: Clone Program Template with Auto-Scheduled Send Campaigns

This approach would reduce the number of scheduled campaigns from 4 to 1, and use wait steps instead. This will also rely on four separate smart lists that wouldn't change from program to program, so they won't have to be touched after the first Template is made.


Here's the "Send Email (All)" contents:

Smart list:



  • Send email with choice: if member of smart list "Group A," send the email, otherwise do nothing.
  • Wait a week.
  • Send email with choice: if member of smart list "Group B," send the email, otherwise do nothing.
  • Wait a week.
  • Send email with choice: if member of smart list "Group C," send the email, otherwise do nothing.
  • Wait a week.
  • Send email with choice: if member of smart list "Group D," send the email, otherwise do nothing.

Here's a screenshot of how the top looks of the flow:


The smart list content does two things: (1) picks out 1/4th of the random group and (2) narrows the persons to those who haven't been sent an email in the last 30 days.

Here's "Group A" smart list:


To build this in an on-going basis, you'd clone the program template, change the content of the email in the program, then schedule the "Send Email (All)" for the first send date of maybe the first of the month.

The (big) problem to this approach is that you'd be putting the entire subset of persons who haven't been sent an email in the last 30 days into a 30-day long wait step campaign. I generally don't use wait steps more than a week or two, because you get into funky issues with timing and other issues when they're abused. But if the total amount of people isn't that big, this approach would work.

The Other Big Component: Random Cohort Assignment

The above solutions reference "Member of List" with "Random Fourths" in them. When we play with random samples, I put that into a separate program that assigns persons to Random Cohorts. The "Random Sample" flow step choice is pseudo-random, which is fine in this case, but having separate "random sample" flow steps in every single smart list here wouldn't work because you need other exclusions (and the "Random Sample" flow step choice is really slow, processing-wise).

So, we decentralize the random sampling in order to put leads/contacts into more static random groupings.

Here's the program you'd use:


Here's the buildout for the "Assign to Random List (1-4)" smart campaign:

Smart list: either "Lead is Created" if you don't have Lifecycle Processing, or more ideally this is a requested campaign from Lifecycle Processing.





Especially because you don't care about actual randomness in this case, random cohort into 4 equal parts will work just fine for you. Really you just need 1/4th of the database with each send, and if they're in the same cohort month-over-month there isn't much impact to your efforts. More information on Random Cohort Assignment from my 2016 Marketo Summit presentation starting at at 20:51.

Hope that wasn't too much information. : )

Edward Unthank | Founder, Etumos