Question

Journey Orchestrator - Sending email by batch

  • 18 October 2023
  • 6 replies
  • 94 views

Badge

Looking for recommendation on how to go about this:

 

Let’s say we have 6,000 email chain program participants sourced through query builder (2 objects merged)

We aim to divide them into six groups over six months, sending 1,000 emails each month (potentially dividing participants based on MRR)

We also require conditional wait for each email: if a link isn't clicked within 3 days, we'll send a reminder.

We know how to set up the conditional wait for one group but need guidance on segmenting participants and managing the batch distribution. Can this be done in just 1 program?


6 replies

Userlevel 6
Badge +10

Hi @fatima_sarah 

There are ways to do something like this with data designer but it would be super convoluted as you’d need to generate a flag to say “Add to outreach” based on other criteria (for example, the month of send that you would assign to each range of MRR). But there’s no case statement that can create a date field from scratch, and in my book you’d need to dynamically count the number of days to an event (i.e. your month of send) to set the flag to true… 

My recommendation would be to segment on date instead (for example, renewal date). You can set your “add to outreach flag” whenever you’re X days from renewal or post renewal (or post whatever other event date: for example, last timeline entry...). 

Hope this helps

A

 

Badge

Thank you @alizee

We had an idea today that we thought might work. We were thinking about potentially utilizing email template versions and filtering each by segment, then not enabling the Default to send to anyone else not filtered. This would involve using filters to control when each group receives the email, and we would include a 30-day conditional wait between each segment of email template filtering. So: 

  • Group 1 Email Template, Day 1 Filter - MRR $A to $B
  • [30-day Conditional Wait]
  • Group 2 Email Template, Day 31 Filter - MRR $C to $D
  • [30-day Conditional Wait]
  • Etc

Same email template, but only filtering to the segment that we want. Have you tried anything like that, by chance? 

Userlevel 7
Badge +10

Interesting and creative idea and solution @fatima_sarah.

One risk you run in segmenting like that, using 30-day conditional waits between each batch, is that you’ll pull in all 6000 Participants on Day 1, but not email them for up to 5 months. In that time, customers or contacts may change, so you end up with a potentially out-of-date set of contacts and/or customers.

And if you are sending from “the assigned CSM”, and the assigned CSM changes in the period between Day 1 and when the email is sent, the email could be sent from the “old” assigned CSM instead of the current.

One potential solution is to:

  1. Divide your target audience into groups. You suggest MRR, which could be great. You might also batch alphabetically like customers starting with A-C, D-G, H-L, etc. or whatever divisions give you approximately equally-sized groups.
  2. Build a query for that Group #1 (in my example, customers starting with A-C), and make your Program active, sending your initial email and your 3-day followup, where appropriate.
  3. Leave your Program in an Active state
  4. One month later, revise your query for Group #2.
  5. Add those Participants to your Program. Your second group of Participants will then get your initial email and your 3-day follow-up, where appropriate.
  6. Repeat the query edit and activation for Months 3, 4, 5 and 6.

True, this requires some manual work each month, but it’s likely minimal, and you then get the “freshest” query of Contacts, Customers, Senders, etc.

Badge

@matthew_lind,  thank you for your insights and the detailed breakdown of the potential risks!  Luckily, CSM changes won't impact us as we're using a distribution email.

A quick question: why can't we just re-sync every month instead?

Userlevel 5
Badge +4

QQ for clarity -- are you looking at using the new beta advanced JO program builder that allows an evaluate step before the first journey step, or the current program builder (linear programs)?

If you’re using the current program builder, I’d suggest running a no action API call as the first step, so you can bring in a conditional wait step prior to sending the email. That way you could allow all 6000 participants to enter the program every month until they met the criteria you set, while participants who entered but did not meet the criteria could exit without receiving an email. You’d want to make sure they had not received the email in the program entry criteria, though, so once they DID receive it, they would no longer qualify to enter.

If you’re using the new beta builder, you could use the evaluate step to do the same thing, with the catch-all step just routing them out of the program.

I’d refer to what @alizee and @matthew_lind recommended on the segmentation! 😃

Userlevel 5
Badge +1

Yes you can do specific filtering to get to groups like @alizee and @matthew_lind but you could make it more dynamic than that. As the problem with grouping like this is that it is not scaleable/needs constant admin intervention to ensure groups are not getting too big due to additions.

 

You cna make it more dynamic if you implement a ranking system. Stealing from @phani_kumar in his thread here, 

 

You can use the created date instead of ARR which would give you a rank of all the contacts that will be added to your JO 1-X. 

 

Then you simply take a count of all the contacts that will be emailed and then divide by three. Merge that number 3 with your ranked data and do an if rank <= to your count divided by 3. Or if you want a hardcodded number <= 1000.

Though I imagine it depends on what/how you are trying to accomplish. If this is a one time list I would just build an object to house the contacts and group them into cat 1, 2, or 3.

Reply