Marketo + Chili Piper + Salesforce
The basics of what we're looking to do are:
- Have Marketo write the record to SFDC (if it does not already exist)
- Have Chili Piper update the record with the Event and Ownership (based on Assignee)
- Tell Marketo whether or not your prospect who just filled the form booked a meeting
Ideally, you will want to run the initial sync to SFDC as quickly as possible. This will enable Chili Piper to quickly write the Event to the Lead you create with Marketo, update the Owner to who the meeting was booked with, and populate the "Meeting Type" custom field that Chili Piper writes to when updating the record with the booking details.
If you have not added the "Meeting Type" custom field to your Lead and Contact objects in SFDC, it is highly recommended for the Marketo integration. Please see section 2 here for details.
Marketo + Chili Piper + SFDC Dataflow
The purpose of this document is to outline the recommended data flow between Marketo - Chili Piper - SFDC and to ask questions if needed.
Start: Marketo Form Fill
The primary functionality that Marketo is responsible for is collecting the Lead Information and Creating a Lead Record in Salesforce, if one does not exist. Ideally, Marketo will write to SFDC as quickly as possible. You may have more sophistication in your campaigns, but this will outline the high-level logic.
- Create Marketo Program and Smart Campaign for Chili Piper
2) Create Smart List - "Who" (image below)
- “Fills Out Form Trigger”
- Fills Out Form is "Program.Meeting Request Form Name"
- This Trigger will be the form(s) where you have Chili Piper integrated
3. Create Flow - "What"
Add Flow Step: Sync to SFDC (create lead in SFDC if it doesn’t already exist) - We have the first choice to handle existing contacts. Marketo also won’t create a dupe lead if one already exist.
4. Activate Your Smart Campagin - "When"
Chili Piper - SFDC Lookup
To prevent Chili Piper from creating a duplicate lead in SFDC, you must disable Lead Creation by Chili Piper in your Router:
It is also very important that you enable the setting to allow Chili Piper to create an Event in SFDC when a meeting is booked.
Calendar is display to prospect - What’s happening?
At this point, Marketo will be creating the Lead record in SFDC and the prospect will be viewing the calendar (unless the lead has been disqualified via Chili Piper queue rules).
Assuming the lead was not disqualified, 2 Things can happen now:
- Prospect Books Appointment
- Prospect Exits calendar and Does not book appointment.
#1 When Prospect Books appointment
Once the process books an appointment, Chili Piper begins it’s booking flow. Here’s everything that happens in the booking flow:
- Chili Piper begins it’s retry algorithm to find the newly created lead record in SFDC, based on email match. If it doesn’t find it bc it hasn’t been created yet, it keeps looking util the lead is created. Once the Lead is Found, Chili Piper execute’s workflow into Salesforce with it’s payload. This contains:
- Creating an Event in SFDC, with all the details on the Booked Meeting (Assignee, Date/Time, Queue Used, Meeting Type Booked, etc)
- Reassign Lead Owner from “SFDC Queue” to new Lead Owner based on the “Assignee” of the Meeting per CP setting on Meeting Type.
- Populates “Meeting_Type_CP” custom field on Lead/Contact Object with the name of the Meeting that was booked. This is set in Chili Piper.
- It is important to add this field and have it populated by Chili Piper. This is because the Data Value Change on the Lead/Contact Record in SFDC will automatically update the record in Marketo with this new Value on the next Sync back to Marketo.** More details in “Updating Marketo based on meeting booked or not.”
#2 When A Meeting is Not Booked
In the Event that the prospect closes the calendar without booking an Appointment, Chili Piper will still do 2 things per your Chili Piper settings. These triggers will fire after a meeting is not booked after the timeout period specified in the router. Below are the actions that fire:
- Re-Assign the Lead Owner* from the SFDC Queue to a rep, based on your Chili Piper Queue Rules.
- Note: Per SFDC Best practices, Chili Piper will not reassign an Existing Contact as we assume if it is a Contact then it is routed Correctly. This means we also wouldn’t send an email alert as the email alert is part of this workflow. You will probably want Marketo to send an alert to the appropriate rep as well to make sure reps are still alerted that an existing contact filled out the form.
- This is going to change soon per some request by other clients but wanted to note for now.
- Send Email Alert to New Lead Owner to alert them that the form was filled but no meeting was booked.
Updating Marketo that a Meeting was Booked or Not:
There are a handful of reasons why you want Marketo to know whether a meeting was booked or not. This could be to log an Interesting Moment, Send a “Booked” or “Did Not Book” Email to Reps/Managers, Send an Email to Clients, Change score, Add to Campaign, etc. Basically what you want to do is create a custom field in Marketo called “Meeting Booked” and then have that field updated to “True” or “False”, depending on if a meeting was booked or not.
There are a few ways you can do this, I’ve outlined them below:
- Wait for the Sync Back from SFDC to Marketo to see the “Meeting Type” Data Value Change.
- Pros: It’s Probably the most reliable.
- Cons: The Sync back from SFDC to Marketo can take 5-15 minutes.
Here’s how you would log an interesting Moment using this method:
You’ll see in the flow we have set the “Meeting Booked” value to “True”. This would tell Marketo that a Meeting is Booked based on that value. You then run another triggered Smart Campaign to run your “Booked” flow based on that Data Value Change. After a set amount of time to set the value “Meeting Booked” = False, set Marketo to run a Smart Campaign that looks to see if “Meeting Booked” = “True”. If it is not, have Marketo set this value to “False”.
The above can be a little tricky bc the Marketo <> SFDC sync can sometimes take longer than expected. They say it’s 5 minutes, but I find it can sometimes take up to 11-12 minutes if there is a lot of volume. Basically you just need a reliable way to set “Meeting Booked” = “False” and this can be handled many different ways.
Lastly, we need another Smart Campaign that sets the value back to Null after like a few hours or a day to reset the logic in case the person where to book again.
2) Connect your Chili Piper to Zapier. When a Meeting is Booked, Marketo will fire Zap to Marketo to update the “Meeting Booked” field to “True”. If Marketo does not see this Data Value Change of “Meeting Booked” = “True” after the timeout period set within your Chili Piper Router, the Marketo sets the value for “Meeting Booked” = “False”
Here’s an example video of this:
Pros: Faster update to Marketo on when if Meeting is booked or not.
Cons: You have to rely on another system to be part of the flow.
3) Use Marketo Tracking code to view which Web Page a person visits after the Form is Filled. You configure in Chili Piper which URL to send a client to who 1) Books a Meeting 2) Exits the calendar without booking 3) Is disqualified. Marketo should pick that up and then you can tell Marketo to update the “Meeting Booked” Field depending on which web page they visit.
Pros: Simple and easy to setup. Quick update to Marketo.
Cons: You’re relying on Marketo tracking code, which might not always be reliable. Also, if a prospect closes the window before they get to the thank you page, Marketo won’t run.