Google Business Profile
Your agents keep your listing current, post updates, and answer every review and question as the business within the hour.
- Connect
- Sign in once, 1 grant
- Runs through
- Your account
- First run
- Read the last 28 days of calls, website clicks and searches, free on your account
Draft the answer to Ray’s five-star review, as the business.
curl -X POST "https: //api.sb/ leaseline.app/ conversations/ answer? mode= try" \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Content-Type: application/ json" \
-d '{"conversation": "conversations/ review-ray", "body": "Thank you, Ray. Glad the reminders cut your chasing to one text a month."}'
npx startup-builder do Conversation.answer --try --data '{"conversation": "conversations/ review-ray", "body": "Thank you, Ray. Glad the reminders cut your chasing to one text a month."}'
{
"name": "do",
"arguments": {
"mode": "try",
"code": "return await $.Conversation.answer({ conversation: 'conversations/ review-ray', body: 'Thank you, Ray. Glad the reminders cut your chasing to one text a month.' })"
}
}
import { $ } from 'startup-builder'
const result = await $.try.Conversation.answer({ conversation: 'conversations/ review-ray', body: 'Thank you, Ray. Glad the reminders cut your chasing to one text a month.' })
{
"$type": "Conversation",
"mode": "try",
"stored": false,
"venue": "google-business-profile",
"review": {
"rating": 5,
"author": "Ray",
"body": "Set it up in an afternoon. Late rent went from a weekly chore to a monthly one."
},
"answer": "Thank you, Ray. Glad the reminders cut your chasing to one text a month.",
"showsAs": "Response from the owner"
}
Connect once
- Call
Integration.connectwithsystem:and'sites-and-content' venue:, then open the'google-business-profile' connectUrlit returns and sign in as an owner or manager of the profile. - Pick the profile; a new one starts Google’s verification, and your agents post once Google verifies it.
| Grant | What it unlocks | Scope |
|---|---|---|
| Manage your profile | Hours, categories and links, updates, photos, and answers to reviews and questions | https:/ |
| To | Do this |
|---|---|
| Pause | Integration.pause stops every call through Google at once and keeps the token; Integration.resume picks up from the same cursor. |
| Reconnect | Integration.reconnect returns a fresh connectUrl that lasts one hour, and keeps the Integration's id and cursor, so nothing imports twice. |
| Disconnect | Integration.revoke revokes the token with Google; every record it brought in stays in your records. |
What your agents do
| Ask | Verb | Runs through | Price |
|---|---|---|---|
| Answer each new review as the business. | Conversation.answer | Your account | Free |
| Post this week’s update with the new template. | Post.publish | Your account | Free |
| How many calls, website clicks and direction requests did the profile get this month, and from which searches? | Metric.query | Your account | Free |
| Change our hours for the holiday week. | Integration.call | Your account | Free |
Calls on your own account are free.
What it holds
| Noun | The account’s object | When | Which side leads |
|---|---|---|---|
| Review | review | A customer leaves one | The account |
| Post | localPost | Your agent posts an update | Your records |
| Message | reviewReply | Your agent answers a review | Your records |
Events and webhooks
| Direction | Event |
|---|---|
| Emits | Conversation.answered, Post.published, Review.created |
Hears NEW_REVIEW | Becomes Review.created |
Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).
Limits
| What | Limit | Call |
|---|---|---|
| A new profile | Shows nothing your agents post until Google verifies it | Post.publish |
| Review answers | Show publicly under the review, as the business; the agent drafts one within the hour of the review | Conversation.answer |
Field map
| Our field | Google Business Profile’s field | Calls |
|---|---|---|
Post.body | localPost.summary | Post.publish |
Post.link | localPost.callToAction.url | Post.publish |
Post.media | localPost.media | Post.publish |
What try does here
Returns the update or the answer as it will show on your profile; nothing posts.
How long a connection lasts
A connection lasts until you revoke it in your Google Account; Google also ends a grant left unused for six months, and every call your agents make counts as use.
The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.
Plays and strategies
| Kind | Where |
|---|---|
| Plays | Directory listings, Review requests, Outbound calling |
| Strategies | Launch and search |
Used by
No Workflow, agent task or Service acts through it yet: your agents call it directly.
Reference
4 calls, each with its path and price
| Call | Path | Price |
|---|---|---|
Conversation.answer | POST / | Free |
Post.publish | POST / | Free |
Metric.query | POST / | Free |
Integration.call | POST / | Free |