SalesforcePro
This documentation page assumes you have read over the CRM Integration Overview. If you have not yet read it, please do so now. We also assume that you have a Salesforce account already. This integration requires that you have Freeform Pro. If you currently have Freeform Lite, you can purchase an upgrade to Freeform Pro.
Salesforce Lead CRM IntegrationPro
Salesforce Lead integration includes support for the following:
- Field mapping to standard and custom Lead object fields:
- Text fields:
- String
- Textarea
- URL
- Address
- Picklist
- Multipicklist
- Date/Time fields2.5.4+
- Numeric fields:
- NumberImproved in 2.5.4+
- Phone
- Currency
- There are some limitations to types of fields that can be mapped, such as Lookup fields.
- Text fields:
- Available fields are pulled from the Lead object in Salesforce, which is located at:
- Setup (top right)
- Objects & Fields (left nav)
- Object Manager
- Lead
- Fields & Relationships (top middle menu)
Setup Instructions
Prepare Salesforce's end for Integration
This integration will not work with the Salesforce Essentials plan as it does not have access to the API.
- Open another browser tab and go to Salesforce website and log into your account.
- On the left navigation menu, click on Apps, then click App Manager.
- At the top right corner of the page, click the New Connected App button.
- Fill out the fields in the Basic Information section.
- In the API (Enable OAuth Settings) section, click the Enable OAuth Settings checkbox.
- More fields will appear. In the Callback URL field, enter any valid URL that begins with https (it could even be https://google.com, as we don't use this part).
- In the Selected OAuth Scopes field, select the following permissions from the list and click Add arrow button:
- Allow access to your unique identifier (openid)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- You shouldn't need to fill out any further fields, and then click Save button.
- You will be taken to a new page that lists info about your newly created app, including Consumer Key and Consumer Secret values. You will need to copy each of these values.
- Salesforce gets tricky to navigate, so do yourself a favor and copy and paste these 2 values into a text editor for now, being sure to label each too. You'll save yourself some extra steps later on.
- At the top middle of the page, click on the Manage button.
- At the top middle of the next page, click the Edit Policies button.
- Under the OAuth policies section, adjust the following settings:
- In the Permitted Users field, be sure that it is set to All users may self-authorize.
- In the IP Relaxation field, change the setting to Relaxed IP restrictions.
- Click Save button at bottom of page.
- If you copy and pasted the Consumer Key and Consumer Secret values in a text editor, you can skip these next couple steps:
- To go back to your app to see these values, click on the App Manager navigation item (under Apps)
- Find your app in the list. Then in the right column, click the down arrow, and then click View.
Set up Integration on your site
- If you wish to use a config file for Salesforce credentials instead, please see Alternate Config File Setup documentation further below.
- Go to the CRM section in Freeform Settings (Freeform > Settings > CRM).
- Click the New CRM Integration at the top right.
- Select Salesforce Lead from the Service Provider select dropdown.
- Enter a name and handle for the integration.
- Enter Salesforce credentials in the next 4 fields:
- Paste the Salesforce Consumer Key value into the Client ID field in Freeform.
- Paste the Salesforce Consumer Secret value into the Client Secret field in Freeform.
- Enter your Salesforce account username/email address into the Username field in Freeform.
- Enter your Salesforce account password into the Password field in Freeform.
- Additional configuration options:
- Assign Lead Owner? - Enabling this will make Salesforce assign a lead owner based on lead owner assignment rules in Salesforce.
- Sandbox Mode - Enable this if your Salesforce account is in Sandbox mode.
- Using custom URL? - Enable this if you connect to your Salesforce account with a custom company URL such as
mycompany.my.salesforce.com
.
- At the top right corner of Freeform page, click Save button.
Verify Authorization
- After the integration is saved, it'll return you to the list of CRM integrations.
- Click into the newly created integration.
- Confirm that there is green circle with Authorized in the middle of the page.
Alternate Config File Setup
The Salesforce Lead integration allows you the choice of entering your API keys and credentials via a config file instead if you wish. For more information about Freeform's config overrides, please see Freeform Config Overrides documentation. A brief overview is below:
-
Copy and paste the following code into a new file named
freeform.php
and place it into your Craft/config/
directory:<?php
return [
"salesforce_client_id" => null,
"salesforce_client_secret" => null,
"salesforce_username" => null,
"salesforce_password" => null,
]; -
Replace the
null
value for salesforce_client_id with the Salesforce Consumer Key value. -
Replace the
null
value for salesforce_client_secret with the Salesforce Consumer Secret value. -
Replace the
null
value for salesforce_username with your Salesforce account username/email address. -
Replace the
null
value for salesforce_password with your Salesforce account password. -
Save the changes in the freeform.php file.
-
Your final file should look something like this:
<?php
return [
"salesforce_client_id" => "7SDf7GFDG6O76sd798FdG98s9897F9G7dSFDF9G7sd980G8dfG9FG_aSD650g8dsh7D98g79Fs98ds0788Ps",
"salesforce_client_secret" => "1234567890123456789",
"salesforce_username" => "you@youremail.com",
"salesforce_password" => "yourSalesforcePassword",
];
Salesforce Opportunity CRM IntegrationPro2.5.0+
Salesforce Opportunity integration includes support for the following:
- Field mapping to standard and custom Opportunity, Account and Contact object fields.
- There are some limitations to types of fields that can be mapped, such as Lookup fields.
- Freeform performs a duplicate check on records in the following way:
- Check mapped Freeform field against Account Name field.
- If no match, create a new Salesforce Account.
- Check mapped Freeform fields against Contact First Name, Last Name and Email fields.
- If email address exists in Salesforce Contact, update the existing Contact with other details.
- If no email address match, check if first name and last name exist in Salesforce Contact, then update the existing Contact with all other values including the new email address.
- If no matches at all, create a new Salesforce Contact.
- If Account Name matched, assign the new Contact to the existing Salesforce Account.
- Create new Opportunity.
- Attach Opportunity to existing or newly created Salesforce Account.
- Check mapped Freeform field against Account Name field.
- Freeform will create an Account with the First Name and Last Name mapped to the Contact if you leave the Account Name field empty.
- This is helpful if you are dealing with customers not necessarily belonging to a company or organization, and just wish to have a Salesforce Account matching the Contact.
Setup Instructions
Prepare Salesforce's end for Integration
- Open another browser tab and go to Salesforce website and log into your account.
- On the left navigation menu, click on Apps, then click App Manager.
- At the top right corner of the page, click the New Connected App button.
- Fill out the fields in the Basic Information section.
- In the API (Enable OAuth Settings) section, click the Enable OAuth Settings checkbox.
- More fields will appear. In the Callback URL field, enter any valid URL that begins with https (it could even be https://google.com, as we don't use this part).
- In the Selected OAuth Scopes field, select the following permissions from the list and click Add arrow button:
- Allow access to your unique identifier (openid)
- Perform requests on your behalf at any time (refresh_token, offline_access)
- You shouldn't need to fill out any further fields, and then click Save button.
- You will be taken to a new page that lists info about your newly created app, including Consumer Key and Consumer Secret values. You will need to copy each of these values.
- Salesforce gets tricky to navigate, so do yourself a favor and copy and paste these 2 values into a text editor for now, being sure to label each too. You'll save yourself some extra steps later on.
- At the top middle of the page, click on the Manage button.
- At the top middle of the next page, click the Edit Policies button.
- Under the OAuth policies section, adjust the following settings:
- In the Permitted Users field, be sure that it is set to All users may self-authorize.
- In the IP Relaxation field, change the setting to Relaxed IP restrictions.
- Click Save button at bottom of page.
- If you copy and pasted the Consumer Key and Consumer Secret values in a text editor, you can skip these next couple steps:
- To go back to your app to see these values, click on the App Manager navigation item (under Apps)
- Find your app in the list. Then in the right column, click the down arrow, and then click View.
Set up Integration on your site
- Go to the CRM section in Freeform Settings (Freeform > Settings > CRM)
- Click the New CRM Integration at the top right.
- Select Salesforce Opportunity from the Service Provider select dropdown.
- Enter a name and handle for the integration.
- Enter Salesforce credentials in the next 4 fields:
- Paste the Salesforce Consumer Key value into the Client ID field in Freeform.
- Paste the Salesforce Consumer Secret value into the Client Secret field in Freeform.
- Enter your Salesforce account username/email address into the Username field in Freeform.
- Enter your Salesforce account password into the Password field in Freeform.
- Additional configuration:
- Close Date - Enter a relative textual date string for the Close Date of the newly created Opportunity (e.g.
7 days
). - Stage Name - Enter the Stage Name the newly created Opportunity should be assigned to (e.g.
Prospecting
). - Sandbox Mode - Enable this if your Salesforce account is in Sandbox mode.
- Close Date - Enter a relative textual date string for the Close Date of the newly created Opportunity (e.g.
- At the top right corner of Freeform page, click Save button.
Verify Authorization
- After the integration is saved, it'll return you to the list of CRM integrations.
- Click into the newly created integration.
- Confirm that there is green circle with Authorized in the middle of the page.
- That's it! You can now use this integration inside Composer.