PHPackages                             tributemedia/google\_reviews\_testimonials - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tributemedia/google\_reviews\_testimonials

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

tributemedia/google\_reviews\_testimonials
==========================================

Extends the testimonials module to include Google My Business reviews.

v2.0.2(2y ago)2336[4 issues](https://github.com/tributemedia/google_reviews_testimonials/issues)GPL-3.0-or-laterPHP

Since Feb 8Pushed 2y ago3 watchersCompare

[ Source](https://github.com/tributemedia/google_reviews_testimonials)[ Packagist](https://packagist.org/packages/tributemedia/google_reviews_testimonials)[ RSS](/packages/tributemedia-google-reviews-testimonials/feed)WikiDiscussions main Synced yesterday

READMEChangelog (10)Dependencies (1)Versions (14)Used By (0)

Google Reviews Testimonials
===========================

[](#google-reviews-testimonials)

Summary
-------

[](#summary)

This Drupal 9 module provides the ability for the system to download reviews from Google My Business (GMB) and convert them to Tribute Media's testimonial entities.

### Features

[](#features)

- Automatically downloads reviews from GMB API and converts them to testimonials.
- Minimum review star threshold can be configured to have the module filter out reviews based on their amount of stars.
- Adds a star field to Testimonial nodes that can be used by developers to display stars in node displays or views.
- Review status page to view queue sizes and other module information.

Installation &amp; Configuration
--------------------------------

[](#installation--configuration)

**This is a Drupal 9 module, and contains code that may not exist in Drupal 8.** Use in Drupal 9 only!

Make sure [Tribute Media Testimonial module](https://github.com/tributemedia/testimonials) is installed before attempting to install this. Afterwards, simply install this module the same you would any other composer managed module in Drupal:

`composer require tributemedia/google_reviews_testimonials`

After installation, go to Configuration -&gt; Web services -&gt; GMB Service Connection Settings. Provide the service key (obtained from the Google admin console), and subject (email of a user within the organization authorized to use the service account). Then, click the save button and the disabled field for 'Account' should now be filled in with a value.

Next, navigate to Configuration -&gt; Web services -&gt; GMB Location Settings. Provide the name of the business **as shown in Google My Business** for 'Location Name' field. Also, change the 'Star Minimum' if you do not like the default value of 3. Any review that has the amount of stars specified in this field, or greater, will be downloaded and published as a testimonial. Once this has been completed, click the save button, and now the 'Location ID' field should have a value.

Once all the above steps have been completed, you'll need to configure the `field_testimonials_num_stars` field as desired on any and all displays, **including the testimonial node form display.**

Usage
-----

[](#usage)

**Make sure the steps outlined in the configuration section above have been completed!** Once that is done, then all you have to do is simply wait until the next Cron run for the first automatic download of reviews. If you do not want to wait, you may manually start a Cron run by going to Configuration -&gt; System -&gt; Cron. If your business has a lot of reviews, they may not all get downloaded and created on the first run. Feel free to run Cron again until all reviews that meet the minimum star threshold are downloaded and created into testmonials.

If you want to manually start a download, you can go to Configuration -&gt; Web services -&gt; Google Reviews Testimonials Status. From this page you'll be able to see the status of current queues, and manually queue work. To run the work, simply run Cron.

### Cron Workflow

[](#cron-workflow)

This is a high-level, but technically detailed breakdown of the entire Cron workflow pipeline, from review download to testimonial creation. If you're seeking information on how, in particular, the Cron workflow of the module is working, then read on.

#### Trigger Review Check

[](#trigger-review-check)

**No queue, cron job defined in module file**

**Run Interval:** 12 hours

The first step in the workflow. This cron job is different from the others in that it is not done by `QueueWorker`. The one purpose of this cron job is simple: Queue a job to the worker for the next step, checking for new reviews. No value is provided for `pageToken` when a job is queued by this worker, which will result in the review checker getting the first page of reviews on its first run. Naturally, this is what we always want on our first run.

#### New Review Check

[](#new-review-check)

**Queue ID:** `google_reviews_testimonials_rcq` (rcq = Review Check Queue)

**Run Time:** 30 seconds

**Parameters:**

`pageToken` *(string)* - Pagination value that must be provided to the API to retrieve the next set of reviews, if applicable. **OPTIONAL.**

Next, a list of **20** GMB reviews for the configured location is queried from the API. If there is no `TestimonialGMBReviewEntity` with a reference to the ID of the review, then a new job is created for the worker of the next step, to create new testimonials.

This step is repeated for each review ID retrieved from the API. **If there are more reviews than the 20 retrieved in the first query,** a new job is created for the worker of this queue, using the `pageToken` provided by the API as the parameter. **Since this is a separate job, it will not be processed until the next run of Cron.** This step, naturally, repeats until every review has been checked from the API, no matter how many paginations are required.

#### Testimonial Creation &amp; Review Link

[](#testimonial-creation--review-link)

**Queue ID:** `google_reviews_testimonials_rlq` (rlq = Review Link Queue)

**Run Time:** 30 seconds

**Parameters:**

`reviewID` *(string)* - ID of the review. **REQUIRED.**

`displayName` *(string)* - Google display name of the reviewer. **REQUIRED.**

`starRating` *(int)* - Star rating. **REQUIRED.**

`comment` *(string)* - The review (comment, as its called in GMB). **REQUIRED.**

The last step in this workflow. It starts by creating a new testimonial with the details specified above (note that there is no location of the reviewer, that is not provided by the API). The comment is trimmed to less than 150 characters for the summary of the testimonial, if necessary. Otherwise, the comment is used for both the summary and review fields of the testimonial.

Once the testimonial is created, a `TestimonialGMBReviewEntity` is also created, to link the association of the testimonial and GMB review.

Finally, based on the star count of the review and the minimum star threshold in the module settings, the testimonial may or may not be published. If the star rating is equal to or greater than the module setting, the testimonial is published. Otherwise, it is unpublished.

Contribution Guidelines
-----------------------

[](#contribution-guidelines)

When contributing to the module, create a branch **from dev** that contains the issue number related to the bug or feature you're working on. Do not create the branch off of master! From there, make your changes in your branch and integrate into the dev branch when you feel it's ready for testing. Testing can then be done and a code review, if desired. Your change will then be ready for the next release, once approved.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~62 days

Recently: every ~124 days

Total

12

Last Release

864d ago

Major Versions

v1.3.2 → 56.x-dev2022-08-19

v1.4.0 → v2.0.02023-12-28

### Community

Maintainers

![](https://www.gravatar.com/avatar/f09e37f36cc9c7f95e2e8d0c149e8c18c84cefb644a2b039c1ed0d1e4058c245?d=identicon)[tributemedia](/maintainers/tributemedia)

---

Top Contributors

[![AntonioXIII](https://avatars.githubusercontent.com/u/16991520?v=4)](https://github.com/AntonioXIII "AntonioXIII (47 commits)")[![hawkemediadev](https://avatars.githubusercontent.com/u/7296477?v=4)](https://github.com/hawkemediadev "hawkemediadev (6 commits)")[![skenley](https://avatars.githubusercontent.com/u/3143424?v=4)](https://github.com/skenley "skenley (5 commits)")

### Embed Badge

![Health badge](/badges/tributemedia-google-reviews-testimonials/health.svg)

```
[![Health](https://phpackages.com/badges/tributemedia-google-reviews-testimonials/health.svg)](https://phpackages.com/packages/tributemedia-google-reviews-testimonials)
```

###  Alternatives

[spatie/laravel-google-calendar

Manage events on a Google Calendar

1.4k1.5M21](/packages/spatie-laravel-google-calendar)[tomatophp/filament-seo

Manage and generate SEO tags and integrate your website with Google SEO services

112.6k1](/packages/tomatophp-filament-seo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
