FormAssembly can do all sorts of cool things with Salesforce, but some of them take a little practice to learn. In a webinar held just a few weeks ago, we went over some Salesforce tips and tricks that are helpful for people who are just beginning to level-up their FormAssembly-Salesforce use or just want an extra edge to make their current practices easier and smoother.
Today, we’re going to recap the main topics from the class, which included:
- Creating Lookups
- Updating Campaign Members
- Creating Skip-If Formulas
- Using the Connector Log
- Using the Salesforce Object Reference Page
The example form we’re using is a common use that we see here at FormAssembly. It’s an event form that can lookup and update contacts and campaign members in Salesforce, display different information depending on the event someone is registering for, calculate the cost of tickets and take payments.
In this blog post we’re going to cover how to create lookups, and add campaign members through a FormAssembly form.
Creating Lookups & Updating Campaign Members
To start, we’re going to make our way into the FormAssembly-Salesforce connector. If you haven’t used the connector much before, you might want to take a look at how to create and update records in our documentation.
Below you’ll see we’ve already set up the first step, which will update a contact or create a new one if one doesn’t exist. This step starts with a lookup that will check the email address entered in the form with the email addresses of your contacts in Salesforce. To set this up, create a new connector step and click update from the the dropdown menu on the top left, then set your look up parameters.
You can see above that we’ve set up our connector to create a new record if the lookup doesn’t find an email match, update a record if it finds one match, and create a new record if it finds multiple matches. We’ve also mapped three form fields (Last Name, Email and First Name) to corresponding Salesforce fields so that any new records that are created will have that information. All of this can be customized within this connector step.
The next step in this form is to look up a campaign based on information entered within a form.
Above, you can see that we’ve set the connector to look up a Campaign, and we’re finding that campaign using the field in our form that allows respondents to select which event they’re going to attend. We’ve set it up so that the send-as value for each event matches the campaign ID from Salesforce. This will help later in the connector by allowing you to create related records.
The form will lookup that ID in Salesforce and, just like the last lookup we set up, there can be different customizable actions depending on what the connector finds.
The next task is to create a step that updates a campaign member record. (A campaign member, if you’re not a heavy Salesforce user, is a native Salesforce object that acts as the link between a campaign and a contact or lead.)
The way we’ve set the third connector step below, is to update a campaign member if their contact ID and campaign ID match information we have for them in Salesforce. Otherwise, we’ll create a new campaign member record for them.
Tip: You can add notes to connector steps for internal use. Here, we’ve added a note to remind ourselves that this step is for updating our gala registration campaign. Later on, we’ll make another step for updating the dinner registration campaign.
Next, we have to set the field mapping for this step. We’re going to start by mapping the campaign ID, which gets its value from the form field that allows people to select an event.
Then the contact ID, which will pull its value from the contact step above (that’s the one that looks up a contact by their email address).
Next, we’ll map the status as the text “Responded” so we have a record in Salesforce that they responded.
We’ll end by mapping two custom fields to send the number of attendees and the name of the organization over to Salesforce. Both of these pull a value from our form.
Next we’re going to make another step that updates the other event (the dinner campaign). Right now, this step will look the same as the Step 3 that we just made (except the notes will help you tell them apart). After this, we’ll show you how to create skip-if formulas to make the two connector only run when a particular option is selected in the form and ensure that the only the information you need is sent to Salesforce.
You can easily create a copied connector step that we can use for the dinner campaign by clicking on “Copy Object” (see above).
We’ll also need to remap the Name of Organization and Number of Attendees fields here, as they get their values from different fields in the form for this event.
We’ve done a lot of the groundwork, but to make our connector work correctly, we’ll need to add a Skip-If formula. Formulas can be pretty tricky, but the name of this formula does a good job of describing what it does. It skips a step if a certain condition is present. Let’s dig into that a little.
Here’s a breakdown of a simple skip-if formula:
- @IF – This is the basic function of this formula. It refers to whatever is inside the parentheses and instructs the connector to skip something (a step in the connector) if a certain condition is in place.
- %%tfa_1%% = ”Yes” – This is the condition and the value that it must hold for the form to either skip or not skip a step. If you’re pretty familiar with FormAssembly, you recognize this as what all form field aliases look like. We’ll show you how to find those a little further down. “Yes” just refers to the answer that will activate this formula.
- TRUE, FALSE – These two values refer to what’s going to happen if someone Answers “Yes” to the field with the alias %%tfa_1%%. If the condition is true (i.e. if tfa_1 does equal yes) then it will do whatever comes first (in this case TRUE which means skip). If the condition is false (i.e. if tfa_1 does not equal yes) then it will whatever comes second (in the case FALSE which means do not skip).
Here are some examples of different ways you can construct a skip-if formula and how it can be used.
- The first formula below has blank quotes for what %%tfa_1%% has to equal. This means that if a certain field is blank, the form will skip a step, otherwise it won’t.
- The second formula has an @OR formula embedded inside it. This means that one or the other of these conditions needs to be true for the form to skip.
- The last example has an @AND formula, which means, you guessed it, both of these conditions need to be true for the form to skip.
So now let’s move on to creating the formula for our event signup form. First, you’ll need the aliases. You can find a link to the list of all the aliases for your form fields on the bottom of your Form’s notifications page. Scroll down, and you’ll see aliases for each form field.
We’ll need to grab the aliases for our event drop-down menu as well as the exact text of each event choice option (the gala or the dinner). Remember to copy only the event text and not add any extra spaces or forget a character. We’re going to be using this text in the formula, and if it’s off at all, our formula won’t work correctly.
Once you’ve grabbed the info you need for the formula, go back into the connector and navigate to step 3 where you’ll select the option to “Skip this step if…”
In the formula box for the Gala step, you would enter the following formula:
@IF(%%tfa_13%%=”Monday Night Gala($100 Per Person)”, “FALSE”, “TRUE”)
In English, this formula is saying, if someone selects the Monday Night Gala, don’t skip this step (FALSE=Don’t Skip); if they enter something else, do skip this step (TRUE=Do Skip).
Next we want to copy the same formula and use it in step four of the connector with just a small change. The modified formula will read:
@IF(%%tfa_13%%=”Monday Night Gala ($100 Per Person)”,”TRUE”,”FALSE”)
That’s saying, go through this step only if someone clicks something other than the Monday Night Gala. The only other option is the Tuesday Night Dinner, so that’s the campaign that will get updated with the correct information. We used the Field Editor instead of the formula box to enter the formula for step 4 (see below). You can use either method, but the Field Editor gives you more space to work with and will check your formula syntax for you as well.
Reading the Connector Log
A quick, easy way to check if your connector flow is working the way you intended is to check the connector log. Above you can see the entries that correspond to submission for our sample form.
In the image below, you can see what the information looks like when it’s been sent to Salesforce. This picture shows a Campaign Member that’s linked to both the campaign and the contact.
Salesforce Objects Reference in FormAssembly
One last tip we’ll offer is to make use of the Salesforce Objects Reference in FormAssembly. This is an area of FormAssembly where you can view all the available objects and spot the causes of some errors.
If you’re getting incorrect type errors for your forms, you can check the Objects Reference to see if you’re allowed to send data to a certain form.
There you go! That’s how to use some nifty Salesforce Tips and Tricks to create an event signup form and update existing campaign members. You can view a full recording of the class here; and as always, reach out to us on support if you have any questions!