Skip to content

Every hour

Approve replies to Google reviews from Slack

Each new Google review is posted in Slack with its mood and a draft reply, and the reply goes live when you approve it.

Runs
Every hour
Apps
Google Business Profile, Slack
AI
Yes, uses the built-in AI allowance
Access
GBP manage; Slack chat:write

Send this to your assistant

Create a ClickRuntime automation: every hour, post each new Google review to #reviews with its sentiment and a draft reply. When someone reacts with a tick, publish that reply on Google.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Review replies are often written by whoever has the login, when they have time. Other people in the team never see the reviews, and an angry one can sit for days before anyone answers.

Multi-person teams such as restaurants, clinics and agencies managing client profiles use it to share every review with the team, agree on the reply in Slack and publish it without anyone logging in to Google.

What you get out of it

  • The whole team sees every review

    Reviews reach the channel where staff already talk, so praise and complaints are shared the same day.

  • Replies get a second pair of eyes

    Nothing is published until someone approves it, which matters most for unhappy customers.

  • No Google login needed

    Approving takes one reaction in Slack. Only the automation needs access to the Business Profile.

  • Mood at a glance

    A short sentiment label shows which reviews need a careful answer first.

How it works

What happens, step by step

  1. Every hour, ClickRuntime checks your Business Profile for reviews it has not posted to Slack yet.

  2. AI labels the review's mood and drafts a reply.

  3. The review, mood and draft are posted to your Slack channel.

  4. On each check, drafts that someone has approved with a ✅ reaction are published on Google.

Before it runs live

  • Connect Google Business Profile
  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsEvery hour
Approve replies to Google reviews from Slacktoday, 9:00Succeeded
Slack · #reviewsTwo stars · negative · Lee P. "Waited 40 minutes past my appointment." Draft: We're sorry about the wait, Lee. Please call us so we can put it right.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Google Sheets
  • Combine it with other Google Business Profile and Slack steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
new_google_reviews_in_slack_with_ai_reply_to_approve.pyexample
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials, http, state, ai

LOCATION = "accounts/1234567890/locations/9876543210"
CHANNEL = "C0123REVIEWS"
SCHEMA = {"type": "object", "properties": {"mood": {"type": "string"}, "reply": {"type": "string"}}}

@on_trigger
def run(event):
    auth = {"Authorization": f"Bearer {credentials.connection('google', 'work')}"}
    slack, pending = WebClient(token=credentials.connection("slack", "work")), state.get("pending") or {}
    for ts, p in list(pending.items()):
        msg = slack.reactions_get(channel=CHANNEL, timestamp=ts)["message"]
        if any(r["name"] == "white_check_mark" for r in msg.get("reactions", [])):
            http.put(f"https://mybusiness.googleapis.com/v4/{p['review']}/reply", headers=auth, json={"comment": p["reply"]})
            slack.chat_postMessage(channel=CHANNEL, thread_ts=ts, text="Reply published on Google.")
            del pending[ts]
    reviews = http.get(f"https://mybusiness.googleapis.com/v4/{LOCATION}/reviews", headers=auth).json().get("reviews", [])
    last = state.get("last") or ""
    for r in [r for r in reviews if r["createTime"] > last and "reviewReply" not in r]:
        out = ai.generate(f"Label the mood (positive, mixed, negative) and draft a short, kind reply from Acme Dental:\n"
                          f"{r.get('comment', '')[:1500]}", json_schema=SCHEMA, max_output_tokens=200).json
        posted = slack.chat_postMessage(channel=CHANNEL, text=f"*{r['starRating'].title()} stars* · {out['mood']} · "
                 f"{r['reviewer']['displayName']}\n>{r.get('comment', '(no text)')}\nDraft: {out['reply']}\nReact ✅ to publish.")
        pending[posted["ts"]] = {"review": r["name"], "reply": out["reply"]}
        last = max(last, r["createTime"])
    state.set("pending", pending)
    state.set("last", last)
    return {"pending": len(pending)}

FAQ

Common questions

How do I approve a reply?
React to the Slack message with a ✅. On the next check, the reply is published on Google and the message is updated to say so.
Can I change the draft before it is posted?
Write your own version as a reply in the Slack thread and react to your message instead. The approved text is what gets published.
How soon is an approved reply published?
On the next check, within the hour. Ask for a shorter interval if you want approvals to go out faster.
What permissions does it need?
GBP manage; Slack chat:write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Approve replies to Google reviews from Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.