Sync Typeform with Salesforce to automatically map Typeform fields every time your typeform is submitted. This article explains how to create and update leads, accounts, opportunities, contacts or cases.
What you need:
- A Typeform Business account
- A Salesforce account
- Administrator rights in your Salesforce account. If you’re not an admin, you’ll need to contact them to complete the installation
Installing the Typeform app in Salesforce.
1. Log in to your Typeform account, and open the typeform you wish to connect to Salesforce.
Click on the Connect panel in the top menu bar. Enter 'salesforce' in the search bar, and click the Connect button next to the Salesforce app:
2. A dialog will appear with a link. Copy and paste the link into your browser to continue with the integration. Note that you need to be an admin in your Salesforce organization to continue with setup.
3. Log into your Salesforce account (if necessary) and you'll be prompted to start the installation process. Select which users you want to use the package. Click Install:
4. Next you’ll see a notification, explaining that the package works with Typeform’s API. If you’re okay with that, tick the check box, and click Continue:
5. Sit back and let Salesforce do its thing:
The installation is now complete:
Now you're ready to connect connect typeforms to Salesforce! Remember, only users you chose in step 2 will be able to do this.
Setting up the app in Salesforce
1. Click on the App Launcher icon, and select the Typeform app:
2. This will open the Typeform app. It consists of 3 main tabs: Admin, Forms and Errors. Go to the Admin tab. You’ll see the beginning of the setup wizard. Click Get Started:
3. The next screen requires you to link your Typeform account to Salesforce. Only one account can be linked, so if you’re working for a shared Typeform organization, make sure the forms you need are in shared workspaces your account has access to.
Click Connect to Typeform.
4. You’ll see a popup asking you to log into Typeform. Enter your login details.Then take note of the permissions Salesforce needs from Typeform, and click Accept.
The popup will close. If needed, refresh the page to ensure your Typeform account has been linked to Salesforce.
5. Next, you'll be taken through the Schedule section. This is where you define the frequency that you want Salesforce to pull the following from your Typeform account:
- the list of forms available to in your Typeform account
- sync the responses from these forms.
The data you collect from Typeform will be synced based on the settings you define now. To get that data, click Run Now on the relevant section:
6. To schedule this automatically, choose a schedule, and then click Schedule. You can choose to retrieve forms every 5 minutes, every 15 minutes, every 30 minutes, every hour or every day.
7. If you wish to stop or modify your automatic retrievals, you can always go back to that screen and click on Stop Job.
8. Click Next at the bottom of the screen. The following screens describe the permissions needed within Salesforce and how to customize the page layouts used by the app. Other than that, the app is ready to go!
Next up: mapping your typeforms to Salesforce objects.
Map a typeform to a Salesforce object
We're going to use a lead generation typeform 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:
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 question. In our example, the Lead object requires a last name, an email address and a company, so let’s make sure our form collects this information:
If you try to map a Typeform question that’s not mandatory to a mandatory Salesforce field, you’ll see a warning message, like below:
Tips! You can also map the email hidden field of your typeform to the email field in Salesforce.
6. Click New in the Static Field Mappings section to map a Salesforce field to a static field value. This way the Salesfore field always receives the same value when the typeform is submitted.
For example, the Lead Source Salesforce feed can be mapped to the My Landing Page or the Phone Inquiry static field values.
You can use Static Field Mappings for a Contact Us page, for example. Dynamic Field Mappings are more useful if you're targeting your audience on a recurring basic, and you only want certain fields to be updated. For example, you can do a quarterly NPS survey with only the most recent NPS data reflected. This is a great way to keep data clean instead of creating duplicate contacts! You can also check out this Salesforce help article to learn more about static and dynamic lists.
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. Here you can choose between Create New and Check for Existing.
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: