All docs
/
Export
/
Salesforce integration

Salesforce integration

Cloud-based customer relationship management software.

Overview

Salesforce is a customer relationship management (CRM) platform that helps businesses manage their customer data and relationships. This integration lets you sync your Salesforce data with Clay to streamline your workflow.

Creating a table with Salesforce

  1. In a workbook, click + Add at the bottom.
  2. Search for Salesforce and select from the results.
  3. In the modal, you will be asked to Select Salesforce account.
    • If you haven't already connected your Salesforce account, click + Add account and go through authentication.

Source Import records from a Salesforce list

Inputs:

  • Salesforce object: The type of object to look for in Salesforce.
  • List view: The view to sync into Clay.
    • Views that are not SOQL-compatible (those that cannot be generated from a SOQL query) have a 2,000-record limit.

Source Import records from a Salesforce report

Inputs:

  • Report to run: The report to run in your Salesforce instance.
    • Only tabular and matrix reports are supported. Salesforce limits reports to a maximum of 2,000 records.
  • Uniqueness fields:
    • Since Salesforce reports lack unique identifiers, select specific fields to identify each row. This prevents duplicate records from appearing when the report updates.
      • Important: If you don't select any fields, Clay will use the entire row content as the unique identifier. This can result in many duplicate entries in your Clay table.

Enriching data with Salesforce

  1. While in a Clay table, click Add enrichment and search for Salesforce.
  2. Under Integrations, select one of the Salesforce options.
  3. In the modal, you will be asked to Select Salesforce account.
    • If you haven't already connected your Salesforce account, click + Add account and go through authentication.

Action Lookup records via SOQL

Look up records in Salesforce using a SOQL query.

Inputs:

Action Create record

Use this action to create a new record in Salesforce.

Inputs:

  • Salesforce object: The object type to look for in your Salesforce.
  • Duplicate rule override: When enabled and you have a duplicate rule, Clay will bypass the rule and create a new record, even if it duplicates an existing one.

Action Lookup record

Use this action to find existing records in Salesforce.

Inputs:

  • Salesforce object: The object type to look for in your Salesforce.
  • Exact match? (optional): When enabled, finds exact matches across all search fields.

Action Upsert object

Use this action to create a new record or update an existing one.

Note: In order for upsert to work, you need to have an external ID on the object.

Inputs:

  • Salesforce object: The object type to look for in your Salesforce.

Action Update record

Use this action to modify existing records in Salesforce.

Inputs:

  • Record ID: The ID of the record to update.
  • Salesforce object: The object type to look for in your Salesforce.
  • Ignore blank values (optional): When enabled, blank values from Clay will be ignored.

Action Convert lead

Use this action to convert a lead.

Inputs:

  • Lead ID: The ID of the lead to convert.
  • Converted status: The status to assign to the lead after conversion.
  • Account ID (optional): The ID of the account to link to the converted lead.
  • Contact ID (optional): The ID of the contact to link to the converted lead.
  • Create opportunity? (optional): Whether to create an opportunity for the converted lead.
  • Opportunity ID (optional): The ID of the opportunity to link to the converted lead.
  • Opportunity name (optional): The name of the opportunity to create.
    • If not provided, the lead's name will be used.

Best practices

Test before automating

Start with auto-update disabled when using Create or Update actions. Test manually with a few rows first before enabling automation.

Begin with lookup records

Use the free Lookup records action first to check for duplicates, enhance data, and screen against suppression lists.

Qualify early

Use conditional runs and free enrichment actions to qualify leads before spending credits on deeper enrichment.

Mind your relationships

Pay attention to contact-company relationships and duplicates. Plan how to handle unassociated contacts and merge duplicate records to maintain data quality and efficiency.

FAQs

What permissions and scope do I need for the Salesforce enrichment?

Required Permissions for Your Clay User

To connect Clay to Salesforce, your Clay user needs:

  1. Access Identity Information (profile, email, address, phone)
  2. Manage Data via APIs
  3. Perform Requests Anytime (refresh_token, offline_access)

An OAuth user must set up the initial connection. After that, any user in your Clay workspace can use the integration.

Connection Scope and Permissions

The Salesforce connection is tied to the OAuth user who sets it up:

  • Data Pull: Import or look up Salesforce records, limited to the fields and objects the OAuth user can access
  • Data Push: Create or update Salesforce records where the OAuth user has write access

For sensitive fields, you can create a permission set to restrict the OAuth user's access.

Will Clay create duplicate records in Salesforce?

No. By default, Clay prevents duplicate records. However, you can allow duplicates by enabling the "Duplicate Rule Override" in the Create Record enrichment.

To avoid creating duplicates from your Clay table, first look up an object to check if it exists, then create it only if it doesn't.

Learn more about Salesforce's duplicate rules here.

What are the default sync settings for CRM integrations?

By default, Clay syncs Salesforce imports every 24 hours. When new records or updates occur, this triggers action runs that enrich and export the updated fields.

How do I turn on or off autoupdate?

To modify this setting, click your table name in the top bar. From the dropdown menu, select Disable or Enable auto-update.

Is there a way I can test Salesforce enrichments?

Yes, you can test enrichments by connecting your sandbox test environment.

Go to SettingsConnectionsSalesforce Test Env to set it up.

Can I reverse my Salesforce enrichment?

No, once you update or create an object in Salesforce from Clay, you cannot undo these actions.

Please check with your Salesforce admin before making any changes to your Salesforce CRM.

Do we need to create a custom Salesforce object to integrate Salesforce data?

No, one of Clay's benefits is that you can update any object and any field in Salesforce.

Why am I seeing an "OAUTH_APPROVAL_ERROR_GENERIC" error when connecting Salesforce?

This error typically occurs when:

  • Integration User License limitation: The user attempting the connection has a Salesforce Integration User License or API Only license, which cannot complete UI-based OAuth approval flows.
  • Connected app not pre-approved: Your org requires pre-installation of connected apps. If Clay's connected app isn't pre-approved, Salesforce will block the OAuth approval.
  • SSO enforcement: When "Is Single Sign-On Enabled" is set on the user or an IdP-redirect flow is forced, Salesforce may not present the OAuth approval screen.

How to fix:

  1. Use a full Salesforce user license (not Integration User) with a profile or permission set that includes API Enabled and Connected App Access.
  2. If your org enforces SSO, temporarily allow direct username/password login for this user, or create a non-SSO service account for authorization.
  3. In SetupConnected Apps OAuth Usage, verify the Clay app is listed and not blocked. If your org uses App Access Control, pre-install or whitelist the app first.

Why doesn't the Clay connected app appear under "Connected Apps OAuth Usage"?

A connected app only appears after a successful OAuth authorization. If it's missing, one of these is typically true:

  • The user's profile lacks the "Approve uninstalled connected apps" permission (required when the app isn't pre-installed).
  • Org policies block uninstalled connected apps entirely (via App Access Control).
  • SSO or login flows prevent the OAuth approval prompt.
  • IP restrictions, login-hour restrictions, or Transaction Security Policies block the OAuth request.

How to fix:

  1. Add "Approve uninstalled connected apps" to the user's profile or permission set.
  2. Try authorizing with a System Administrator user first—this lifts the "uninstalled" status and populates Connected Apps OAuth Usage.
  3. Once it appears, configure Connected App Policies (e.g., Permitted Users, IP Relaxation, Profile Assignments).

What callback URL does Clay use for Salesforce?

What OAuth scopes does Clay require for Salesforce?

Clay requires these scopes:

  • api
  • refresh_token
  • id
  • openid
  • profile

Do I need to adjust IP or session restrictions in Salesforce to connect Clay?

Sometimes. Salesforce session-level or connected-app-level restrictions can interrupt OAuth flows or token exchanges.

Common blockers:

  • "Lock sessions to IP address" in Session Settings.
  • Strict HTTPS and network policies that reject redirects from Clay's servers.
  • Very short session timeouts that expire during the OAuth handshake.
  • Permitted IP ranges on the user's profile that exclude the browser or integration IP.
  • Connected App Policies requiring logins from fixed IP ranges.

Recommendations:

In SetupSession Settings:

  • Disable "Lock sessions to IP address".
  • Use a reasonable session timeout to allow OAuth redirects.

In SetupManage Connected AppsClay:

  • Set IP Relaxation to "Relax IP Restrictions" (Clay's integration calls originate from cloud IPs that may change).
  • Set Permitted Users to "All users may self-authorize" unless your org requires admin approval.

Explore other docs

Web scraping

Sumble integration

Validate whether a company uses specific technologies.

View article
Export

Microsoft Teams integration

Send messages to Microsoft Teams channels directly from Clay.

View article
Enrich

EmailBison integration

Import leads into campaigns directly from Clay, ensuring accurate and efficient campaign execution.

View article

Keyboard shortcuts

Work faster in Clay with keyboard shortcuts.

View article
Export

Salesforce SOQL

The Salesforce SOQL source enables you to import records from Salesforce by writing custom queries.

View article
Transform

Share workbooks and tables as templates

Share your Clay workbooks and tables.

View article
Enrich

Zerobounce integration overview

Email validation and deliverability tools boost inbox placement and marketing ROI.

View article

Other popular resources

Experts

Find a Clay Expert

Explore our network of Clay experts and agencies

View experts
Community

Join our slack community

Find help in our slack community, and support channels

Go to slack
Cohorts

Join a cohort, learn Clay fast!

The faster way to master Clay. Sign in if you're enrolled in a cohort (current or past) or apply to an upcoming one!

Learn more about cohorts