Google Review Webhooks
How to receive Google Business Profile review notifications and match them to review requests.
Review Manager can subscribe to Google Business Profile review notifications through Google Cloud Pub/Sub. When Google publishes a new or updated review notification, Review Manager fetches the full review, stores it, and tries to match it to the project that requested the review.
Settings
Open Settings in the admin panel and fill in the Google Review Webhooks section.
| Setting | Purpose |
|---|---|
| Business Profile account ID | The Google Business Profile account, with or without the accounts/ prefix. This is filled automatically after Google OAuth succeeds, and can be edited if the wrong account is selected. |
| Pub/Sub topic | The full Google Cloud Pub/Sub topic name, such as projects/example-project/topics/google-reviews. |
| Webhook token | Optional shared token for the Pub/Sub push URL. |
Google OAuth client ID, client secret, and redirect URI remain environment configuration because they are application credentials.
Google Cloud Setup
- Create a Google Cloud Pub/Sub topic.
- Grant
mybusiness-api-pubsub@system.gserviceaccount.compublish permission on the topic. - Create a Pub/Sub push subscription that points to:
https://your-domain.example/api/google/reviews/webhook
If a webhook token is configured, append it as a query string:
https://your-domain.example/api/google/reviews/webhook?token=your-token
- Authenticate Google Business Profile OAuth through
/google/redirect. The callback stores the first accessible Business Profile account ID in application settings. - Open Locations in the admin panel.
- Click Register Google Review Webhook.
The action registers NEW_REVIEW and UPDATED_REVIEW notifications for the configured account and Pub/Sub topic.
Local Location Mapping
Each local location must have its Google Business Profile location resource saved in google_place_id, for example:
locations/987654321
Google webhook notifications include the full resource name, such as accounts/123456789/locations/987654321. Review Manager accepts either local format when matching a notification to a location.
Review Matching
After the full Google review is fetched, Review Manager scores possible review request matches. It favors:
- same local location
- review requests whose
/go/{hash}links were clicked near the review creation time - review requests sent shortly before the review
- completed review requests
- reviewer display name similarity to the project customer name
- reviewer/customer last-name matches
When a project is selected, the review receives project_id and its metadata stores the match score, matched review request ID when available, timing signals, and match timestamp.
Backfill Behavior
Manual Google review imports use the same matcher. This keeps historical imports and real-time webhook imports consistent.