Google Business Profile
Publish your locations to Google Search and Maps from Gridwork
Gridwork's Google Business Profile (GBP) integration publishes your companies and locations directly to Google Search and Maps. Each location becomes its own listing under a Business Profile group. New listings created here include their address, phone, opening hours, industry, and photos pulled from your gallery.
This is a push-only integration: Gridwork is the source of truth and we update Google when you save changes here. We never read profile edits from Google back into Gridwork.
What you'll need before starting
- A Google Cloud project approved for the Business Profile APIs. Google requires a one-time approval per Cloud project before any API call returns more than
PERMISSION_DENIED. Apply via the Business Profile API access form — historically takes 1–4 weeks. You can connect to Gridwork now and the live calls light up the moment approval lands. - An OAuth 2.0 client in that Cloud project. The redirect URI must match
https://your-app.example.com/api/oauth/google-business-profile/callbackexactly. - Three environment variables set in your Vercel project:
GOOGLE_BUSINESS_PROFILE_CLIENT_ID,GOOGLE_BUSINESS_PROFILE_CLIENT_SECRET,GOOGLE_BUSINESS_PROFILE_REDIRECT_URI.
Two connection modes
Gridwork supports two ways to connect, picked at the time you click "Connect":
Centralised (account-level)
One OAuth grant covers the entire Gridwork account. Best for PE roll-up groups and franchisors who manage every Google listing themselves — the HoldCo's marketing team connects once with their central Google account, and Gridwork creates one Business Profile group per company under that identity.
Open Settings → Integrations → Google Business Profile to start.
Federated (per-company)
Each Gridwork company connects its own franchisee's Google account. Best for franchise networks where individual franchisees own their own Google identity — they sign in with their own credentials and Gridwork stores a separate token per company.
Open the per-company Google Business Profile page to start.
You can mix and match — most companies under an account use the centralised connection, but a specific company can override with its own federated token. Federated wins when both are present.
Setting up Google Business Profile for a company
After connecting:
- Pick the company's industry. Open the company edit form and set the industry. The picker is backed by Google's Business Profile taxonomy, so the same value also feeds future Bing/Apple/Yelp integrations. Industries drive how Google classifies your business and which features it offers (e.g. "book an appointment").
- Create the Business Profile group. On the company's Google Business Profile page, click Create Business Profile group. Gridwork calls Google's
accounts.createand stores the new group's resource name on the company. - Publish each location. Click Publish to Google on a location row. Gridwork creates the location on Google with its address, phone, industry, and website URL.
Verification
New Google listings are invisible on Search and Maps until they're verified. Right after a location is created, Gridwork asks Google what verification methods it offers and pops up a Verify your Google listing modal:
- Postcard — Google mails a verification code to the location's address. Arrives in 5–14 days. The location stays in Pending verification – postcard expected by {date} state until you come back, click Enter code, and submit it.
- Phone call / SMS — Google calls or texts the location's primary phone number with a code. Instant.
- Email — Google emails the code to one of a few addresses tied to your business. Instant.
Which methods are offered depends on the business category, region, and trust signals — Google decides, not us. Most newly-created listings get postcard and at most one instant method.
Keeping listings in sync
Once a location is verified, the Sync to Google button on its row pushes the latest data:
- Address, phone, website, industry — sent via Google's PATCH endpoint with a precise
updateMaskso we never clobber fields the customer edited directly in Google. - Photos — the company logo is pushed as the listing's
LOGO. Gallery items push under their respective category (COVER,EXTERIOR,INTERIOR, …). Gridwork remembers which photos it has already uploaded and skips re-uploads. Singleton categories (COVER,PROFILE) only push the first item — the rest are flagged in the gallery UI.
Sync is on-demand: nothing pushes automatically. Click the button when you want Google to receive your changes.
Naming templates
When Gridwork creates a Business Profile group or location on Google, it derives the name from a template you control. Open the integration card in Settings → Integrations to set defaults, or override per company on the per-company GBP page.
Template variables:
| Variable | Resolves to |
|---|---|
| {accountName} | Your Gridwork account name |
| {companyName} | The company being published |
| {locationName} | The Gridwork location's display name |
| {city} | The location's city |
| {country} | The location's country |
Defaults: {accountName} — {companyName} for groups, {companyName} {city} for location titles.
Limits and gotchas
- Phone numbers must be E.164. Gridwork normalises automatically when you save a location; numbers that won't parse get a friendly error.
- Locations need a street, city, and country before they can be published.
- Service-area businesses (mobile services with no storefront) aren't supported in v1 — every location needs a real address.
- Name changes don't push. Once Google has a name for a verified listing, Gridwork doesn't rename it on subsequent syncs (it's a footgun on the Google side and they recommend against it). A future iteration may add an opt-in toggle.
- Photo deletes don't propagate. Removing a photo from Gridwork's gallery doesn't remove it from Google. Manually delete on the Google side too if needed.
- Posts (announcements, offers) aren't synced yet. Coming in a follow-up iteration.
Disconnecting
In Settings → Integrations → Google Business Profile click Disconnect. Gridwork clears the stored token and best-effort revokes it on Google's side. Your existing Google listings remain on Google — only the link from Gridwork is removed. You can reconnect at any time.
Still need help? Contact support