Salesforce Integration Setup
Connect Surface to Salesforce to automatically sync leads, contacts, and activity data. Surface creates or updates records in real-time and maintains two-way sync for enriched fields and lead scores.
You'll need Salesforce admin permissions to authorize the integration and configure field mappings.
Connect Salesforce
In Surface, navigate to Settings > Integrations
Click Connect next to Salesforce
Sign in to your Salesforce account when prompted
Review the requested permissions and click Allow
Surface will verify the connection and sync your Salesforce schema
The integration typically completes in 30-60 seconds.
Configure sync settings
Choose how Surface creates records:
Lead vs. Contact. Decide whether to create new submissions as Leads (standard) or Contacts (if you skip lead qualification in Salesforce).
Create or update. Surface can create new records or update existing ones if it finds a match by email.
Sync frequency. Real-time (instant), every 5 minutes, or hourly batches.
Deduplication. Enable to prevent creating duplicate leads if someone submits forms multiple times.
Most teams create Leads for new prospects and update Contacts for known customers. Configure this based on your Salesforce lead lifecycle.
Map form fields to Salesforce
Surface auto-maps common fields (First Name, Last Name, Email, Company, Phone). For custom fields:
Go to Settings > Integrations > Salesforce > Field Mapping
Select a Surface form field on the left
Choose the corresponding Salesforce field on the right
Repeat for all fields you want to sync
Save your mapping configuration
Surface syncs both standard and custom Salesforce fields. Create any custom fields in Salesforce first before mapping.
Sync enriched data
Surface enrichment fields sync to Salesforce automatically:
Lead Score → Custom Lead/Contact field
Company Size → Number of Employees
Industry → Industry (standard field)
Technographics → Custom multi-select or text field
UTM Attribution → Campaign fields or custom UTM fields
You'll need to create custom fields in Salesforce for Surface-specific data like lead score and intent signals.
Create custom fields in Salesforce before mapping them in Surface, or the sync will fail for those fields.
Set up lead assignment
Surface can assign leads to Salesforce users:
Owner assignment. Map your Surface routing rules to Salesforce users by email. Surface assigns the lead to the matching Salesforce user.
Queue assignment. Route leads to Salesforce queues instead of individual users for round-robin distribution.
Default owner. Set a fallback owner for leads that don't match any routing rule.
Configure in Settings > Integrations > Salesforce > Assignment.
Track form activity
Surface logs form submissions as Salesforce Tasks or Campaign Members:
Tasks: Creates a task on the Lead/Contact each time they submit a form, with form name and timestamp.
Campaign Members: Adds the lead to a Salesforce campaign matching the form name or traffic source.
Choose your preference in the integration settings.
Test the integration
Before going live:
Submit a test form submission with a unique email
Check Salesforce to verify a Lead was created with all mapped fields populated
Verify enrichment data (score, company size) synced correctly
Confirm the lead was assigned to the right owner based on your routing rules
Fix any mapping errors before enabling the sync for live traffic.
The Salesforce integration syncs in real-time—leads appear in Salesforce within seconds of form submission, enabling instant sales follow-up.
Troubleshooting
Leads not syncing: Check that your Salesforce user has create permissions on Lead/Contact objects and that required fields are mapped.
Assignment failing: Verify that the assigned Salesforce users exist and are active. Email addresses must match exactly.
Custom fields not populating: Ensure custom fields exist in Salesforce and are the correct data type (text, number, picklist, etc.).