Unattended Drip Campaigns with Time-Based Workflow
Earlier I faked a drip email campaign, but here’s the real deal. Matthew came up with this idea and I think it’s brilliant.
Basically, you mark that a Contact should start a drip email series, and from then on they will receive your templated emails automatically, at the time intervals you configure.
The sending of these emails requires no User intervention, and no code is necessary to make this work–it’s unattended drip emailing from plain vanilla Salesforce.com.
I love working on a team, because someone often comes along with a different approach to a problem that I was blind to. This is so much better than what I was coming up with. We still have a limit of 200 emails a day, but because these are going out daily rather than in large batches, we have more ability to level our sends, staying under 2000.
I’m not sure why workflow sends to Contacts was a blind spot for me. I guess I have been thinking about email as large-batch sends, rather than thinking about them as one-offs. Or maybe I still haven’t recovered from summer vacation…
Thanks again to Matthew for this great idea. If anyone can think of limitations we’re not considering, or ways of doing this better, please post a comment!

August 7th, 2008 at 9:47 am
This is a great idea. Just wanted to point out to everyone that another limitation of this type of workflow is that you are not going to have the activity history that a certain contact received 10 emails. Also, no HTML tracker so you could use that date field to develop a call list for follow-up, but you can’t report on the number sent in a given timeframe. Still, this idea is helpful and I will definitely implement when appropriate.
Thanks for the info!
August 7th, 2008 at 9:51 am
Good point–I noticed that in my first test send. It would be easy, though, to create a “Create Task” workflow task to create a closed activity that records each send. I will definitely do this so that these sends can be shown in a dashboard component. That way you can monitor the number of sends going out each day to make sure you don’t cap out at 2000.
By recording tasks, you also could go back and find any gaps if you do run into the 2000 cap. Wouldn’t be fun, but at least it would be possible.
August 8th, 2008 at 3:23 pm
I came up with a similar approach to what Matthew did. See my blog post at http://usergroups.salesforce.com/non_profits_bayarea/2008/06/creating-an-aut.html and the instruction sheet at http://usergroups.salesforce.com/non_profits_bayarea/files/email_welcome_stream.pdf.
In brief, the main difference in what I did was to use the MOD and CASE functions in a formula field to calculate the subsequent Tuesday after the date someone signs up, and then to start the drip campaign on that Tuesday. The advantage of this approach is that you can have your drip emails get sent on higher-readership days (such as Tuesdays and Thursdays) instead of whenever someone signs up. However, Matthew’s approach has the advantage of being able to customize the drip campaign to start whenever you want it to. Clearly this is something that would depend on the organization’s business processes. Matthew, you, and I were all approaching this as proof of concept.
A minor point: I’ve found that if you use hours instead of days in the workflow timing you can have your emails get sent at a specific time of day instead of at midnight (e.g. 57 hours would be 2 days from now at 9:00 am, whereas 2 days would be two days from now at midnight).
One point I’m not sure about is whether the 2000-email limit applies to workflow emails or not. I thought I’ve heard someone from Salesforce say that the limit only applies to mass emails and not to workflow-triggered emails, but I can’t track that down right now.
August 8th, 2008 at 7:40 pm
Very nice! Thanks. Instead of using a custom field to enter manually the date and use this field to trigger the rule, we create a fields for Lead Age. Lead Age is a custom field (type Formula) that calculates the age of the lead. Here the formula: TODAY()-DATEVALUE(CreatedDate). Than because this field is calculated automatically we have set the workflow to be trigger when Lead Age equals 0. This way, everytime a lead is created, automatically the Drip is triggered. We would use other Criteria like Lead Source to simply the trigger the rule to specific leads upon creation.
August 9th, 2008 at 9:29 pm
Great stuff, Seth. Thanks for passing it on. We haven’t verified that these would fall in the 2000 daily limit, but I’m assuming they would.
August 9th, 2008 at 9:31 pm
Thanks Alex, that’s a good idea. I think we’ll probably just go off a checkbox when we implement this. Seems to be the most minimal implementation. Dates are nice, though, as they show more info.
August 21st, 2008 at 4:32 pm
[...] and trigger based email campaigns with just a little planning and training. Steve Andersen shows how it’s done in a little video on his [...]
February 4th, 2009 at 6:45 am
Great blog post. How would we go about exiting a Lead from a workflow? i.e. if the Lead responds to a drip email, how do we ensure that they don’t receive further emails in the workflow?
February 4th, 2009 at 8:50 am
Right now it’s manual. But you could create an Inbound email handler that could process unsubscribes, or a Salesforce Sites page.
March 4th, 2009 at 4:38 pm
[...] a system for sending out daily emails to Contacts that uses Time-Based Workflow. We’ve done some work in this area before, but now it’s really starting to come [...]
March 23rd, 2009 at 1:33 pm
Hi – Thank you for posting the video – I am not seeing an option for “Email” – I see options for “Email Alerts” which are internal or for “Outbound Email” which don’t let me select templates…. basically I can’t match what I see your video – is there some configuration setting I need to tunr on ? (Enterprise user)
Thanks