Enhance your marketing efforts with perfectly timed, personalized communications that feel like a conversation, not persuasion. With programs, you can leverage your contact base to arrange automated message sequences that will help you accomplish short-term and long-term marketing goals. Here are the first steps you need to take to create and launch your first program.
Before you begin
Create a folder in the Shared folder directory that contains all of the content for your programs. Creating a program requires that your contact source (database or query) and content (email, SMS, or mobile app messages) be contained in a shared folder. Shared folders also ensure proper organization of your program files. Org admins can restrict user access to certain databases or queries as needed.
Note: You can also create a program without a contact source and complete it later, which is useful e.g. when you need to wait for campaign resources from other teams.
Use queries as your contact source
To target relevant contacts and create the most tailored setup rules for your program, we recommend using a query of your database.
Programs supports queries that contain:
- Profile data
- Behaviors
- Relational table criteria
When a query is selected as a contact source, the program makes a copy of that query to preserve the current criteria as of that day and time. The copy ensures the original query is protected if another user changes that query outside of the program. The query does not update automatically if changes are made – to update, you need to deactivate the program and reselect the query.
Build a program
- Go to Automation > Programs in the Campaign menu.
- In Programs menu, click the button Create new program.
- Click a template of your choice:
- Welcome – an automated welcome message
- Autoresponder – a response to a specific customer action
- Onboarding series – a sequence of messages at set time intervals
- Customer satisfaction – a feedback survey and thank-you message
- Cart abandonment – a reminder of the last action a customer took on your website
- Lifecycle nurture – a series of messages after a customer's first purchase
- Blank – an empty template to build your program path from scratch
- Go to Settings and complete the initial setup for your program.
- Add a specific name to your program.
- Add notes (optional).
- Select a time zone. It automatically defaults to your time zone, but can be changed if the target audience is in a different location. Messages are sent based on this setting.
- Assign a tag(s) for the emails sent from this program. It will be easier to filter program data and create reports for specific emails.
- Select the Program approved for sales option to allow sales or marketing teams to add contacts using Contact insight in Salesforce. This way, you can manually add contacts that are not fulfilling the program entry criteria.
- Select a contact source: a database or query. We recommend testing your program before the final launch – in that case, choose a test query first.
- Select the entrance criteria for your program:
- Add all contacts from the contact source: Select Once when the program is started to add all qualifying contacts into the program at first activation or Continuously while the program is active to add all currently qualifying contacts and periodically check for new ones.
- Allow contacts to repeat program: When selected, contacts can repeat a program an unlimited number of times if they again match the campaign's entry condition. Contacts must exit before they can re-enter a program.
- Add contacts when the following events occur: Choose the behavior a contact must perform before they are added to the program. Contacts can only qualify for one event at a time, but you can select more:
- Opted in to a database
- Clicked link in an email
- Submitted a web form
- Downloaded a file
- Custom web tracking event
- Universal behaviors
- Do not automatically add contacts to this program stops contacts from being automatically entered into a program. Use this option together with Program approved for sales to add contacts manually via Contact insight or using an API call via AddContactstoProgramAPI.
- To enroll contacts that will be most likely to accomplish the goal behind your program, choose Limit to contacts that match rule.
- Click the Setup rule link to open the rule builder and choose which actions trigger the program to add a contact.
- Set up your rule. Select Profile or CRM opportunities.
- Profile: Select either the Data fields or the Contact list option. Data fields allow you to create a query from one or more fields within the database. Contacts list offers the option to select a contact that is or is not in a specific contact list.
- CRM opportunities: This option only displays when a CRM database is selected for the program.
- Determine when message sends occur.
- Only send messages between the hours of: Select the hours in which emails are sent. If a contact arrives at a step outside of these hours, messages are held and scheduled for the next available time window.
- Only send messages on weekdays: Send emails only during the week. If a contact arrives at a step over the weekend, messages are scheduled for the next weekday.
Note: This setting does not work for the first message in an event-triggered program or if Send Time Optimization (STO) history exists.
- Specify the run dates of the program:
- Start program on: The date contacts begin entering your program. Scheduled future dates begin at 12:01 AM that day. If left blank, the program uses the current date after you activate.
- Last contact added on: The date after which contacts can no longer be added to the program. Use this feature if your program has an end date or time sensitive goal.
- End program on: When you set up a program, if you choose to end the program by a specific date, the program does not run on that specified day. For example, you choose to have the program end on 9/6/2019, the program ends at midnight on 9/5/2019 and therefore does not run on 9/6/2019.
- Click Save and edit flow to go to programs canvas. You can go back to Settings and make further edits anytime.
- Add and arrange objects for your desired program flow. Drag and drop the program steps and actions to the canvas. Hover over each element to see the Configure or Delete options.
- Click Activate to test your program and make fixes where necessary. Testing your program can help you achieve the best possible performance after the final launch – definitely worth your time.
- Deactivate the program and update your contact source to the desired production database or query from the same parent database.
- Reactivate your program.
Tips for testing programs
- Calculate the query to ensure it qualifies the expected number of contacts.
- Test lists cannot be used for a contact source, but you can create a query to include test contacts from the selected parent database.
- For program tests, use a test query from the same database you plan to use to launch the program. Once the program is active, you can only change the contact source query to a different query of the same database.
How contacts flow through a program
Contacts move through a program flow after they qualify for entry. They proceed forward until they reach a rule or set wait interval that stops them. A program runs in cycles through the day, rechecking for contacts that are ready to move forward.
Programs frequently asked questions
How many programs can run at the same time?
Each organization has 10 programs upon setup but this number can be increased by contacting client support. You can view your quota for active programs on the View programs page. Look for Using 1 of 10 active programs above the list of programs to see how many active programs you are using.
How many objects can my program include?
In a program, each step, update profile, percent split, decision path and decision object is counted. Redirects and exits are not counted in the object limit. As a user approaches the allowable limit of 200, a notification displays. When the object limit is reached, the palette is disabled and no more objects can be dragged onto the canvas.