top of page

TechTalk #2: Automated Processing of Google Reviews in Webitel


Vitalii Kovalyshyn, CTO at Webitel, about automated Google review processing with the help of Webitel's services

We continue the TechTalk section dedicated to the technologies implemented on Webitel’s platform. In our new article, Vitalii Kovalyshyn, CTO at Webitel, reveals detailed steps of connecting Google Reviews API to ensure automated review processing using the platform services. 


When your business is on Google Maps and your customers leave feedback, you may need to process the reviews. Of course, you can assign this task to some employee. But we offer an easier way: to automate review processing with Webitel. For example, thank a customer for a 5-star rating, or send a comment to an available operator for processing. No additional licenses or programming skills are required, all you need is the Flow Manager designer with the right settings. So, let’s begin 😉


Google My Business API You need to create a project in Google Cloud to activate the API and connect access keys. For the beginning, you need the Project number and Project ID which you can find on the first page:


Google Cloud

With this data, you have to fill out the Google My Business API access form and wait for confirmation (it may last up to 2 weeks, but I received confirmation after 3 work days).


After confirmation, you need to activate API:


  • Google My Business API

  • My Business Business Information API

  • My Business Account Management API


Google API

Congrats! You have finished the first stage of setting, thus we can move to the authorization 😎

 

Google OAuth 2.0 Client

You need to go to the Credentials section and create OAuth 2.0 Client:


Google Credentials

Copy the field values for further receipt of tokens:

  • Client ID

  • Client secret

Next, generate the string with the access list necessary for further integration. Please, pay attention to %%CHANGE-ME%%, you have to replace it with your Client ID:

Open the generated string in the browser, after this, the system will ask you to go through authorization. When finished, you will be redirected to a blank page. Don’t be afraid, everything is ok. You need to get the code value from the string of this page:


Get value from the string

Finally, the last step at this stage is to get access_token and refresh_token. Open HTTP Rest Client and send a request (replacing variables with your values):

POST https://oauth2.googleapis.com/token HTTP/1.1Content-Type: application/json; charset=utf-8{   "code": "{{code_from_site}}",  "client_id": "{{client_id}}",  "client_secret": "{{client_secret}}",  "redirect_uri": "http://127.0.0.1",  "access_type": "offline",  "grant_type": "authorization_code"}

You will receive an answer with a token available for 1 hour:

{  "access_token": "HIDDEN",  "expires_in": 3599,  "refresh_token": "HIDDEN",  "scope": "https://www.googleapis.com/auth/business.manage https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid",  "token_type": "Bearer",  "id_token": "HIDDEN"}

We will set up automatic renewal of this token later. Now let’s move to the next stage of configuration.


Account and Location Identifier 

To receive reviews, you must know your Google Account and Location code. For this purpose, you should send the API request using access_token from the previous step.


Your ID:

GET https://mybusinessaccountmanagement.googleapis.com/v1/accounts HTTP/1.1Authorization: Bearer {{access_token}}

Location ID:

GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{{account_id}}/locations?read_mask=name,title HTTP/1.1Authorization: Bearer {{access_token}}

You will receive numbers like 113478846864290431250. Save value, and let’s move to Webitel.


Webitel preparation

Here, we have two main requirements for Webitel:


  • version no less v23.09

  • flow_manager with Redis support

Speaking about the second point, I used our new cache application to save the token and information about recent review synchronization. If you do not connect Redis, these configurations will be stored in RAM. Thus, after each restart, the system will collect all reviews from Google Maps instead of new ones.


So, we recommend installing Redis and connecting it to the flow_manager service by adding startup options in the file: /etc/systemd/system/flow_manager.service

-redis_host=127.0.0.1 -redis_port=6379 -redis_database=0

Restart the service. The second requirement is implemented ✔️


Google Refresh Token

For a token refresh, I have created a simple scheme that sends an HTTP request and writes the new token value to Redis. You can download a ready-for-use ‘Refresh token’ scheme and replace values with your own:

"client_id": "%%CHANGE_ME%%",    
"client_secret": "%%CHANGE_ME%%",    
"refresh_token": "%%CHANGE_ME%%"

Then let’s move to the Triggers section and create a task for running this scheme every hour:


Triggers section on Webitel's platform

Done! The refresh token works fine and we can set up the review sync with Webitel. 


Getting reviews from Google Maps

Every hour (it also can be more often, or vice versa) we run the scheme that will collect only new reviews and write them as subscribers’ requests into the Inbound task queue


The review has the following format:

{  "reviewId": "HIDDEN",  "reviewer": {    "profilePhotoUrl": "https://lh3.googleusercontent.com/a/HIDDEN=s120-c-rp-mo-ba2-br100",    "displayName": "HIDDEN"  },  "starRating": "FIVE",  "comment": "Професіональний підхід до клієнтів!молодці\n\n(Translated by Google)\nProfessional approach to customers! Well done",  "createTime": "2019-06-01T10:30:32.110545Z",  "updateTime": "2019-06-01T10:30:32.110545Z",  "name": "accounts/HIDDEN/locations/HIDDEN/reviews/HIDDEN"}

You need to save:


  • reviewId - review identifier, necessary for giving a response. We will write it to the ‘number’ of queue subscribers. This will simplify our search for duplicates. When the user changes his/her review, we delete the previous entry in the queue and add the new one;

  • updateTime - necessary for uploading only new entries;

  • starRating - stars, always present. We will replace a word with an emoji;

  • comment - although sometimes reviews can be without comments;

  • displayName - Google user’s name;

  • profilePhotoUrl - link to the user’s profile photo.


Then, it is necessary to create a new communication type in the directory:


Creating communication type on Webitel's platform

As well as a new queue of inbound tasks:


Inbound task queue

Next step: you will need my scheme for review synchronization. You can download the Sync data scheme here and save it to Webitel not forgetting to specify Google Account & Location IDs in the scheme:


Review sync scheme on Webitel's platform

For Patch Member and Callback Queue elements, choose your Inbound tasks queue and a Communication type created before:


Patch Member and Callback Queue elements

Now let's add this scheme to the Trigger so that review synchronization also occurs hourly: 


Google review settings on Webitel's platform

After the first launch, you will get all reviews as subscribers in the task queue.


Agent’s work with reviews

To make it possible for the agent to process reviews, you need one more scheme, 'Reply to a review', ready for downloading. Just specify the Google Account & Location, as you did with the previous scheme. Then, attach it to our queue:

Attaching Google review sheme to Webitel

And assign it to the agents. Congrats! 🥳 The review is automatically distributed to the free agent who can write the response:


Agent response form for processing Google reviews on Webitel's platform

Conclusion

Using Webitel tools and services, I have precisely configured integration with reviews on Google Maps and created a form for agent responses. And most importantly, it took only a few days while waiting for API activation was the longest.


With the help of my templates and the extensive functionality of Webitel’s platform, you can improve the service scenarios, automate responses to let agents respond only to bad reviews, or implement any of your ideas to build great customer interaction.


28 views0 comments

Comments


bottom of page