Learn

Sync local business leads to your own Supabase

TL;DR

Syncing leads to your own Supabase means each search writes business records directly into a Postgres database you control, instead of stopping at a one-off CSV. Records are upserted and deduplicated, so re-running a search refreshes existing rows rather than piling up copies — which lets you maintain a live, query-ready directory of local businesses over time. This is a capability on the Pro and Business plans.

What is Supabase lead sync?

Supabase lead sync writes the businesses you find on Google Maps into a Supabase Postgres database that belongs to you, keyed so that repeat searches update existing records instead of duplicating them. The result is a structured, owned table of local businesses you can query, join, and connect to your own tools — not a folder of disconnected exports.

Why owning your lead data matters

A CSV export is a snapshot. The moment you download it, it begins to go stale: businesses change phone numbers, websites move, ratings shift, and places close. Worse, every new export lives in a separate file, so the same business shows up in three downloads with three slightly different states and no clear source of truth.

Owning the data in your own database changes that. Instead of accumulating files, you accumulate one canonical record per business that gets updated as you go. A few things follow from that:

  • One source of truth. Your CRM, dashboards, and scripts all read from the same table, not from whatever CSV someone happened to download last week.
  • Your infrastructure, your control. The data sits in a Postgres database you administer. You decide who has access, how it is backed up, and how long it is retained.
  • Composability. Because it is real Postgres, you can join lead data against your own tables — outreach status, account owners, tags, notes — and query it with SQL or the Supabase client libraries.
  • Automation-ready. A live table is something your other systems can read on a schedule. A static CSV is something a person has to remember to re-download.

For an agency or a sales team, the difference is between “a pile of exports” and “an asset that compounds.” For a data team, it is the difference between ingesting files and reading a clean table directly.

How upsert and dedup keep the database clean

The mechanism that makes an owned database better than a stack of CSVs is the upsert — short for “update or insert.” When a search runs, each business record is matched against what is already in your table. New businesses are inserted as fresh rows; businesses that already exist are updated in place rather than duplicated.

This is what keeps the table clean as it grows. Consider how it behaves across real work:

  • Re-running the same city and category refreshes the businesses you already have — updated ratings, review counts, hours, and contact details overwrite the old values instead of creating second copies.
  • Searching an adjacent category or a neighboring city adds only the genuinely new businesses and merges any overlap into existing rows, so the boundary areas where two searches touch the same places do not produce duplicates.
  • Coming back weeks later lets you maintain freshness deliberately: a periodic re-sync of your core markets keeps the directory current without a manual de-duplication pass in a spreadsheet.

The same up-to-11 fields available in a CSV export — name, full address, phone, website, Google rating, review count, category, GPS coordinates, business hours, price level, and a Google Maps link — flow into the database. The difference is that, in Supabase, those fields land in typed columns you can filter and sort on directly, and the dedup logic decides whether each incoming business is a new row or an update to an existing one.

Building a live local-business directory

Once data is upserting into Postgres, a lead list stops being a deliverable and becomes a directory you can keep alive. A practical way to think about building one:

  1. Define your coverage. Decide which categories and which cities make up your directory — for example, every home-services category across the metro areas you sell into. With 3,900+ categories and 200+ countries available, you can scope the directory as tightly or as broadly as your market requires.
  2. Seed the database. Run those searches once to populate the table. Each business arrives as a structured row with its fields in place.
  3. Refresh on a cadence. Re-run the same searches periodically. Because everything upserts, refreshes update existing businesses and add new ones, so the directory tracks the real world instead of drifting away from it.
  4. Query and build on top. Filter by rating to find well-reviewed prospects, segment by city for territory planning, or join the table against your own outreach data to see which businesses you have already contacted. Since it is your Supabase project, you can also wire the table into an internal app, a map view, or a reporting layer.

This pattern suits a few audiences in particular: agencies maintaining prospect pools per client vertical, outbound sales teams keeping territory lists current, local service businesses tracking competitors and partners in their area, and data teams treating local-business data as a managed table rather than a recurring file import.

A note on responsible use: collecting and storing business and contact data carries obligations that vary by jurisdiction — including GDPR and similar regimes — and by the terms of the platforms involved. Review the laws and platform terms that apply to your use case, and consult counsel where appropriate. We give no legal verdict here.

How sync fits into gtme.business

gtme.business turns Google Maps into exportable local-business lead lists. You choose categories and locations, run a search, and take the results as a CSV or sync them into your own Supabase database, where they are deduplicated and upserted. Supabase sync is available on the Pro ($75/mo) and Business ($150/mo) plans; the Starter ($35/mo) plan and CSV export are the entry point. See the pricing page for what each plan includes, how it works for the search-and-export flow, and the use cases for who builds with it.

New accounts get 20 free searches with no card required, so you can run real searches before committing to a plan. Create an account to try it.

Frequently asked questions

What is the difference between CSV export and Supabase sync?

A CSV export is a one-time file — a snapshot of a search you download and load somewhere yourself. Supabase sync writes the same business records directly into a Postgres database you control, where repeat searches update existing rows instead of producing new files. CSV is on every plan; sync is a Pro and Business capability.

Do I need my own Supabase project to use sync?

Yes. Sync writes into a Supabase database that belongs to you, which is the point — the data lives in infrastructure you administer and control, not somewhere it has to be exported back out of. Supabase offers its own free tier to get started; you connect your project so leads flow into it.

How does sync avoid creating duplicate records?

Each incoming business is matched against what is already in your table. New businesses are inserted as fresh rows; businesses that already exist are updated in place. This upsert behavior means re-running a search refreshes your data rather than duplicating it, so the table stays clean as it grows.

Which plans include Supabase sync?

Supabase sync is available on the Pro ($75/mo) and Business ($150/mo) plans. The Starter ($35/mo) plan and CSV export are available as the entry point. You can see the full breakdown on the pricing page.

What data ends up in my Supabase table?

The same fields available in an export: up to 11 per business, including name, full address, phone, website, Google rating, review count, category, GPS coordinates, business hours, price level, and a Google Maps link. In Supabase these land in typed columns you can query and filter directly.

Can I keep my directory up to date over time?

Yes — that is what upsert is for. Re-running your searches on a cadence refreshes existing businesses with their latest details and adds any new ones, so a periodic re-sync of your core markets keeps the directory current without manual de-duplication.

← All guides