To connect Google Business Profile to ChatGPT and Codex, authorize your managed locations in Markifact, add Markifact from ChatGPT Plugins, and attach the same plugin in Codex with /apps. The connection can report across locations and manage reviews, posts, hours, profile details, customer questions, and photos. Start with a read-only report, then keep every public or profile change behind an explicit approval.
This guide uses the hosted Google Business Profile MCP inside the wider Markifact MCP platform. You do not need to build a Google Cloud project, maintain Business Profile API credentials, or run a local MCP server.
The quick version
- Connect Google Business Profile inside Markifact.
- Open Plugins in ChatGPT and search for Markifact.
- Add or connect Markifact, then authorize the workspace containing your Business Profile connection.
- Attach Markifact to a new ChatGPT conversation.
- Select the intended locations and run a read-only performance report.
- In Codex, use
/appsto attach Markifact separately. - Review and approve every reply, post, hours change, profile update, Q&A answer, or media change before it runs.
The Google authorization lives in Markifact. ChatGPT and Codex are the AI clients that request operations through that managed connection.
What ChatGPT and Codex can do with Google Business Profile
This is a read-and-write connection, not a reporting-only connector. The current operation catalog is grouped below so you can see exactly where analysis ends and account management begins.
| Workflow | Current operation examples | Access |
|---|---|---|
| Location discovery and status | business_profile_select_accounts, business_profile_get_location_info, business_profile_check_location_status |
Read |
| Performance and local search demand | business_profile_list_report_fields, business_profile_get_report |
Read |
| Reviews and replies | business_profile_list_reviews, business_profile_reply_to_review, business_profile_delete_review_reply |
Read plus approval-gated writes |
| Posts and offers | business_profile_list_posts, business_profile_publish_post, business_profile_update_post, business_profile_delete_post |
Read plus approval-gated writes |
| Customer Q&A | business_profile_list_questions, business_profile_answer_question |
Read plus approval-gated write |
| Hours and profile details | business_profile_update_hours, business_profile_update_location |
Approval-gated writes |
| Photos and videos | business_profile_list_media, business_profile_upload_photo, business_profile_delete_media |
Read plus approval-gated writes |
Reporting currently includes total views, Search views, Maps views, calls, direction requests, website clicks, messages, bookings, food orders, menu clicks, and local search terms where Google makes those fields available.
The write catalog is broad, but it is still controlled. ChatGPT or Codex prepares a specific operation with specific locations and values. Markifact presents the external change for approval before it reaches Google.
Before you connect
You need:
- A Google account that owns or manages the intended Business Profile locations
- A Markifact workspace
- Permission to connect Google Business Profile in that workspace
- Access to ChatGPT Plugins or Codex apps under your account and workspace policy
Google Business Profile uses OAuth with the business.manage scope. Google's OAuth implementation guide explains the authorization used to access and modify profile data on behalf of the signed-in user.
Use only listings you own or are authorized to manage. Google's Business Profile API policies require prior specific and express consent for automated public changes, including review replies. That policy is one reason the write flow should never be an invisible background action.
1. Connect Google Business Profile in Markifact
Open Connections in Markifact, choose Google Business Profile, and start the Google authorization flow.
Sign in with the Google account that manages the locations you need. Review the consent screen, complete authorization, and return to Markifact.
If you manage several businesses or client accounts, name the saved connection clearly. A useful convention is:
Google Business Profile - Northstar Cafes - UAE
Confirm the connection before opening ChatGPT. The plugin cannot discover a location that the connected Google user cannot access.
2. Find Markifact in ChatGPT Plugins
Open ChatGPT Plugins and search for Markifact. ChatGPT currently labels this directory Plugins, so older screenshots or guides that say Apps may show the previous interface.
Sign in if prompted. Open the Markifact listing available to your account and follow the current add or connect flow. Workspace administrators can restrict plugin availability, so a Team or Enterprise user may need an administrator to enable it first.
The approved-plugin route does not require developer mode and does not require you to paste https://api.markifact.com/mcp into ChatGPT. That remote endpoint is used by clients that need a custom MCP URL, such as the separate Claude setup.
When ChatGPT opens the Markifact authorization flow, choose the workspace containing the Google Business Profile connection from step 1. The two authorization layers are separate:
- Google authorizes Markifact to access the Business Profile locations.
- You authorize ChatGPT to use Markifact for the current account or workspace.
3. Attach Markifact to a ChatGPT conversation
Start a new conversation and select Markifact from the plugin or tool picker. The exact picker label can vary as the ChatGPT interface changes, but the important state is that Markifact is attached before you send the Business Profile request.
Use this first prompt:
Use Markifact and my connected Google Business Profile locations.
List every available location with its name and location ID.
Then compare the last 30 complete days by location.
Include total views, Search views, Maps views, calls,
direction requests, and website clicks.
Sort by total views from highest to lowest.
Do not make any changes.
This gives ChatGPT enough information to select locations and use business_profile_get_report without guessing the account, date range, or metrics.
4. Verify the first location report
The reporting operation supports multiple locations, date presets, fixed ranges, comparisons, filters, sorting, and limits. Google's Business Profile Performance API is the underlying reporting family for profile views and customer actions.
Illustrative data. The locations and values are fictional, while the operation and field types are real.
Before acting on the result, check:
- Every location belongs to the intended business.
- The range contains complete days.
- The metrics are available for those locations.
- The comparison uses the same length and appropriate weekdays.
- Search and Maps totals look plausible against the Business Profile interface.
If you want local search demand, ask for searchTerm and monthlySearches. If you want to relate discovery to on-site behavior, continue in the same workspace with GA4 in ChatGPT and Codex. For paid local campaigns, use the separate Google Ads connection guide.
Use Google Business Profile in Codex with /apps
Codex can use the same Markifact plugin connection, but app enablement and permissions can be separate from a ChatGPT conversation.
In Codex:
- Type
/apps. - Search for Markifact.
- Select it so Codex inserts the app reference into the prompt.
- State the locations, intended operation, and whether external writes are allowed.
OpenAI's current Codex command documentation describes /apps as the command for browsing apps and connectors and inserting one as $app-slug.
Codex is especially useful when you want the Business Profile result turned into a local artifact, such as a Markdown report, CSV review queue, or content calendar. Writing a local report file is different from changing Google Business Profile. A post, reply, hours change, profile edit, Q&A answer, upload, or deletion is still an external operation and still needs approval.
Manage reviews without losing control
Start with business_profile_list_reviews. It returns review IDs, locations, star ratings, comments, dates, and reply status. That gives ChatGPT or Codex a precise queue before any public response is drafted.
List reviews from the last 30 days across all selected locations.
Put unanswered one-star and two-star reviews first.
Return location, review ID, rating, comment, date, and reply status.
Draft a response for each, but do not publish anything.
After checking one draft, request the exact write separately:
Prepare business_profile_reply_to_review for review REV-10482
at the Marina location using the approved response below.
[PASTE APPROVED RESPONSE]
Show the exact public text and wait for approval before posting.
Google's reviews resource supports listing reviews and managing the business reply. If a reply already exists, business_profile_reply_to_review replaces it. business_profile_delete_review_reply removes only the business reply, not the customer's review.
Do not approve a response that exposes personal information, invents compensation, argues with the reviewer, or uses a generic answer that ignores the actual complaint.
Publish and manage Business Profile posts
Markifact can list existing posts, publish new ones, update supported fields, and delete posts. business_profile_publish_post supports:
- Standard updates with
whats_new - Events with a title and start and end time
- Offers with event details and optional coupon information
- Optional public images
- Calls to action such as Book, Order, Shop, Learn More, Sign Up, and Call where supported
- Immediate publishing or a scheduled Markifact execution
Draft first:
Draft a Google Business Profile update for Downtown, Marina, and Jumeirah.
Announce the new weekend brunch menu in under 100 words.
Use LEARN_MORE with https://northstar.example/brunch.
Do not publish anything.
Then prepare the write:
Prepare business_profile_publish_post for the three selected locations.
Post type: whats_new.
Use the approved copy and LEARN_MORE URL.
Show every target location, the full text, CTA, URL, and publish time.
Wait for approval.
Google's local post creation method creates a post for a specific location. Multi-location publishing can produce a separate result for each profile, so inspect each returned status rather than assuming one success means every location succeeded.
Update hours and profile details carefully
Full management also includes opening hours and profile fields.
business_profile_update_hours can set regular weekly hours or special holiday hours. The supplied set replaces the existing set of that type, so the payload must include every open day or special date you intend to keep.
Read the current hours for the Downtown location.
Prepare special hours for August 30, 2026: 10:00 to 18:00.
Show the complete special-hours payload and what it will replace.
Do not run the update until I approve it.
business_profile_update_location can update description, phone numbers, website, internal labels, store code, and open status. It also supports advanced Business Profile fields. Changes to a business name, storefront address, or categories can trigger Google re-verification, so inspect the current value first and update one location at a time for location-specific fields.
Use business_profile_get_location_info for Marina.
Compare the current website, phone, description, and open status
with the approved values below. Prepare only the fields that differ.
Show the update mask and wait for approval.
[PASTE APPROVED VALUES]
Manage customer questions and photos
Use business_profile_list_questions to retrieve customer questions before preparing business_profile_answer_question. A new business answer replaces the previous business answer for that question, so confirm the question resource and final public wording.
For media, use business_profile_list_media to audit existing photos and videos. business_profile_upload_photo can add a public JPG or PNG by category, including cover, logo, exterior, interior, product, menu, team, or additional. business_profile_delete_media is permanent and should use the exact media resource returned by the list operation.
List media for every selected location.
Flag locations missing a cover photo or logo photo.
Do not upload or delete anything.
This is also where Google Maps MCP can help with separate public-place and competitor research. Keep competitor research distinct from changes to profiles you manage.
Copy-paste prompts for ChatGPT and Codex
Monthly location comparison
Compare the last complete month with the previous complete month
for every selected Business Profile location.
Include Search views, Maps views, calls, directions, and website clicks.
Rank locations by the absolute change in total actions.
Explain only what the returned data supports. Do not make changes.
Local search-term opportunities
Use business_profile_get_report with searchTerm and monthlySearches.
Return the top 30 terms by location for the last complete month.
Group similar intent and flag terms that suggest missing website content.
Do not change any profile.
Profile consistency audit
Retrieve location information for every selected profile.
Compare primary category, website, phone, hours, rating, and review count.
Flag missing or inconsistent values.
Prepare a proposed correction table, but do not update Google.
Holiday-hours preparation
Read the current hours for all selected locations.
Prepare special hours for the approved holiday schedule below.
Return one complete payload per location and identify every existing value
that would be replaced. Wait for approval before any update.
[PASTE APPROVED HOLIDAY SCHEDULE]
Review-response queue
List unanswered reviews from the last 14 days.
Put one-star and two-star reviews first.
Draft a concise response for each based only on the review text.
Return review ID, location, rating, original comment, and draft.
Do not publish replies.
Understand the permission and approval layers
There are four boundaries to keep clear:
- Google OAuth: the connected Google user determines which Business Profile locations Markifact can access.
- Markifact workspace scope: the selected workspace and saved connection determine which business the plugin can reach.
- ChatGPT or Codex plugin access: each client can require separate enablement and permission review.
- Operation approval: every external write waits for explicit approval with its exact target and payload.
Use separate workspaces or connections for unrelated clients. Name locations in every write prompt. Read the payload as if it were already public before you approve it.
For destructive operations, add an extra check. Deleting a post or media item is permanent. Replacing hours can remove omitted periods. Changing a name, address, or category can trigger re-verification. Approval is the last checkpoint, not a substitute for inspecting current state first.
Troubleshooting
Markifact does not appear in ChatGPT Plugins
Sign in, confirm that Plugins are available to your account, and search the current directory rather than using an old /apps link. Team and Enterprise administrators can restrict plugin availability. Ask the workspace administrator to enable Markifact if the listing is hidden.
ChatGPT is connected but no Business Profile locations appear
Check the Google Business Profile connection inside Markifact. Confirm that the Google user manages those locations and that you authorized the correct Markifact workspace. Reconnect Google if its authorization has expired.
Codex does not show Markifact under /apps
Confirm that the plugin is installed or available to the same ChatGPT account, then check Codex app enablement separately. Do not assume that attaching Markifact in one ChatGPT conversation automatically attaches it in Codex.
The report is empty or a metric is missing
List the available report fields first, verify the date range, and test one location. Some metrics depend on profile type, customer activity, and Google's data availability.
A write operation is missing
Refresh the Markifact plugin or connector metadata, confirm the workspace and operation scope, and verify that your user has permission to perform that Business Profile action. Do not substitute a different operation name.
The approval shows the wrong location
Cancel it. Restate the exact location name and location ID, retrieve current state again, and prepare a new payload. Never approve a multi-location write based only on a brand name.
A post or photo fails for one location
Inspect the result for that location. Check the public image URL, dimensions, post type, CTA, language, and location eligibility. Treat multi-location results individually.
A practical first workflow
The safest first session is a complete read-to-write loop with one low-risk change:
- List every accessible location.
- Run a 30-day performance report.
- Retrieve profile details and unanswered reviews.
- Draft replies without publishing.
- Choose one review and verify its ID and location.
- Approve one carefully checked reply.
- Retrieve the review again and confirm the public reply.
That sequence proves account selection, reporting, review discovery, approval, execution, and verification without beginning with a broad multi-location edit.
Frequently asked questions
Can ChatGPT connect to Google Business Profile?
Yes. Connect Google Business Profile to Markifact with Google OAuth, then add Markifact from ChatGPT Plugins and authorize the same workspace. ChatGPT can request both reporting and approval-gated management operations.
Can Codex access Google Business Profile?
Yes. Use /apps in Codex to attach Markifact, then reference it as $markifact in the prompt. Codex can use the same Markifact Business Profile connection, although its app enablement and permissions can be separate from ChatGPT.
Can ChatGPT reply to Google reviews?
Yes. business_profile_list_reviews retrieves review IDs and reply status. business_profile_reply_to_review posts or replaces the business reply after you approve the exact location, review ID, and public text.
Can ChatGPT publish Google Business Profile posts?
Yes. business_profile_publish_post supports standard updates, events, and offers with optional images and eligible calls to action. Publishing is an approval-gated external write.
Can ChatGPT update opening hours and profile details?
Yes. Markifact exposes approval-gated operations for regular and special hours plus supported profile fields. Hours payloads can replace an entire set, and changes to names, addresses, or categories can trigger re-verification, so inspect current values first.
Do I need a Google Cloud project?
No. Markifact manages the hosted Google OAuth and Business Profile API integration. A direct self-hosted integration would require Google Cloud configuration, credentials, secure token storage, API access, and ongoing maintenance.
Does Google offer an official Google Business Profile MCP server?
Google documents the Business Profile APIs, but it does not currently list an official Google Business Profile MCP server. Markifact provides a managed MCP and plugin layer over the relevant Google APIs.
Is it safe to let ChatGPT manage a Business Profile?
The safe setup is scoped and approval-driven. Use the correct Google login, separate client workspaces or connections, start with read-only reports, inspect current state before edits, and approve only exact external payloads you understand.









