Salesforce Integration
Connect FormFlow to Salesforce in minutes. Push form submissions directly to Leads, Contacts, Accounts, or custom objects — with full field mapping, validation rules, and deduplication built in.
Setup Steps
Follow these four steps to establish a secure, production-ready connection between FormFlow and your Salesforce org. The entire process takes under five minutes and requires no code.
Create a Connected App in Salesforce
Log into your Salesforce org as a System Administrator. Navigate to Setup → App Manager → New Connected App. Enable OAuth Settings, set the Callback URL to https://app.formflow.io/auth/salesforce/callback, and select the scopes: API, Web, and Refresh token, never expire. Save and note the Consumer Key and Consumer Secret.
Authorize the Connection in FormFlow
In your FormFlow dashboard, go to Integrations → Salesforce → Connect. Enter your Consumer Key and Consumer Secret, then click Authorize. You'll be redirected to Salesforce to log in and grant permissions. Once authorized, FormFlow will display your org's API version and available sandbox/prod environment.
Configure API Permissions
Return to Salesforce Setup → Permission Sets. Create a new Permission Set called FormFlow Integration and assign the following object permissions: Read and Create on Lead, Contact, Account, and any custom objects you plan to use. Assign this permission set to the Salesforce user profile associated with your Connected App's OAuth session.
Test the Connection
Back in FormFlow, click the Test Connection button. FormFlow will send a ping to your Salesforce org's REST API endpoint and return a status confirmation. A green checkmark means you're ready to map fields and start pushing data. If the test fails, verify your OAuth scopes and permission set assignments.
Lead Creation Rules
Control exactly how form submissions become Salesforce Leads. Define duplicate detection logic, assign default values, and route submissions to the right lead owner based on your team's workflow.
Prevent Duplicate Leads
FormFlow checks the Email and Phone fields against your existing Salesforce Leads before creating a new record. If a match is found, the submission updates the existing Lead instead of creating a duplicate. You can also enable fuzzy matching on First Name, Last Name, and Company for higher accuracy.
Set Lead Source and Status
Every Lead created through FormFlow automatically receives Lead Source = "FormFlow" and Status = "Open — Not Contacted". You can override these defaults per form or use dynamic values pulled from hidden form fields. Campaign membership is auto-populated when a UTM-tagged form is submitted.
Assign Lead Owners
Route Leads to specific Salesforce users or queues based on form field values. For example, submissions with Region = "EMEA" can be assigned to user sarah.mitchell@company.com, while Region = "APAC" goes to the APAC Sales Queue. Routing rules evaluate in order and stop at the first match.
Enforce Required Fields
FormFlow validates that all Salesforce-required Lead fields are populated before sending. If a required field like Company or Last Name is missing, the submission is held in FormFlow's queue and an email alert is sent to your admin. You can configure a fallback value (e.g., "TBD" for Company) to prevent blocking.
Custom Object Mapping
Beyond standard Leads, map form fields to any Salesforce object — including custom objects like Customer_Inquiry__c, Support_Request__c, or Event_Registration__c. FormFlow's field mapper supports text, picklist, date, currency, and formula fields.
Map to Contacts and Accounts
Use the object selector to target Contact or Account instead of Lead. When mapping to Contact, FormFlow will look up the parent Account by name or domain and link the record automatically. Fields like AnnualRevenue, Industry, and Phone map directly to standard Account fields with type-safe validation.
Map to Custom Objects
Select a custom object from the dropdown — FormFlow fetches your org's schema via the REST API and displays every available field. Map form inputs to fields like Preferred_Contact_Method__c, Budget_Range__c, or Event_Date__c. Picklist fields enforce valid values; date fields accept ISO 8601 or user-friendly formats.
Create Related Records
When a form submission creates a Lead, you can also create a related custom record in one step. For example, a Product_Demo_Request__c record is automatically linked to the new Lead via the Lead__c lookup field. This keeps your data model intact and eliminates the need for separate Apex triggers.
Handle Mapping Failures
If a field mapping fails — due to a type mismatch, validation rule, or missing required field — FormFlow logs the error and sends a notification to your configured webhook or email channel. Failed submissions are retained in the dashboard for manual review and retry. You can set a retry limit of 3 attempts with 5-minute intervals.
Need help configuring a complex object mapping? Email our integration team or schedule a 15-minute walkthrough with a solutions engineer.
Open Integration Dashboard