Google Business

Publish local posts to a Google Business Profile location. The platform id is the underscore form google_business (even though this page lives at /docs/platforms/google-business). Three post topics are supported — STANDARD updates, EVENT posts and OFFER posts — selected with the topicType config field. Media is URL-ingested; the Business Profile API has no comments surface, so first-comment and thread containers are ignored.

EVENT and OFFER posts need event.title

When topicType is EVENT or OFFER, config.google_business.event.title is required — omitting it fails the target before publishing. The post also needs a resolvable location: pass locationName, or accountId together with a location id on the connected account.

Supported content

  • STANDARD — a plain update post.
  • EVENT — an event with a title and start/end schedule.
  • OFFER — an offer with an optional coupon code, redeem URL and terms.

Each topic may attach a photo by URL (mapped to PHOTO). Local posts do not support video — Google accepts photos only.

Limits

PropertyValue
Summary1,500 characters (truncated if longer)
MediaA single photo via public URL (video is not supported on local posts)
First commentNo
Post expirySTANDARD 7d · EVENT until the end date · OFFER until expiry
MetricsNo post-level metrics (deprecated by Google)

Configuration fields

Set under config.google_business:

FieldTypeNotes
topicTypestringOne of STANDARD, EVENT, OFFER. Defaults to STANDARD.
locationNamestringFully-qualified accounts/{a}/locations/{l} post parent.
accountIdstringAccount id (or accounts/{id}), combined with the account’s location id when locationName is absent.
languageCodestringBCP-47 language code. Defaults to en-US.
callToActionobject{ actionType, url }actionType is one of BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL (CALL takes no url).
eventobjectRequired for EVENT/OFFER. { title, startDate, endDate, startTime, endTime }; title is required.
offerobjectFor OFFER posts: { couponCode, redeemOnlineUrl, termsConditions }.

Date parts accept { year, month, day } (or the { y, m, d } shorthand) and time parts accept { hours, minutes }. The container’s content becomes the post summary.

Required scopes

Google Business uses Google OAuth 2.0 (offline access). Configure scopes on the BYOK network record; PostFuze expects:

  • https://www.googleapis.com/auth/business.manage
  • openid, email, profile — identity

Create a post

An EVENT post with a date range and a “Sign up” call to action:

curl
curl https://api.postfuze.com/api/v1/posts \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "accounts": ["acct_gbp_01"],
    "containers": [
      {
        "content": "Join our free workshop: build a multi-platform publisher in an afternoon.",
        "media": [{ "id": "media_workshop" }]
      }
    ],
    "config": {
      "google_business": {
        "topicType": "EVENT",
        "event": {
          "title": "PostFuze Build Workshop",
          "startDate": { "year": 2026, "month": 7, "day": 14 },
          "endDate":   { "year": 2026, "month": 7, "day": 14 },
          "startTime": { "hours": 17, "minutes": 0 },
          "endTime":   { "hours": 19, "minutes": 0 }
        },
        "callToAction": { "actionType": "SIGN_UP", "url": "https://postfuze.com/workshop" }
      }
    }
  }'
201 Created
{
	"id": "post_d214",
	"status": "queued",
	"default_config": {
		"google_business": {
			"topicType": "EVENT",
			"event": { "title": "PostFuze Build Workshop", "startDate": { "year": 2026, "month": 7, "day": 14 }, "endDate": { "year": 2026, "month": 7, "day": 14 }, "startTime": { "hours": 17, "minutes": 0 }, "endTime": { "hours": 19, "minutes": 0 } },
			"callToAction": { "actionType": "SIGN_UP", "url": "https://postfuze.com/workshop" }
		}
	},
	"containers": [
		{ "id": "ctr_g1", "position": 0, "role": "main", "content": "Join our free workshop: build a multi-platform publisher in an afternoon." }
	],
	"targets": [
		{ "id": "tgt_gbp1", "social_account_id": "acct_gbp_01", "platform": "google_business", "status": "queued", "platform_post_id": null }
	]
}

Because Google deprecated post-level insights, GET /posts/{id}/analytics returns no metrics for Google Business targets.