Google Business Profile

Connecting Google Business Profile

Connect your Business Profile through Google OAuth to unlock seven checks the public Places API cannot answer, and what happens without it.

Updated

EchoPilot reads your Google Business Profile in two ways. Without a connection, it uses the public Google Places API and the listing you picked in the setup wizard. With a connection, it also reads the owner side of the profile through the Business Profile APIs. The connection is made at /app/integrations.

What the connection unlocks

Seven checks read fields the public Places API does not expose. Until you connect, they are marked not assessable with the reason "Google Business Profile not connected":

  • G2 — the profile exists and is claimed (a gating check).
  • L1 — the profile is claimed and verified.
  • L5 — a post was published in the last 30 days.
  • L7 — the services or products list is populated.
  • L11 — the Q&A section has at least three owner-seeded questions.
  • R4 — owner response rate to reviews is at least 70%.
  • R5 — negative reviews (two stars or fewer) were answered within 7 days.

These rules list two sources, gbp_owner|gbp: the owner-side data is tried first, and the public data second.

What Places can and cannot answer

From the public listing EchoPilot reads the name, address, phone, website, rating, review count, whether opening hours are set, the photo count and the public reviews. That is enough for L2, L3, L6, R1, R2 and R3.

Places does not expose claimed or verified status, posts, Q&A, duplicates, the services list, photo dates or owner replies. Two rules adjust for that: L4 (at least ten photos, one under 90 days old) can only reach partial from Places because photo dates are unknown, and L10 (no duplicate listings) is judged from the number of matching profiles in the search results. The remaining owner-side fields are reported as not assessable.

Connecting

  1. On /app/integrations, press "Connect Google Business Profile".
  2. Google shows its consent screen and asks for the business.manage permission. It is the only scope Google offers for reading a profile, so the wording says "manage"; EchoPilot only reads. Tick the Business Profile box or the connection is refused with a message.
  3. Google returns a long-lived refresh token. It is sealed with AES-256-GCM and stored; it is never logged or shown. The Google account email is kept for display.
  4. If the account has one location, it is selected. If it has several, pick the one to audit from the list on the page.

The page then shows the connected account, the chosen location, when it was connected, the last sync, and the last snapshot: verified status, post count, Q&A count, review count and services count, plus any field Google refused.

During an audit

Each run refreshes an access token from the stored refresh token and takes a snapshot of the location: business information, verification status, Q&A, posts and reviews. If Google refuses a single field, only that field's rule is affected. If Google refuses everything, the rules fall back to Places where they can and otherwise report "Business Profile API unavailable (quota or access not granted)".

Token health, reconnect, disconnect

The page shows a health chip: "token ok", "reconnect needed" or "API unavailable". If Google reports the access as expired or revoked, EchoPilot marks the connection, sends one email to the account members asking you to reconnect, and the seven checks return to not assessable. "Refresh status" re-checks the token and the location list. "Reconnect" runs the consent flow again. "Disconnect" revokes the stored token immediately; nothing is guessed afterwards.

If Google does not return a refresh token, the message asks you to remove EchoPilot at Google's third-party access page and connect again. If the server has no Google credentials configured, the button is hidden.

Nothing is written

The connection is used only to read the data the checks need. Posting to your profile is a later phase and, when it arrives, requires a person on your account to approve each item first. Social accounts (Facebook, Instagram, LinkedIn, X, TikTok) cannot be connected yet; the audit reads public profile metadata only.

Still stuck? Email [email protected] and a person will answer.