FisherLeads

Salesforce integration

New store leads, straight into Salesforce

Turn FisherLeads into a live source of leads and accounts for Salesforce. Every newly launched store that matches your filters lands in your org the day it goes live, enriched and ready for your reps, your assignment rules and your cadences.

Overview

Salesforce is the system of record for many sales teams, the place where leads are qualified, accounts are owned and pipeline is built. FisherLeads is where you find online stores the moment they launch, each one confirmed live and enriched with the founder contact, platform and tech it runs.

Connecting the two means your Salesforce org fills itself with fresh, high intent prospects. As soon as a new store matches the filters you set, FisherLeads sends it over, and a lead or an account appears in Salesforce, ready for a rep to work or for your automation to route. There is nothing to export by hand and no stale list to import.

FisherLeads does not install a managed package inside Salesforce. Instead it pushes new matching stores to you in real time as a signed webhook, which you route into Salesforce with Zapier in a few clicks, or with your own code against the Salesforce REST API, or you pull the same feed from the FisherLeads REST API. This guide covers all three.

What you can do

Create leads and accounts

Every matching new store becomes a Salesforce lead or account, with its website, company name, country and industry filled in.

Enrich with founder contact

The verified owner email and social profiles land on the record, so a rep can reach out on the first day the store is live.

Route and assign on arrival

A new record can fire assignment rules, drop into a queue, start a Flow or enroll in a sales cadence automatically.

Only the stores you want

Filter by platform, country, niche, revenue band or verified email, so your org only fills with leads that fit your territory.

How the integration works

There are three ways to connect FisherLeads to Salesforce. Most teams start with Zapier because it needs no code and maps straight onto the Create Record action. Teams with a Salesforce admin or developer often prefer a direct webhook or the REST API for full control over objects, record types and duplicate handling. All three carry the same store data, described further down.

Pick the one that fits your team. You can always start with Zapier to prove the flow, then move to a direct integration once you know exactly which object and fields you want.

Set it up with Zapier (no code)

The fastest path. FisherLeads sends each new store to Zapier, and Zapier creates the record in Salesforce. No code, about ten minutes, and you set it up once. Available on the Enterprise plan.

1

Add a webhook in FisherLeads

In the dashboard, open Developers and add a webhook. Give it a filter, for example Shopify, US, verified email, so you only receive the stores you care about.

2

Create a catch hook in Zapier

Start a new Zap and choose Webhooks by Zapier as the trigger, with the Catch Hook event. Zapier generates a unique URL for you to copy.

3

Paste the URL and send a test

Copy the Zapier URL into your FisherLeads webhook, then press Test in the dashboard. Zapier catches the event so it can read the real store fields.

4

Add Salesforce as the action

Add a second step, pick Salesforce, and connect your org. Choose Create Record and select the object you want, a Lead or an Account. A store is a company, so Account or Lead is the natural fit.

5

Map the store fields

Map the FisherLeads fields to Salesforce fields. At a minimum, map merchant to the Company or Account Name and domain to the Website, the field Salesforce can match on. Add country, industry, email and phone for a richer record.

6

Test and turn it on

Run the test, confirm the record looks right in Salesforce, then switch the Zap on. From now on, every new store that matches your filter flows into your org automatically.

Each delivery can carry up to 50 new stores at once. To create a record for every store in a batch, add a Looping by Zapier step before the Salesforce action. For one store per delivery, the steps above are enough.

Use your own webhook

If you would rather not use Zapier, point the FisherLeads webhook straight at your own endpoint and call the Salesforce REST API yourself. When new stores match, FisherLeads sends a single signed POST with the batch of leads. Each lead has the same shape as the API, so you can upsert into whichever object, record type and field mapping your org needs.

This path gives you full control: route by territory, respect your own duplicate rules, set owners and record types, and create a Contact alongside the Account in the same transaction.

The webhook FisherLeads sends when new stores match.
POST https://hooks.zapier.com/...        (your catch hook URL)
Content-Type: application/json
X-FisherLeads-Event: leads.new
X-FisherLeads-Signature: 3a7f...          (hmac-sha256 of the raw body)

{
  "event": "leads.new",
  "count": 2,
  "leads": [
    {
      "domain": "example.com",
      "url": "https://example.com",
      "merchant": "Example Beauty Co",
      "platform": "shopify",
      "site_type": "ecommerce",
      "country": "US",
      "niche": "beauty",
      "launched": "2026-06-30",
      "email": "hello@example.com",
      "phone": "+1 555 010 1234",
      "socials": { "instagram": "https://instagram.com/examplebeauty" },
      "tech": ["Klaviyo", "Meta Pixel"],
      "revenue_band": "Small"
    }
  ]
}

Every delivery is signed so you can be sure it came from FisherLeads. Compute an HMAC SHA256 of the raw request body with your webhook secret (shown next to the webhook in the dashboard) and compare it, constant time, to the X-FisherLeads-Signature header before you write anything into Salesforce.

Verifying a delivery in Node.
import crypto from "crypto";

function verify(rawBody, signature, secret) {
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature),
  );
}

Use the REST API

Prefer to pull rather than be pushed to? The FisherLeads REST API returns the same feed, newest first, with the same filters as the dashboard. Poll it on a schedule and upsert the results into Salesforce from your own code or from a scheduled job. Read access is on the Business plan; higher limits are on Enterprise.

Pulling new US Shopify stores with a verified email.
curl "https://fisherleads.com/v1/leads?platform=shopify&country=US&has_email=true&page=1" \
  -H "Authorization: Bearer fk_live_your_key_here"

The data you get

Each store brings the fields below, the same shape across webhooks and the API. A field is omitted when we could not confirm it. Map them to standard or custom Salesforce fields when you build your Zap or your own sync.

FisherLeads fieldExampleSuggested Salesforce field
merchantExample Beauty CoAccount or Company Name
domainexample.comWebsite
urlhttps://example.comWebsite
countryUSBilling Country or Country
nichebeautyIndustry
emailhello@example.comEmail (on the Lead or Contact)
phone+1 555 010 1234Phone
platformshopifyCustom: Platform
site_typeecommerceCustom: Site type
techKlaviyo, Meta PixelCustom: Tech stack
product_count42Custom: Product count
revenue_bandSmallCustom: Estimated revenue
launched2026-06-30Custom: Launch date
socialsinstagram, tiktok…Custom: Social profiles

Choose which stores sync

You almost never want every new store in your org. Each webhook carries a filter, set in the dashboard when you create it, so only matching stores are sent. Filter by platform, country, niche, site type, revenue band and whether the store has a verified email. Create several webhooks with different filters if different territories or teams want different stores.

Filtering at the source keeps Salesforce clean and keeps your Zapier task usage down, since Zapier only ever sees the stores that matter to you. It also makes assignment far simpler, because a webhook scoped to one country or niche can route straight to the right queue.

Avoiding duplicate records

Salesforce has its own matching and duplicate rules, and you should lean on them. Map the FisherLeads domain to the Website field and enable a matching rule on Website, and Salesforce will flag or block a second account for the same store.

In Zapier, use the Find Record action first and fall back to Create, or use Find Record or Create, so an existing account is updated instead of duplicated. FisherLeads also deduplicates on its side: each store is sent once when it first matches, so you will not get the same launch twice.

Fire Flows, assignment rules and cadences

Because each new store lands as a real Salesforce record, everything your org already does on record creation works. Fire a lead assignment rule, drop the record into a queue, trigger a record triggered Flow, assign an owner, or enroll the new lead in a sales cadence.

A store that launched minutes ago can be owned, routed and sitting in an active cadence before your competitors have even found it. That speed is the whole point: you are working founders in their first days, when they are still choosing the tools and partners they will keep.

Freshness, retries and reliability

Stores reach Salesforce within seconds of going live. FisherLeads pushes matches as they happen rather than on a nightly batch, so your pipeline is always current.

Deliveries are reliable. Reply with any 2xx status to acknowledge a webhook. If your endpoint errors or times out, FisherLeads keeps the leads and retries on the next pass, and after repeated failures the webhook is paused automatically so a broken URL does not pile up. Use the Test button in the dashboard to send a signed ping and confirm everything is wired before you rely on it.

Plans: webhooks and Zapier are on the Enterprise plan. The REST API read access is on Business, with higher limits on Enterprise.

Security and your data

Every webhook is signed with an HMAC SHA256 of the body using a secret only you and FisherLeads hold, so you can verify each delivery really came from us and was not tampered with in transit.

The integration is one way: FisherLeads sends new stores to you. It does not read, store or scan your Salesforce data. Nothing from your org ever comes back to FisherLeads. What lands in Salesforce is the public store data in the table above.

Best practices

  • Filter tightly at the webhook so your org only fills with stores that match your ideal customer and territory.
  • Map the domain to the Website field and enable a matching rule on it so updates land on the right account and never duplicate.
  • Decide up front whether a store should be a Lead or an Account, and keep the mapping consistent across all your webhooks.
  • Verify the signature on every delivery if you use your own endpoint.
  • Store the webhook secret somewhere safe and rotate it in the dashboard if it is ever exposed.
  • Start with the Test event and one filter, confirm records look right in Salesforce, then widen the filter.

Questions

Start sending new stores to Salesforce

Get the freshest store leads the day they launch, flowing straight into the tools you already work in.