Overview
Airtable is where many teams keep the work that a spreadsheet cannot hold well. It gives you typed fields, single and multiple select options, linked records, views and a clean interface, which makes it a natural home for a list of leads that people actually work rather than just store.
FisherLeads is where you find online stores the moment they launch, each one confirmed live and enriched with the founder contact, the platform it runs on and the tech behind it. Connect the two and your Airtable base fills itself with fresh, high intent leads. As soon as a new store matches the filters you set, FisherLeads sends it over and a record appears in your base, typed and ready to sort, group and assign.
FisherLeads does not install a native block or app inside Airtable. Instead it pushes new matching stores to you in real time as a signed webhook, which you route into Airtable with Zapier in a few clicks, or with your own code against the Airtable API, or you pull the same feed from the REST API. This guide covers all three.
What you can do
Create a record per store
Every matching new store becomes an Airtable record, with its domain, platform, country and niche in typed fields you can sort and filter.
Enrich with founder contact
The verified owner email and social profiles land on the record, so your team can start outreach the day a store goes live.
Only the stores you want
Filter by platform, country, niche, revenue band or verified email at the source, so your base only fills with leads that fit.
Trigger automations
A newly created record can fire an Airtable automation: post to Slack, send an email, set a status or assign an owner, with no extra tools.
How the integration works
There are three ways to connect FisherLeads to Airtable. Most people start with Zapier because it needs no code and maps fields with a few clicks. Teams with a developer often prefer a direct webhook or the REST API for full control over how records are shaped and deduplicated. All three carry the same store data, described further down.
Pick the one that fits your team. You can always start with Zapier and move to a direct integration later without changing anything on the FisherLeads side.
Set it up with Zapier (no code)
The fastest path, and the one most teams use. FisherLeads sends each new store to Zapier, and Zapier creates the record in your Airtable base. No code, about ten minutes, and you set it up once. Available on the Enterprise plan.
Prepare your Airtable base
Create or open the base and table that will hold your leads. Add the fields you want to fill, for example Domain, Merchant, Website, Country, Niche, Email and Status, choosing a field type that suits each one.
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.
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.
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.
Add the Airtable action
Add a second step, choose Airtable, and select the Create Record action. Pick your base and table, then map each store field to the matching Airtable field: Domain, Merchant, Website, Country, Niche, Email and the rest.
Publish
Turn the Zap on. From now on, every new store that matches your filter becomes a record in your base within seconds of launching, with nothing more to do.
Use your own webhook
If you would rather not use Zapier, point the FisherLeads webhook straight at your own endpoint and call the Airtable 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 map it to your table fields and create records in one call.
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 your base.
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 REST API returns the same feed, newest first, with the same filters as the dashboard. Poll it on a schedule and create or update records in Airtable from your own code. Read access is on the Business plan; higher limits are on Enterprise.
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 Airtable fields when you build your Zap or your own sync, and pick a field type that matches so your views and filters work well.
| FisherLeads field | Example | Suggested Airtable field |
|---|---|---|
| domain | example.com | Domain (single line text, unique) |
| url | https://example.com | Website (URL) |
| merchant | Example Beauty Co | Merchant (single line text) |
| platform | shopify | Platform (single select) |
| site_type | ecommerce | Site type (single select) |
| country | US | Country (single select) |
| niche | beauty | Niche (single or multiple select) |
| launched | 2026-06-30 | Launched (date) |
| hello@example.com | Email (email field) | |
| phone | +1 555 010 1234 | Phone (phone or text) |
| socials | instagram, tiktok… | Socials (long text or URL) |
| tech | Klaviyo, Meta Pixel | Tech (multiple select) |
| product_count | 42 | Product count (number) |
| revenue_band | Small | Revenue band (single select) |
Choose which stores sync
You almost never want every new store in your base. 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 teams or bases want different stores.
Filtering at the source keeps your base clean and keeps your Zapier task usage down, since Zapier only ever sees the stores that matter to you. It also means a view in Airtable can stay simple, because the rough sorting already happened before the record arrived.
Keeping records unique
Airtable does not enforce uniqueness on its own, so two deliveries for the same domain could in theory create two records. The fix is simple. Keep a Domain field and treat it as your key. In Zapier, add a Find Record step that searches your table for the incoming domain, then use a path or a Create or Update style action so an existing record is updated instead of duplicated.
FisherLeads also deduplicates on its side. Each store is sent once, when it first matches your filter, so you will not receive the same launch twice. Between that and a Domain key in Airtable, your base stays one record per store.
Airtable automations and interfaces
Because each new store lands as a real Airtable record, everything Airtable already does on record creation works. An automation can fire the moment a record is created to post the new store to a Slack channel, send an email to the owner of a sales queue, set a Status of New, or assign a rep by filling an owner field.
Interfaces then give your team a clean board over the same data, with the newest launches up top, grouped by platform or country, so a rep can pick up a store and start working it without ever touching the raw table. The result is a lead desk that refills itself as stores go live.
Freshness, retries and reliability
Stores reach your base 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.
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 Airtable bases. Nothing from your base ever comes back to FisherLeads. What lands in Airtable is the public store data in the table above.
Best practices
- Filter tightly at the webhook so your base only fills with stores that match your ideal customer.
- Keep a Domain field and use it as your key, with a Find Record step, so updates land on the right record and never duplicate.
- Give each field a type that matches the data, so single select, date, URL and email fields power clean views and filters.
- 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 Airtable, then widen the filter.

