Google Business Profile API: posting reference
Google Business is supported via the Google Business Profile API. OmniSocials publishes "local posts" (the short updates that appear on your Google Business Profile) to a specific business location, which the workspace owner selects when connecting the account.
For an overview and use cases, see Google Business Profile API.
Channel ID: google_business
Supported content types
| Type | Supported | Notes |
|---|---|---|
| Local post (feed post) | ✅ | Text-only, or text + a single image, with an optional call-to-action button |
| Story | - | Not supported by Google Business |
| Reel | - | Not supported by Google Business |
Minimal example
Terminal
Media is optional. A caption-only post is a valid Google Business post.
Caption rules
Google Business rejects posts whose caption contains a phone number or a URL; the API returns a generic 400 with no specific field, so a post that contains either silently fails at publish time. OmniSocials catches this at scheduling and returns a validation_error 400 with a clear message so you can fix the input before saving the post.
| Rule | Why |
|---|---|
No phone numbers in the caption. Put the phone number on a CALL ("Call now") CTA button instead; Google uses the phone number from your Business Profile automatically. | Google's content policy. |
No inline URLs, bare domains, or email addresses in the caption. Put the link on a LEARN_MORE, BOOK, SHOP, SIGN_UP, or ORDER CTA button instead. | Google's content policy. |
| Caption max 1500 characters. | Google's hard limit. |
| A Google Business location must be selected on the workspace (Settings → Organisation → Workspaces → Google Business). | Local posts target a single location; we surface this at scheduling instead of failing hours later at publish. |
Media requirements
| Media | Requirement |
|---|---|
| Image | JPEG, PNG, or WebP (WebP is converted to JPEG at post time). 10 KB to 5 MB. Recommended 720 × 540 minimum, 4:3 aspect ratio. |
| Video | Not supported. Google Business has been quietly disabling video on local posts; passing a video URL is rejected at scheduling with a 400. |
Google Business local posts accept at most one image per post. Posts with multiple media URLs (carousels) are rejected; only one image fits in a local post's Google Business UI.
Post types
Google Business supports three post types beyond a plain caption. Pass google_business.topic_type to switch; STANDARD is the default.
Call-to-action button (works on every post type)
Add a button rendered under the caption. actionType is required; url is required for every value except CALL (which uses the location's phone number from the business profile).
Terminal
actionType enum: LEARN_MORE · BOOK · ORDER · SHOP · SIGN_UP · CALL. Google shows them as the buttons Learn more, Book, Order online, Buy, Sign up and Call now; the OmniSocials composer uses the same labels.
EVENT posts
Terminal
event.title is required (max 58 chars). schedule.startDate is required; endDate (if present) must be ≥ startDate.
OFFER posts
Terminal
Google requires an event on offers too: event.title is the offer's name (max 58 chars) and schedule.startDate its first day; endDate (if present) must be ≥ startDate. An OFFER without event.title or event.schedule.startDate returns 400 validation_error. The offer must include at least one of couponCode (max 58 chars) or redeemOnlineUrl (must be HTTPS). termsConditions is optional, max 4000 chars.
Limitations
- Per-post analytics are not available. Google deprecated per-post insights on local posts. The OmniSocials analytics API returns no numbers for individual Google Business posts: the entry carries
metrics_unavailable: trueand an explanatorynoteinstead. - Account-level metrics are available for the location via Google's Performance API: views (split across Desktop / Mobile, Maps / Search), calls, direction requests, website clicks, bookings, food orders and menu clicks, plus the rating and the review count. Read them with
GET /analytics/accounts(MCP:get_account_analytics) or on the analytics page in the dashboard, as a daily series over the last 30 days. - No follower concept. Google Business does not expose a follower count, so the account analytics carry no
followersvalue. - Location-bound. Posts target the single location selected during connection; a workspace posts to one location. To post to multiple locations, connect each location as a separate workspace.
- Posts disappear after 6 months. This is a Google Business product behavior: local posts age out of the profile after roughly 6 months. OmniSocials still has the original post record in your post history.
Connecting
Connect Google Business via Settings → Organisation → Workspaces → connect Google Business in the OmniSocials dashboard. Right after the Google sign-in you pick the business location the workspace publishes to; when the account manages only one location, it is selected automatically. A Google account without any Business Profile location cannot be connected. The workspace cannot schedule Google Business posts until a location is selected.
If you manage multiple Google Business locations, you can connect each one to a separate OmniSocials workspace and switch between them via the workspace selector.