Enrich a prospect list with the phone numbers Google Maps doesn't provide

You scraped a zone: 400 businesses, their addresses, their websites. And a phone column that's half empty. Some records have no number at all. Others show a nine-digit switchboard that rings into a voice server — the kind of line where your outreach message dies before reaching anyone. You look at the list and already know that half the calls will go nowhere.

The number almost always exists. It's just somewhere else: on the website's contact page, in a team signature, at the bottom of the legal notice. A map listing surfaces one canonical number per establishment; the website, on the other hand, often exposes several — a direct line, a sales mobile, sometimes a stray fax. The job is not to find a number one at a time. It's to fill the gaps in an entire list, row by row, without manually reopening 400 websites.

Module phones_extra — additional phone numbers

What the listing gives
+33 1 23 45 67 89 (switchboard)
What the website also exposes
+33 6 12 … mobile
+33 1 23 45 67 92 direct line

For each prospect with a website, the module reads the public pages, extracts phone numbers, validates them, and normalises them to E.164. The empty columns in your list get filled in.

Why a Google Maps listing only gives one number (often the wrong one)

Because a map source publishes one canonical number per establishment. That's by design: one point on a map, one contact line. But a real organisation exposes multiple channels — reception, direct sales, a manager's mobile, support. The number on the listing is usually the switchboard, meaning the one that filters the most.

This produces two recurring gaps in a scraped list. The first: records with no phone number at all, because the establishment didn't fill one in on the map. The second, more insidious: a number that's there but unusable — a generic switchboard, a voicemail, a shared line. In both cases, the list looks complete when it really isn't. The missing data hides behind a data point that's already there.

Where additional numbers are: on the prospect's website, and it's legal

On the public pages of each company's website: home page, contact page, team pages, and especially the legal notices (mentions légales). In France, a professional website must publish a direct means of contact. The phone number is not a favour the prospect is doing — it's a legal obligation they are fulfilling.

According to Service-Public.fr (legal notices for a website), a professional website must include, among its mandatory disclosures, an email address and a phone number to contact the business, in information that is "easily accessible". In other words: the number the map doesn't provide, the website is required to expose. That's exactly where the module goes to find it — the same public-page extraction logic as for SIRET / SIREN enrichment from legal notices.

How OutSend enriches your prospect list with additional phone numbers

The phones_extra module starts from your existing list — typically the output of a Google Maps scrape exported to CSV — and, for each row that has a website, crawls the public pages to extract all phone numbers, validate them, and normalise them. Records without a website are skipped from the start: the website is the source.

  1. Website filter. Any prospect without a site_web value is excluded at launch. The module never invents a number: it either reads one from a real page, or returns nothing.
  2. Public page crawl. Home, contact, team pages, legal notices — the places where a number is exposed. The prospect's address is used to guide country detection for ambiguous formats.
  3. Extraction and validation. Every digit sequence that looks like a phone number is tested against Google's phonenumbers library. Anything that doesn't validate is discarded, not surfaced as a rough approximation.
  4. E.164 normalisation and deduplication. Each accepted number is rewritten in E.164 format, then compared against the number already on the record. A duplicate of the switchboard is not added; only new numbers fill the column.

As output, your list comes back with up to three additional columns: phone_secondary (a landline distinct from the primary number), mobile (a mobile detected via the national numbering plan), and fax (when explicitly labelled as such). An empty cell means the module ran but found nothing of that type — not that it failed. Everything exports with the list in CSV, JSON, or XLSX.

Alpha honesty: a prospect with no website, or whose website publishes no readable number, will not come back enriched by this route. The promise is list completeness — filling as many fillable gaps as possible — not a guaranteed number on 100% of rows.

E.164: why all numbers come out in the same format

Because a list of numbers each written in its own way is unusable in bulk. "01.23.45.67.89", "0123 456 789", "+33 (0)1 23 45 67 89" all refer to the same line, but no calling tool or CRM knows that. E.164 normalisation rewrites everything into a single, unambiguous form, ready to dial or import.

01.23.45.67.89  →  +33123456789
06 12 34 56 78  →  +33612345678
+33 (0)1 23 45 67 92  →  +33123456792

E.164 is the international numbering plan defined by ITU-T recommendation E.164 (ITU): country code followed by the national number, with no spaces or punctuation. For France, the country code is +33 and the leading 0 of the national number is dropped. It's the format expected by CRMs, campaign tools, and telephony APIs.

Normalisation also makes the field filterable. Once in E.164, the module distinguishes a landline from a mobile based on the national plan. According to ARCEP (the French telecoms regulator — numbering), numbers starting with 01 to 05 are landlines, while those starting with 06 or 07 are mobiles. This is what allows the mobile column and the phone_secondary column to be filled separately, making it possible to target mobiles when your approach calls for it.

Enriching your prospect list with additional phone numbers: three concrete use cases

Three situations where filling the gaps changes the yield of a list, without changing its size.

Local B2B list with gaps in the phone column. 300 tradespeople scraped, a third with no usable number. The module crawls their websites, fills in direct landlines and mobiles where found. The same list becomes callable without starting a new extraction.

Getting past a generic switchboard. A list of SMEs where every record points to a switchboard. By reading the contact page and team page, the module surfaces more direct lines when they are published — you gain reachability, row by row.

Pre-qualification before a campaign. Combining additional numbers with cleanup: running the list through the dead URL checker before crawling avoids searching for a number on a site that no longer exists, then the social media extractor adds non-phone channels. Everything chains together in a no-code prospecting pipeline.

Need an overview? See all OutSend features.

Try OutSend for free

All-in-one, built-in European B2B compliance. Free alpha access on application.

Request free alpha access

What the module does not do (and where it stops)

It never invents a number. If there is no website, or no readable number on the public pages, the row comes back without enrichment — empty columns, no pseudo-data. The module also does not identify who holds a line, nor does it verify that a number is still assigned: it extracts, validates the format, and normalises. For data quality itself, this enrichment combines with other modules in the suite, such as the email finder and legal data enrichment.

On the compliance side, the numbers read come from pages the company is required to make public. Building a clean phone file remains your responsibility, and all B2B telephone prospecting follows its own rules — a topic covered in our guide on B2B cold calling, Bloctel, and the opt-in rules.

FAQ — Enriching a list with phone numbers Google Maps does not provide

Does the module find a number for every record?

No, and it makes no such claim. It enriches rows whose website publishes a readable number on its public pages. A record with no website, or with a website that exposes no number, comes back without enrichment rather than with an approximate value. The promise is to fill as many fillable gaps as possible in a list, not to reach 100%.

Where do the additional numbers come from?

From the public pages of each prospect's website: home page, contact page, team pages, and legal notices (mentions légales). In France, a contact phone number is mandatory on professional websites under legal notice regulations (Service-Public.fr). The module reads those pages — not a reconstructed database.

What is E.164 format and why use it?

E.164 is the international numbering plan (ITU-T recommendation E.164): country code + national number, with no spaces or punctuation — for example +33612345678. All numbers found are rewritten in this form so they can be imported directly into a CRM or calling tool, and compared with each other.

Does the module distinguish between landlines and mobiles?

Yes. Once normalised, numbers are classified according to the national plan: per ARCEP, 01 to 05 designate landlines and 06/07 designate mobiles. The module therefore fills a separate mobile column distinct from the secondary landline column, making it easy to filter afterwards.

What does the output look like, and in what format?

Your list comes back with up to three added columns — phone_secondary, mobile, and fax — normalised to E.164 and deduplicated against the number already present. An empty column means "nothing found of that type", not an error. Export is available in CSV, JSON, or XLSX alongside the rest of the list.

Do I need to start from scratch, or can I enrich an existing list?

The module is designed to enrich a list that already exists. It takes your POIs with their websites as input — whether they come from an OutSend scrape or your own file — and adds the phone columns on top, without triggering a new extraction. It can also be chained downstream of a scrape inside a pipeline.

Try outsend for free

All-in-one. Far cheaper than every competitor. Alpha access on application.

Request free alpha access