Voxa's Lead Finder searches business directories for prospects by category and city, then imports what you pick as leads in a campaign. Google Places is one of its sources, and it is the one that runs on your own Google Cloud key.
That is deliberate. There is no platform key behind Google Places on Voxa, so every search bills to your project, at your rates, with nothing added on top. This guide covers getting a key, restricting it properly, wiring it up, keeping the bill at or near zero, and reading Google's errors when a search fails.
What Google Places is good for
Lead Finder has several sources and they are not interchangeable:
| Source | Cost | Best for |
|---|---|---|
| OpenStreetMap / Overpass | Free | Broad local business searches, permissive reuse terms |
| Google Places | Your Google Cloud bill | Fuller, fresher business data with phone numbers |
| SAM.gov Entity | Free | Federal registrants, searched by NAICS code |
| EPA ECHO | Free | Permitted facilities, searched by NAICS code |
Google Places tends to win on data quality and coverage for local consumer-facing businesses. Overpass wins on cost and on licensing. Many teams run Overpass first and reach for Google Places when a category comes back thin.
Step 1: create a Google Cloud API key
- Open the Google Cloud console and select or create a project.
- Enable the Places API for that project under APIs and Services.
- Enable billing on the project. Google requires a billing account on the project even for usage that falls inside its free monthly allotment. Without it, every call comes back denied.
- Create an API key under APIs and Services, Credentials.
Step 2: restrict the key before you use it
An unrestricted Places key is a real liability, because anyone who finds it can spend your money. Restrict it as you create it:
- API restriction: limit the key to the Places API only. Do this even if the project has nothing else enabled.
- Application restriction: Voxa calls Google from the server, not the browser, so an HTTP referrer restriction will block every call. If you want a second layer, use an IP address restriction set to your Voxa server's outbound IP. Leave it unrestricted otherwise.
- Quotas: set per-day caps in the Google Cloud console as a hard backstop, separate from the limits you will set inside Voxa.
Step 3: add the key in Voxa
- Open Settings, Lead Sources (
/settings/lead-sources). This needs theorg.settings.managepermission, which the Admin role has by default. - Paste the key into Google Places API Key.
- Check that Google Places is ticked in the sources list. All platform-enabled sources are on by default for a new organization, so usually it already is.
- Save.
Until a key is saved, Google Places still appears in the Lead Finder source dropdown but is labelled to tell agents to add a key in settings, so nobody wastes a search wondering why it returns nothing.
Step 4: run a search
- Open Lead Finder (
/finder). Agents need theleadfinder.managepermission. - Pick Google Places as the source.
- Enter a business category and a city, and optionally a state.
- Optionally tick exclude results that already have a website, which is useful if what you sell is a website.
- Search, then import the results you want into a campaign.
Each Google Places search returns up to 10 results. Every imported lead is screened against your do-not-call list and blacklist on the way in, the same as a CSV import or a web lead.
What a search actually costs you
This is the part worth understanding before you turn a team loose on it. Google's Text Search does not return phone numbers, and a lead without a phone number is not much use on a calling floor. So Voxa makes a follow-up Place Details call for each result.
One search therefore costs:
- 1 Text Search call, plus
- up to 10 Place Details calls, one per result.
Two things keep that from running away:
The quota gate. On by default, with a monthly cap per call type that starts at Google's published free monthly allotment for each. Usage is counted per calendar month, and the settings page shows how much is left. When a cap is hit, searches stop with a message telling you to raise the limit, disable the gate or wait for next month, rather than quietly running up a bill. You can raise either cap or switch the gate off entirely and accept billed usage.
The response cache. Both Text Search and Place Details responses are cached for 24 hours by default, so rerunning the same search inside that window costs nothing extra. Two agents searching "plumbers in Austin" on the same morning is one billable search, not two. Only genuinely successful responses are cached, so an error caused by billing not being switched on yet does not get locked in for the day; the next attempt goes live to Google again.
Reading Google's errors
Google's Places API returns HTTP 200 even when the call failed. The real outcome is in the response body's status field, which is why a naive integration reports a denied key as "no results found". Voxa checks that field explicitly and surfaces the status to you. The ones you will see:
| Status | What it usually means |
|---|---|
REQUEST_DENIED |
Places API not enabled on the project, key restricted in a way that blocks server calls (often an HTTP referrer restriction), or an invalid key |
OVER_QUERY_LIMIT |
Billing not enabled on the project, or a Google-side quota exhausted |
INVALID_REQUEST |
A required parameter is missing or malformed |
ZERO_RESULTS |
The call succeeded. That category genuinely has no matches in that city |
If you hit the cap Voxa itself enforces, the message comes from Voxa and names the call type, Text Search or Place Details, so you know which limit to raise.
A note on terms
Google's Places API terms place restrictions on caching and storing results. Importing results into your own CRM as permanent lead records is a decision to make with your own reading of those terms and your own counsel, not something to assume because a button exists. If you want a source with no reuse restrictions, OpenStreetMap via Overpass is licensed under the ODbL and explicitly permits this use with attribution, and it is free.
Saved searches
Any search can be saved with a name, a target campaign and a cadence, so a recurring hunt for new businesses in a category reruns without anyone retyping it. Saved searches live at Lead Finder, Saved searches.
Everything else that is bring-your-own
Google Places is one of three places where Voxa deliberately declines to sit in the middle of your bill:
- Calling runs on your own Twilio, SignalWire or Vonage account.
- Google Places runs on your own Google Cloud key.
- AI features like note summaries and pitch suggestions run on your own Anthropic or OpenAI key.
In each case you pay the vendor directly and Voxa takes no cut.