<!-- BusyBot node reference — https://busybot.net/tools/google-business-profile-trigger/ -->

> Node: Google Business Profile Trigger (`google_business_profile_trigger`) · Polling trigger · v1
> Category: Marketing · Credentials: Google Business Profile OAuth2 (`googleBusinessProfileOAuth2`)
> Updated: 2026-08-16

# Google Business Profile Trigger

> Polls for new Google Business Profile reviews

## Overview

Polls the Google My Business API for new reviews on a specified business location. Uses count-based delta detection — compares the current totalReviewCount against a stored value from the previous poll. When the count increases, returns the newest reviews (the delta). Supports Google OAuth2 authentication with automatic token refresh.

**Category:** Marketing  
**Tool Name:** `google_business_profile_trigger`  
**Version:** 1

**Appearance:** Icon: `lucide-Building` | Color: `#4285f4`

## Node Type

**Trigger** — polling (checks for new data on a schedule)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Google Business Profile OAuth2** credentials.
See the [Credentials Guide](https://busybot.net/credentials/google-business-profile-oauth2/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Authentication | `options` | No | `oAuth2` | Authentication method to use. |
| | | | | Options: `oAuth2` (recommended), `serviceAccount` |
| Google Account | `credential` | No | — | Connect or select your Google account. _(shown when Authentication is `oAuth2`)_ |
| Service Account Email | `string` | Yes | — | The email address of the Google service account. _(shown when Authentication is `serviceAccount`)_ |
| Private Key | `string` | Yes | — | The private key from the service account JSON key file. _(shown when Authentication is `serviceAccount`)_ |
| Event | `options` | Yes | `reviewAdded` | Which event to listen for. |
| | | | | Options: `reviewAdded` |
| Account | `string` | Yes | — | The Google Business Profile account resource name (e.g., accounts/0123456789). _(shown when Event is `reviewAdded`)_ |
| Location | `string` | Yes | — | The specific location or business associated with the account (e.g., locations/0123456789). _(shown when Event is `reviewAdded`)_ |
| Poll Interval | `number` | No | `5` | How often to check for new reviews. |
| Poll Interval Unit | `options` | No | `minutes` | Unit for the poll interval. |
| | | | | Options: `seconds`, `minutes`, `hours` |

## Output Data

Each new review becomes one output item. The review is emitted as Google returns it, plus two trigger markers:

```json
{
  "name": "accounts/1234567890/locations/9876543210/reviews/AbCdEf",
  "reviewId": "AbCdEf",
  "reviewer": {
    "profilePhotoUrl": "https://lh3.googleusercontent.com/...",
    "displayName": "Jane Doe"
  },
  "starRating": "FIVE",
  "comment": "Great service, quick turnaround.",
  "createTime": "2026-08-15T08:55:12.000Z",
  "updateTime": "2026-08-15T08:55:12.000Z",
  "reviewReply": null,
  "_trigger": "google_business_profile_polling",
  "_timestamp": "2026-08-15T09:00:00.000Z"
}
```

- `starRating` — the rating as a word, e.g. `ONE` through `FIVE`.
- `reviewReply` — the owner's reply when one exists, otherwise `null`.
- `_trigger` — always `google_business_profile_polling`.
- `_timestamp` — when the poll that produced the item ran.

Reference review data downstream by expression, e.g. `{{ $json.reviewer.displayName }}`.

## Usage Examples

- Monitor new customer reviews on my Google Business Profile
- Get notified when a new review is posted to my business listing
- Track new Google reviews for my store location

## Example Configuration

Watch one location for new reviews:

```json
{
  "type": "google_business_profile_trigger",
  "parameters": {
    "event": "reviewAdded",
    "account": "accounts/1234567890",
    "location": "locations/9876543210",
    "pollInterval": 5,
    "pollIntervalUnit": "minutes"
  }
}
```

Check less often for a low-volume listing:

```json
{
  "type": "google_business_profile_trigger",
  "parameters": {
    "event": "reviewAdded",
    "account": "accounts/1234567890",
    "location": "locations/9876543210",
    "pollInterval": 2,
    "pollIntervalUnit": "hours"
  }
}
```

### Trigger Behavior

- **Activation:** Polling starts when the workflow is activated. There is no poll at the moment of activation — the first check runs one full interval later.
- **Schedule:** The trigger polls for new data based on the configured polling interval.
- **State:** Maintains internal state (the location's total review count at the last check) so each poll returns only the reviews added since then.
- **First Run:** The first poll records the current review count and returns no items, so activating the workflow never replays existing reviews.
- **Testing:** Running the node from the editor emits a single sample review so you can build the rest of the workflow; real reviews arrive only while the workflow is activated.

## Tips

Connects to the Google My Business API and polls for new reviews on a specified business location. On first poll it stores the current review count as a baseline. On each subsequent poll it compares the current count — if it increased, it returns the newest reviews. Requires Google OAuth2 credentials with the business.manage scope.

### Important Notes

- The `account` and `location` values must be valid Google Business Profile resource names.
- These values can typically be found in your Google Business Profile dashboard or API responses.
- The account format is always `accounts/{account_id}`.
- The location format is always `locations/{location_id}`.
- Polling too frequently may hit API rate limits, while polling too infrequently may delay workflow responses.
- Because detection is based on the review count, a review that is deleted between two polls can offset the count; the trigger takes the newest reviews matching the increase.