Salesforce integration: Mapping and records
This guide covers how to use the Salesforce integration to set up mappings between Typeform questions and Salesforce records and fields.
If you're looking for mapping-related FAQs - check out our Salesforce integration FAQ page.
Haven't set up your Salesforce integration yet? Check out our guide here for installation and setup instructions.
Make sure you've updated to our latest Salesforce Integration to ensure you have the smoothest experience. Click here to update to the latest version, then click the Use this integration button.
Click a section name to jump to that section:
Map a form to a Salesforce object
We're going to use a lead generation form as an example of how you can map them to Salesforce objects.
The heart of the Typeform app resides in the Typeform Forms tab. This is where, once synced, you can access the list of forms from your Typeform account, and start linking them to new Salesforce records.
1. Let’s click on a Form Number to start mapping questions to attributes:
2. If your forms already have mappings into Salesforce, they will appear on this page. You can select one to edit it. In this case, let’s create a new mapping. Click on New Typeform Mapping.
3. Select the object you want to create in Salesforce with this form’s responses. Then click Save & Create Mappings:
4. Select the attributes of a lead that you want to fill with each question, as shown here. You can choose between Create New, which will create a new lead record each time your form is submitted, and Check for Existing, which will check for matching existing records and update those, if applicable, before creating a new one:
Your form field mappings will be dynamic, meaning that they can receive different values each time the form is submitted.
You can also map Salesforce fields to a static value by clicking New in the Static Field Mappings section. This way the Salesforce field always receives the same value when the form is submitted. This can be useful if your form is embedded on a Contact Us page, for example, and you know you'll always have the same value for a certain field for each form submission.
For example, the Lead Source Salesforce feed can be mapped to the My Landing Page or the Phone Inquiry static field values.
In your Dynamic Field Mappings, you can use the Make Key checkboxes to select the values the integration checks to see whether a record already exists or not.
In the example below, the integration will only update the rest of the information if the First Name, Last Name and Email values match with an existing record:
If you're curious about static and dynamic lists in Salesforce, you can also check out this Salesforce help article to learn more.
This table shows compatible mappings between Typeform question types and Salesforce field types:
Typeform question type | Salesforce field type |
Short Text | Text, Text Area |
Long Text | Text Area (long) |
Phone | Phone |
Number | Number |
Date | Date |
Multiple Choice (single select), Dropdown | Picklist |
Multiple Choice (multi-select) | Picklist (Multi-Select) |
Picture Choice (single select) | Text, Picklist |
Picture Choice (multi-select) | Text, Picklist (Multi=Select) |
NPS®, Opinion Scale, Rating | Text, Number |
Website | URL |
Ranking | Long Text Area, Rich Text |
Matrix | Long Text Area, Rich Text |
Hidden Fields | Text |
Variables, scores | Text, Text Area, Long Text Area, Number, Percent |
Response timestamp | Date/time |
All Text fields in Salesforce have a default character limit of 255 characters. To avoid potential errors caused by exceeding this limit, we recommend setting a 255 character limit to the Text questions of your form as well.
Yes/No and Legal questions should be changed to Multiple Choice questions with the options “Yes”/“No” or “I accept”/“I don’t accept” respectively. They can then be mapped onto a Picklist field in Salesforce.
The Salesforce integration currently does not support File Upload or Payment questions.
You can also create conditional mappings between Hidden Fields and regular fields. For example, you can map both a Hidden Field and an Email field to a Salesforce Email field. In this case, the field with a non-null value will be mapped to the Salesforce Email field. The default value of a Hidden Field, for example, "xxxxx", is considered a null value.
5. The Typeform app will help filter out any Salesforce fields that are incompatible, based on the question types of the form.
Make sure that the mandatory fields of the object type you are creating are mapped to a form question. These fields are indicated with (Required) in the Salesforce field list. The form questions you map to these fields should also be required, so that all necessary information is collected and a new Salesforce record can be created for each form submission.
If you try to map a Typeform question that’s not required to a mandatory Salesforce field, you’ll see a warning message, like below:
Tips! You can also map the email hidden field of your form to the email field in Salesforce.
6. From now on, every time Salesforce runs the scheduled job (as you configured above), any new leads collected with your Typeform will be delivered as new leads to your Salesforce object!
You can also check out this article to find out how to map Typeform responses to custom objects in Salesforce.
Edit Field Mappings
Click a Field Mapping and select Edit to check the Record Creation Behavior of your form submissions.
In your Dynamic Field Mappings, you can use the Make Key checkboxes to select the values the integration checks to see whether a record already exists or not.
In the example below, the integration will only update the rest of the information if the First Name, Last Name and Email values match with an existing record: