We wrote a blog a while back describing how you might design and build your own Salesforce Drip Campaign system (also known as a touch marketing campaign, email autoresponder, or automated email marketing). You can read that blog here.
Given the interest in that topic, we decided to just go ahead and write the application and make it available to our clients. Here is a link to our website where you can purchase that application if you are interested. I thought I would take this opportunity to explain the application, more of the technical side.
What is Drip Marketing?
In case this term is new to you, let me provide a quick explanation of what a drip marketing campaign is. The main idea behind drip marketing is a steady “drip” of scheduled prospect touches based on a start date. A “touch” might be an email, a call, a direct mailer, a visit – whatever you think might help the prospect take a step towards buying your product. It may also be referred to as a "Touch Campaign"or "Automated Email Marketing" or even "Auto Responder". Many terms have been applied to this concept, but the main idea is the same: send emails to your prospects automatically on a schedule. Since it is easy to do so, our application also includes, in the same process, the means to schedule tasks for your users.
Drip Marketing Methods
There are a few different ways that a Salesforce Administrator could provide their marketing team with the means of sending out emails or scheduling calls for their reps automatically based on a given start date. The least expensive approach is to use time based workflow rules which are already built into Salesforce.com. While this is possible, it is cumbersome and not very versatile. You end up having to create a lot of rules and if you want more than one "track" into which a given lead/contact is associated, it gets doubly complicated.
There are several third party applications available via the app exchange that have a built in capability to do drip marketing. The main downside of these is their complexity, the fact that they are not native to Salesforce.com, and their cost.
The Snapptraffic Drip Marketing Application
Which brings us to the idea of the custom application. We have written this application in various forms many times over the years. Sometimes it was geared toward an opportunity, sometimes it was used to create jobs that internal reps would do on behalf of their clients - but the main idea was the same: schedule the auto creation of tasks and the auto sending of email notifications.
If we were going to make an application more universally useful, then we figured it should be based on the Campaign object and be able to create emails and tasks for Salesforce Users against Leads and Contacts which they own.
To this end, we made a custom object called "Autostep" which has the Campaign object as its parent. This autostep object has two record types: Email and Task. It also has other fields relevant to their respective type. Relevant to both types is the "Day" field. This field is the day upon which the step will be executed, resulting in either the creation of a task or the sending of an email.
If the campaign is active and their are properly formed autostep records under the campaign, then when a lead or a contact is added as a member of that campaign, the associated steps will be executed on the relevant day.
Salesforce Scheduled Batch Process
The Salesforce system utilized that makes the task or sends the email is scheduled batch apex. We have written a script of code that looks at all the active campaigns, determines if there is an autostep record associated with the campaign, then finds all leads and contacts that were made members of the given campaign. The day field of the autostep is used to find the member creation date, which is simply the date that the lead/contact was added to the campaign. The leads/contacts with that member creation date are the targets for that autostep. In the case of tasks, we also incorporated the means to provide a user with "work days", which means that the task is created a certain number of days before its due date to give the user time to accomplish the work.
Then based on the record type, the appropriate action is taken. If the autostep record type is email, then the system retrieves the email template noted on the autostep record, populates the merge fields for the target leads and contacts, then sends the emails. We also have the system create an activity history at that time. When the record type is task, the system creates the task, uses the subject line of the autostep to populate the subject of the task. Comments in the task come from the comment field of the autostep. Notification of the new task is made to the user if that is selected on the autostep record. These tasks are created as open tasks initially and when completed by the user are moved into history.
Power of this Method
Using this simple approach (autostep object and batch process), we can easily add and remove leads and contacts from any drip campaign by adding them as a member to the appropriate campaign. The system will automatically take care of the rest. You can use any automated or manual method to move your leads and contacts into and out of these campaigns. Web to Lead forms can be configured to do an auto association to a campaign, and once configured that way, can allow your leads to automatically be dropped into the drip campaign. Once a user makes contact and begins the sales conversation, a trigger could be written to automatically pull the lead from the campaign. This could also be done manually by the sales rep if desired.
It might be desirable, for example, to associate a lead on a certain "track" (Campaign) until someone is able to make contact with them, then upon initial contact, assign them to a different track. This method makes it simple to move your targets from track to track as their relationship with you changes.
Get the Application
If you would like this application, please contact us. Again, you can reach us here. We will install the application for you and even spend some time on the phone teaching you how to use it.
Showing posts with label salesforce automated marketing. Show all posts
Showing posts with label salesforce automated marketing. Show all posts
Salesforce Drip Marketing
Our clients have frequently asked for help with drip marketing systems for their Salesforce.com systems. There are quite a few options for solving this problem, but I'll detail my favorite below.
(We later wrote this application and are making it available for sale and you can read about the specifics here.)
At the high end there are some third-party applications available on the Salesforce App Exchange that have drip marketing systems built in, but they are surprisingly expensive. So for the purpose of this blog, I'll restrict my ideas to those you could build yourself (or get our help building).
To frame my comments below, let me explain some terms I'll be using: "Touch Track" and "Touch Point". A "Touch Track" is a way of noting the various points along the way that a lead or contact will be "touched" ("Touch Point") as a particular drip marketing campaign is carried out. For example, you might have a touch track with 2 touch points, the first being an email 3 days after the prospect is added to the track, then scheduling a sales rep to make a call attempt 4 days later. You'll see systems like this called Salesforce Automated Touch Campaign or Salesforce Drip Marketing - and probably a few other variations.
So lets say we call this object the "Autostep" object, our data model for this system would look like this:
The manager of the system could then simply create a campaign for a touch track. Later, leads and contacts would be added as campaign members. The steps of the touch track would each be individual records in the Autostep object. This object could have a number of fields, depending on the level of sophistication desired, but here are a few I think would be essential:
- A lookup to the parent campaign
- Days until Action: Defines the day on which this step would be executed. I'm thinking this would just be a number field and would indicate the number of days after campaign membership creation (the day the lead or contact was added to the campaign) that the autostep would "fire" against the associated lead or contact.
- AutoStep Record Type: Options for Email, Task, Event or other desired actions like "Post Card". This is a user interface consideration. The record type lets us have different page layouts for fields that may differ based on information needed for the type of action taken. For example, Work Days (noted below), wouldn't be displayed on an Email Step type, but you would want the Work Days field displayed for Tasks, and record types provides the means to choose the appropriate page layout.
- Work Days: this would only apply to a task assigned to an internal Salesforce user and it is the number of days that you want to provide to the worker to accomplish the task. So let's say a task is due on the 10th and you want to provide the worker 5 days to work on the task. The system would make the task 5 days before it is due.
- User: we need some method for identifying the responsible user. The task may define an actual user or tell the system to use the lead/contact owner, or account owner, or a certain role, etc - again, this depends on the level of sophistication that you want.
- Subject: a word or phrase that would be entered into the subject of the event or task
- Comments: text that would be entered into the comments or description field
- Template ID: the record ID of the email template that the system will send
An APEX scheduled batch process can then be written that executes every night, evaluates all the campaigns where autostep records exist, look at the "Days Until Action" field, identify the campaign member records that qualify for an action, and take that appropriate action.
- This system takes advantage of the existing system of campaigns, the advantage being that these names can be provided via the campaign to other major systems such as third party email providers.
- Since this is a custom system already, when a need arises, the system can be further customized to include new functions. If the workflow method described above is used, it only has the capabilities available to the workflow rule - it can't be customized.
- Unlike the workflow rules, the steps can be easily modified by adding and removing autostep records. To modify a time based workflow rule you have to deactivate it and delete all future scheduled activities - meaning a simple change can completely disrupt ongoing processes.
- Salesforce Web 2 Lead can add a lead to a campaign automatically, so a touch campaign against a new lead can be initiated upon their form submission.
Note: when using the native Salesforce system for Drip Marketing Campaigns, Salesforce.com is sending your emails for you and they have a limit of 1000 to the number of emails you can send each day. You'll want to keep that in mind as your campaigns grow in size. But as with all custom development, we can almost always find a way around problems like that. If you do find yourself running up against email limits, the system could simply add the send requirement to another custom object handled by its own scheduled batch which has the responsibility of sending 1000 emails a day. When over the limit, the remaining emails could be sent the next or following days.
If you would like to discuss this idea further, or get some help developing this functionality, please contact us. It's our business to help companies using Salesforce.com get the most out of their investment. You can find us via www.snapptraffic.com.
(We later wrote this application and are making it available for sale and you can read about the specifics here.)
At the high end there are some third-party applications available on the Salesforce App Exchange that have drip marketing systems built in, but they are surprisingly expensive. So for the purpose of this blog, I'll restrict my ideas to those you could build yourself (or get our help building).
To frame my comments below, let me explain some terms I'll be using: "Touch Track" and "Touch Point". A "Touch Track" is a way of noting the various points along the way that a lead or contact will be "touched" ("Touch Point") as a particular drip marketing campaign is carried out. For example, you might have a touch track with 2 touch points, the first being an email 3 days after the prospect is added to the track, then scheduling a sales rep to make a call attempt 4 days later. You'll see systems like this called Salesforce Automated Touch Campaign or Salesforce Drip Marketing - and probably a few other variations.
A Workflow Based Salesforce Touch Campaign
So lets review some ways you can do Drip Marketing (aka Touch Campaign) in the native Salesforce.com environment. At the simple end of the complexity scale you can use time based workflow rules (in Enterprise Edition) to kick off emails or schedule tasks. This is fairly simple and can be quite capable for the company that doesn't have very sophisticated requirements. In a nutshell, have a "Touch Track" field on the lead or contact record, then kick off a time based workflow depending on the track selected. You could have multiple tracks depending on the steps that you want executed against the particular record. There will be a time based workflow rule setup for each track. If you're just doing this against both leads and contacts, you'd have another set of these workflow rules for the second object. The steps are contained in the particular workflow.A Better Salesforce Drip Marketing System
A more sophisticated method would be to setup a custom object to contain the steps. A good place to locate this custom object would be as child to the campaign. Then using APEX, a scheduled batch process could be written that executes daily, analyzes the steps under the campaign and how far down the touch track each campaign member is on the day of execution, then takes the action required by the step.So lets say we call this object the "Autostep" object, our data model for this system would look like this:
The manager of the system could then simply create a campaign for a touch track. Later, leads and contacts would be added as campaign members. The steps of the touch track would each be individual records in the Autostep object. This object could have a number of fields, depending on the level of sophistication desired, but here are a few I think would be essential:
Useful Autostep Fields
Various fields would be needed on the Autostep object. Some I note below would be essential, others maybe not so much - the real requirement would be determined by the functionality that you required. Here are some that I think would be useful:- A lookup to the parent campaign
- Days until Action: Defines the day on which this step would be executed. I'm thinking this would just be a number field and would indicate the number of days after campaign membership creation (the day the lead or contact was added to the campaign) that the autostep would "fire" against the associated lead or contact.
- AutoStep Record Type: Options for Email, Task, Event or other desired actions like "Post Card". This is a user interface consideration. The record type lets us have different page layouts for fields that may differ based on information needed for the type of action taken. For example, Work Days (noted below), wouldn't be displayed on an Email Step type, but you would want the Work Days field displayed for Tasks, and record types provides the means to choose the appropriate page layout.
- Work Days: this would only apply to a task assigned to an internal Salesforce user and it is the number of days that you want to provide to the worker to accomplish the task. So let's say a task is due on the 10th and you want to provide the worker 5 days to work on the task. The system would make the task 5 days before it is due.
- User: we need some method for identifying the responsible user. The task may define an actual user or tell the system to use the lead/contact owner, or account owner, or a certain role, etc - again, this depends on the level of sophistication that you want.
- Subject: a word or phrase that would be entered into the subject of the event or task
- Comments: text that would be entered into the comments or description field
- Template ID: the record ID of the email template that the system will send
Executing the Touch Campaign
To target an individual in the salesforce drip campaign, simply include that person's lead or contact record as a member of the relevant campaign. The campaign, as a reminder, is the "container" of all the various autosteps - it becomes, in essence, the salesforce touch campaign. The kickoff date will be the created date of the campaign member record (or other relevant field if requirements dictate).An APEX scheduled batch process can then be written that executes every night, evaluates all the campaigns where autostep records exist, look at the "Days Until Action" field, identify the campaign member records that qualify for an action, and take that appropriate action.
Advantages of this Method
- The same system can handle both leads and contacts (by virtue of the campaign member's association with either a lead or a contact record).- This system takes advantage of the existing system of campaigns, the advantage being that these names can be provided via the campaign to other major systems such as third party email providers.
- Since this is a custom system already, when a need arises, the system can be further customized to include new functions. If the workflow method described above is used, it only has the capabilities available to the workflow rule - it can't be customized.
- Unlike the workflow rules, the steps can be easily modified by adding and removing autostep records. To modify a time based workflow rule you have to deactivate it and delete all future scheduled activities - meaning a simple change can completely disrupt ongoing processes.
- Salesforce Web 2 Lead can add a lead to a campaign automatically, so a touch campaign against a new lead can be initiated upon their form submission.
Note: when using the native Salesforce system for Drip Marketing Campaigns, Salesforce.com is sending your emails for you and they have a limit of 1000 to the number of emails you can send each day. You'll want to keep that in mind as your campaigns grow in size. But as with all custom development, we can almost always find a way around problems like that. If you do find yourself running up against email limits, the system could simply add the send requirement to another custom object handled by its own scheduled batch which has the responsibility of sending 1000 emails a day. When over the limit, the remaining emails could be sent the next or following days.
If you would like to discuss this idea further, or get some help developing this functionality, please contact us. It's our business to help companies using Salesforce.com get the most out of their investment. You can find us via www.snapptraffic.com.
Subscribe to:
Posts (Atom)

