Skip to content
Platforms

Google Business: posting rules and settings

What a Google Business channel accepts in Postemi: media, limits, required fields, and the fields of the settings object for the API.

Not available to connect yet

The Google Business channel is built, but the platform has not approved the connection yet, so you cannot connect it today. Postemi will accept the fields below once it is approved.

Basics

Platform
Google Business
Character limit
The platform does not specify a general limit.
Media
Image or video, optional.
settings.__type
gmb
Required fields
No required settings fields.

Post types

The same channel accepts more than one kind of post, and each kind has different requirements. The table shows what you need for each.

TypeMediaNotes
Generalimage or video, optionaltopicType: STANDARD.
EventoptionaltopicType: EVENT. You need the event title and time.
OfferoptionaltopicType: OFFER. You can include a coupon code and a redemption URL.

Rules

  • There are three post types: standard, event, and offer. Event and offer come with their own required fields.
  • The URL set for the button must be a valid address.

Settings fields

These fields go into the post's settings object, alongside the __type field. In the UI, you fill in the same ones in the channel's settings section.

FieldTypeRequiredWhat it does
topicType"STANDARD" | "EVENT" | "OFFER"noThe post type. The default is standard.
callToActionType"NONE" | "BOOK" | "ORDER" | "SHOP" | "LEARN_MORE" | "SIGN_UP" | "GET_OFFER" | "CALL"noThe type of button under the post.
callToActionUrlstring (URL)noThe button's destination URL.
eventTitlestringnoThe event title. Required for the EVENT type.
eventStartDate, eventEndDate, eventStartTime, eventEndTimestringnoThe event start and end, with date and time in separate fields.
offerCouponCode, offerRedeemUrl, offerTermsstringnoThe offer's coupon code, redemption URL, and terms. Used with the OFFER type.

Allowed values

The fields below only accept these values. Any other value returns a 400, and the response names the field.

topicType

ValueMeaning
STANDARDGeneral post.
EVENTEvent, with a start and end time.
OFFEROffer, with a coupon and terms.

callToActionType

ValueMeaning
NONENo button.
BOOKBook.
ORDEROrder.
SHOPShop.
LEARN_MORELearn more.
SIGN_UPSign up.
GET_OFFERGet offer.
CALLCall.

Examples

Each example is one item in the POST /public/v1/posts request's posts array. The envelope around it is always this:

{
  "type": "schedule",
  "date": "2026-09-15T09:00:00.000Z",
  "shortLink": false,
  "posts": [ /* the item below */ ]
}

General post with a button

{
  "integration": { "id": "<gmb-channel>" },
  "value": [{ "content": "<p>New opening hours from January.</p>", "image": [] }],
  "settings": {
    "__type": "gmb",
    "topicType": "STANDARD",
    "callToActionType": "LEARN_MORE",
    "callToActionUrl": "https://example.com/opening-hours"
  }
}

Event

{
  "integration": { "id": "<gmb-channel>" },
  "value": [{ "content": "<p>Open day at the workshop.</p>", "image": [] }],
  "settings": {
    "__type": "gmb",
    "topicType": "EVENT",
    "eventTitle": "Open day",
    "eventStartDate": "2026-10-04",
    "eventStartTime": "10:00",
    "eventEndDate": "2026-10-04",
    "eventEndTime": "16:00"
  }
}

Offer

{
  "integration": { "id": "<gmb-channel>" },
  "value": [{ "content": "<p>October offer.</p>", "image": [] }],
  "settings": {
    "__type": "gmb",
    "topicType": "OFFER",
    "offerCouponCode": "OCT20",
    "offerRedeemUrl": "https://example.com/offer",
    "offerTerms": "Valid for one purchase."
  }
}

The channel ID comes from the channel list, and the path values for images and videos from media upload. The exact schema for the connected account comes from the settings schema endpoint. From the command line, the same thing is the --settings flag. See the CLI examples.

Is something missing from this page? Email [email protected] or use the form on the Help page.