LeadFuel
FeaturesPricingBlogDownloadROI Calculator
Sign InGet Started
Made forThe trade show floor

LeadFuel

Capture every booth conversation. Enrich every lead. Automate every follow-up. Stop leaving revenue on the trade show floor.

Get Started →Sign In
Product
  • Features
  • Pricing
  • Integrations
  • Download
  • Blog
  • ROI Calculator
Company
  • About
  • Security
  • Contact
  • Support
Legal
  • Terms of Service
  • Privacy Policy
Contact
  • hello@lead-fuel.com
© 2026 LeadFuel · All rights reserved
Built for operators who own event ROI
Back to Support

Salesforce Integration

Connect your Salesforce org to LeadFuel for automatic contact matching, campaign attribution, and activity logging.

10 minutes7 steps

Before You Start

  • A LeadFuel account with Pro or Enterprise plan (you must be a LeadFuel admin)
  • A Salesforce account with admin or API access
  • Permission to create a Connected App (or External Client App) in your Salesforce org
1

Create a Salesforce Connected App

LeadFuel connects to Salesforce through a Connected App that your Salesforce admin creates. (In newer Salesforce orgs this is called an External Client App — the settings are equivalent but some labels differ; both variants are noted below.)

  1. 1In Salesforce, go to Setup → App Manager → New Connected App (or Setup → External Client App Manager → New External Client App)
  2. 2Fill in the basic info:
  3. 3 - App Name: LeadFuel
  4. 4 - API Name: LeadFuel
  5. 5 - Contact Email: your admin's email
  6. 6Under the OAuth settings:
  7. 7 - Enable OAuth
  8. 8 - Callback URL: https://lead-fuel.com/api/integrations/salesforce/callback
  9. 9 - Selected OAuth Scopes — you need exactly these two:
  10. 10 - Manage user data via APIs (api) — older orgs label this 'Access and manage your data (api)'
  11. 11 - Perform requests at any time (refresh_token, offline_access)
  12. 12 - Important: Full access (full) is NOT a substitute for the api scope. LeadFuel requests the api scope by name, and Salesforce fails the authorization with a generic OAuth error if it isn't in the selected list.
  13. 13Leave the security defaults (Require PKCE, Require Secret for Web Server Flow, Refresh Token Rotation) as they are — LeadFuel supports all of them automatically
  14. 14Save the app
  15. 15Wait 2–10 minutes for Salesforce to activate it
  16. 16Open the app's settings and copy the Consumer Key and Consumer Secret (in External Client Apps these are under Settings → OAuth Settings → Consumer Key and Secret)

If you're not a Salesforce admin, send these instructions to whoever manages your org. They'll need to create the Connected App and share the Consumer Key and Consumer Secret with you.

2

Enter Your Credentials in LeadFuel

Log in to your LeadFuel dashboard and go to Settings → Integrations. Under CRM Integration, select Salesforce as your CRM provider.

  1. 1Client ID (Consumer Key): Paste the Consumer Key from your Connected App — Salesforce and LeadFuel use different names for the same value
  2. 2Client Secret (Consumer Secret): Paste the Consumer Secret
  3. 3My Domain Login URL (optional): Leave blank unless your org requires My Domain login (enter https://yourcompany.my.salesforce.com) or you're connecting a sandbox (enter https://test.salesforce.com)
  4. 4Click Save Changes

You do NOT need to enter your Salesforce instance URL — LeadFuel detects it automatically when the connection is authorized.

LeadFuel stores these credentials securely per-tenant — they're never shared with other accounts.

3

Click Connect Salesforce

In the Salesforce section, click the Connect Salesforce button.

  1. 1You'll be redirected to Salesforce's login page
  2. 2Log in as the Salesforce user you want LeadFuel to act as (this user's permissions determine what LeadFuel can read and write)
  3. 3Review and approve the access request
  4. 4You'll be redirected back to LeadFuel with a confirmation banner

Behind the scenes, Salesforce issues LeadFuel a refresh token — a long-lived credential that lets LeadFuel authenticate on your behalf without storing your password. It's saved automatically; you never have to handle it. LeadFuel also handles Salesforce's modern security requirements (PKCE and refresh token rotation) automatically, so the locked security defaults on External Client Apps work without any changes.

Connect as a dedicated integration user if you have one — that keeps LeadFuel's activity clearly labeled in Salesforce and isn't tied to a person who might leave the company.

4

Test the Connection

After connecting, click the Test Connection button. LeadFuel will attempt to authenticate with Salesforce using your stored credentials.

If successful, you'll see a green confirmation message. If it fails, double-check: - The Client ID and Client Secret are correct (no extra spaces) - The Connected App is active in Salesforce (can take up to 10 minutes after creation) - Your Salesforce user has API access enabled - If your org enforces My Domain login, fill in the My Domain Login URL field and reconnect

5

Link Events to Salesforce Campaigns

For campaign attribution to work, you need to link your LeadFuel events to Salesforce campaigns.

  1. 1Go to Dashboard → Events
  2. 2Click on an event (or create a new one)
  3. 3In the event settings, you'll see a Salesforce Campaign dropdown
  4. 4Select the campaign you want leads from this event attributed to

When a lead is captured at this event, LeadFuel will automatically: - Search for an existing Contact matching the lead's email, name, and company - Search for the matching Account - Add the matched Contact as a Campaign Member to the linked Salesforce campaign

Create the Salesforce campaign before the event so it's ready in the dropdown. Name it consistently (e.g., '2026 AWS re:Invent') so it's easy to find.

6

How Matching Works

When LeadFuel processes a lead, the Salesforce integration runs this matching logic:

Contact matching:

1. Search by email (if available) — exact match

2. Search by name + company — fuzzy match

3. If no match is found and Auto-create CRM contacts is enabled in Settings → Integrations, LeadFuel creates a new Contact with the name, email, company, title, and phone from the badge scan and enrichment. If the toggle is off, the lead simply processes without a Salesforce link.

Account matching:

1. Search by company name — fuzzy match

2. If found, the lead is linked to the existing Account and LeadFuel surfaces the account owner (useful for warm-intro CCs)

3. During automatic processing, no new Account is created if there's no match

When Push to CRM creates records: the automatic pipeline above is lookup-only (unless you enable Auto-create CRM contacts). But when you explicitly click Push to CRM to send AI insights, LeadFuel will create a Contact — and an Account if the company doesn't match — so those insights have a record to attach to. If you don't want new records in Salesforce, push only leads you know already exist rather than pushing a whole event.

Campaign Members:

The Contact is added as a Campaign Member to the event's linked Salesforce campaign

Activity Logging:

When you approve a follow-up email, it's pushed to Salesforce as a completed Task on the Contact — your CRM stays the system of record for outreach

Custom Field Sync:

AI insights (lead grade, conversation summary, pain points) can be pushed to custom fields on the Contact — see the CRM Field Sync guide
7

Verify It's Working

After processing your first few leads, verify the integration is working:

  1. 1Open a processed lead in your LeadFuel dashboard
  2. 2Look for the Salesforce section — you should see the matched Contact and Account
  3. 3Open the Contact in Salesforce and verify campaign membership shows the correct campaign

If any of these are missing, check the lead's audit trail (Lead Detail → Audit Trail) for error messages.

Troubleshooting

Salesforce shows 'OAUTH_APPROVAL_ERROR_GENERIC: An unexpected error has occurred during authentication'
This generic error almost always means the app's Selected OAuth Scopes don't include a scope LeadFuel requested. Open the app's OAuth settings and confirm BOTH 'Manage user data via APIs (api)' and 'Perform requests at any time (refresh_token, offline_access)' are in the Selected list — 'Full access (full)' alone is not enough. After adding scopes, wait 5–10 minutes for Salesforce to propagate the change, then try again.
Test Connection fails with 'Invalid client credentials'
Double-check your Client ID and Client Secret. Make sure you copied the Consumer Key into the Client ID field and the Consumer Secret into the Client Secret field. Also verify the Connected App is active — it can take up to 10 minutes after creation.
Connect Salesforce says no refresh token was issued
Your Connected App is missing the refresh token scope. In Salesforce, edit the Connected App's OAuth settings and add 'Perform requests at any time (refresh_token, offline_access)' to the selected scopes, wait a few minutes, then click Connect Salesforce again.
The connection worked, then stopped after weeks of inactivity
External Client Apps limit idle refresh tokens to 30 days. If your org goes more than 30 days without any LeadFuel activity (no lead processing, no Test Connection), Salesforce expires the token and you'll need to click Connect Salesforce again. Normal usage — processing leads at events — keeps the connection alive automatically.
The Salesforce login page says my org can't be found, or login fails before I can authorize
Your org likely enforces My Domain login. Enter your My Domain URL (e.g., https://yourcompany.my.salesforce.com) in the 'My Domain Login URL' field, save, and click Connect Salesforce again. For sandboxes, use https://test.salesforce.com.
Leads are processing but no Salesforce data appears
Check that: (1) the event is linked to a Salesforce campaign, (2) the connection was authorized (green Test Connection result), (3) the lead has enough data for matching (at least name and company). Check the lead's audit trail for specific error messages.
Duplicate contacts are being created
Contact creation only happens when 'Auto-create CRM contacts' is enabled. LeadFuel matches by email first (exact match), then by name + company (fuzzy match). If the badge didn't have an email and the name is slightly different from what's in Salesforce, a duplicate may be created. After enrichment fills in the email, future matches should be more accurate. You can merge duplicates in Salesforce, or turn the auto-create toggle off.

Need more help?

Check other tutorials or reach out to our team.

All TutorialsContact Us