---
title: "Salesforce data enrichment with Leadsets"
description: "Use Leadsets with Salesforce through free skills and the REST API to backfill verified work emails, refresh titles and flag stale contacts."
canonical: https://www.leadsets.ai/integrations/salesforce
updated: 2026-11-09
---

# Salesforce data enrichment with Leadsets

Leadsets works with Salesforce through free, open-source skills and its REST API, listed on its integrations page as Skills + API. An AI agent or workflow can backfill verified work emails, refresh titles and seniority, enrich companies and flag stale contacts, with each field showing its source and last-checked date. Plans are flat monthly prices from $29, with 1,000 free records to start.

Salesforce is a customer relationship management (CRM) platform. Leadsets does not replace it: Leadsets is a B2B data API and remote MCP server that feeds people and company data into the tools you already run. The Leadsets [integrations page](https://www.leadsets.ai/integrations) lists Salesforce as **Skills + API**, meaning the connection runs through free SKILL.md playbooks and the REST API rather than a separately documented Salesforce app.

## What Leadsets can do for Salesforce records

According to Leadsets, an agent using its skills and API can backfill missing emails, enrich companies and flag stale records in Salesforce, HubSpot, Pipedrive and Attio. Six of the 50 free skills list Salesforce as a connection. These include:

- **Salesforce title refresh**: refreshes titles and seniority on Salesforce contacts and logs every change. Uses `enrich_person`.
- **Stale record audit**: flags contacts whose title or company is out of date before reps waste a sequence on them. Uses `enrich_person`.
- **Contacts at target accounts**: turns an account list into ranked contacts per account, with optional enrichment. Uses `search_people` and `enrich_person`.
- **Account tiering**: scores an account list against your ICP and sorts it into tiers with reasons. Uses `enrich_company` and `scrape_company`.

Every record comes back as structured JSON with match reasons, a verification status for emails, a confidence score and the date each field was last checked, so the agent can decide what is safe to write back. The full list is in the [skills library](https://www.leadsets.ai/skills/all).

## How to connect it

The Leadsets docs do not give setup steps specific to Salesforce. What follows is the generic MCP and REST setup the docs describe. How your agent or workflow reads from and writes to Salesforce depends on the access you already give it; Leadsets supplies the data side.

1. **Get a key.** Create a free account and copy your API key from the dashboard. Keys start with `ls_live_` and should be kept server-side.
2. **Connect an agent over MCP.** The server is `https://mcp.leadsets.ai`, with nothing to install. In Claude on the web or desktop: Customize, Connectors, + Add, Add custom connector, name it Leadsets, paste the URL, click Continue, choose Sign in now, click Add and sign in. It uses OAuth, so there is no key to paste. In Claude Code run `claude mcp add --transport http leadsets https://mcp.leadsets.ai`. In Cursor, add a server named `leadsets` with the URL and an `Authorization: Bearer ls_live_…` header in `~/.cursor/mcp.json`. Full steps are in the [MCP docs](https://www.leadsets.ai/docs/mcp).
3. **Check the connection.** Ask the agent "What's my Leadsets usage?" If it calls `get_usage` and returns your remaining balance, it is connected.
4. **Or call the REST API.** Send requests to `https://api.leadsets.ai/v1` with your key as a bearer token, from your own code, an n8n HTTP node or a Make HTTP module. TypeScript and Python SDKs are available with `npm i @leadsets/sdk` and `pip install leadsets`.
5. **Add a skill.** Download a skill folder and upload it in Claude under Settings, Skills, or clone the library with `git clone github.com/leadsets/leadsets-skills`.
6. **Use CSV when that is simpler.** Leadsets supports CSV import and export, and the Bulk enrich a CSV skill enriches a whole file as an async job, checking your limits before each batch. You can then load the results into Salesforce the way your team normally does.

A REST call to find people at an account already in your CRM might look like this:

```
curl https://api.leadsets.ai/v1/people/search \
 -H "Authorization: Bearer $LEADSETS_KEY" \
 -d '{ "company_domain": ["northwind.co"],
       "seniority": ["vp", "head"],
       "has_verified_email": true,
       "limit": 25 }'
```

## Example: refreshing contacts at Northwind Analytics

Maya Chen runs revenue operations at Northwind Analytics (northwind.co). Her team has about 4,000 Salesforce contacts, and reps keep sequencing people who have changed jobs. She connects Leadsets to Claude, installs the Salesforce title refresh and Stale record audit skills, and asks: "Refresh titles on our Salesforce contacts, flag anyone who changed company, and find verified work emails for contacts with none."

The agent calls `get_usage` first to plan the run. It then calls `enrich_person` for each contact, compares the current role and company with what is stored, logs every title change and flags people who moved. For contacts missing an email, `enrich_person` returns a verified work email when one exists, already checked with no second bill. Catch-all and unknown addresses are kept in a separate list rather than written back as if confirmed.

Plan size matters here. On Solo ($29 a month) the enrichment limit is 1,000 records per five hours and 5,000 per week, so 4,000 contacts would run across at least four windows within the week. On Pro ($99 a month) the limit is 15,000 per five hours, so the same job fits in one window. Details are on the [pricing page](https://www.leadsets.ai/pricing).

## What to watch for

- **Records and requests.** A record counts only when data comes back, so an empty result uses none. Every call counts as a request, and the request limit is five times the record allowance. See [limits and costs](https://www.leadsets.ai/docs/limits).
- **Windows and weekly limits.** Over a five-hour or weekly limit, the API returns 429 with a Retry-After time and the blocked call counts against nothing. Split large backfills or submit an async job.
- **Safe retries.** Send an `Idempotency-Key` on paid calls so a retry never counts records twice.
- **Verification labels.** Emails are labelled verified, catch-all, unknown or invalid. Leadsets suggests sending to catch-all at lower volume and treating unknown as unconfirmed; invalid emails are never served as contact emails. Decide which labels your workflow writes into Salesforce. More on the [verification waterfall](https://www.leadsets.ai/verify).
- **Standalone verification.** Re-checking existing Salesforce emails with `verify_email` counts toward the enrichment limit.
- **Suppression.** If Leadsets tells you a record has been suppressed after an opt-out, its terms require you to stop using it.

## What it does not do

- **No phone numbers.** Leadsets returns work emails, US personal emails on paid plans, roles and company data. If phone enrichment in your CRM is a priority, another provider is the better fit today.
- **Not a CRM or sending tool.** Leadsets feeds Salesforce and your sequencer; it does not store pipeline or send email.
- **No documented Salesforce-specific setup.** The site lists Skills + API and does not describe settings inside Salesforce.
- **No scraping on Free.** Skills that use `scrape_company`, such as Account tiering, need scrape units, an add-on on paid plans from $9 for 1,000 units.
- **No SOC 2 report yet.** SOC 2 Type I is planned, with a target of Q3 2027. Leadsets runs a GDPR-aligned program and offers a DPA with standard contractual clauses.

## Questions and answers

### Does Leadsets integrate with Salesforce?

Yes. Leadsets lists Salesforce as Skills + API: free, open-source skills and the REST API let an agent backfill missing emails, enrich companies and flag stale records. The Leadsets docs do not give Salesforce-specific setup steps, so you use the generic MCP or REST setup.

### How do I enrich Salesforce contacts with Leadsets?

Connect Leadsets to your agent at https://mcp.leadsets.ai or call the REST API with your key, then use a skill such as Salesforce title refresh or Stale record audit. The agent calls enrich_person for each contact and returns current role, company and a verified work email when one exists. You can also enrich a CSV file and load the results back.

### Which Leadsets skills work with Salesforce?

Six of the 50 free skills list Salesforce as a connection, including Salesforce title refresh, Stale record audit, Contacts at target accounts and Account tiering. All skills are MIT licensed and work on the free key, though skills that scrape websites need paid scrape units.

### Are emails verified before they go into Salesforce?

Every email Leadsets returns from enrich_person is already verified and labelled verified, catch-all, unknown or invalid with a confidence score. Invalid emails are never served as contact emails. Your workflow decides which labels to write back to Salesforce.

### Can Leadsets add phone numbers to Salesforce records?

No. Leadsets does not offer phone numbers yet and will only add them once sourcing rights and costs are clear. It returns work emails, US personal emails on paid plans, roles and company data.

### How much does Salesforce enrichment with Leadsets cost?

Leadsets has a free plan with 1,000 records, one time, with no card. Paid plans are flat monthly prices in USD with no credits: Solo $29, Pro $99, Team $399 and Max $999, each with fair-use limits per five hours and per week.

---

Leadsets · https://www.leadsets.ai · Site index: https://www.leadsets.ai/llms.txt
