Skip to main content

Runbook: Empty Google Reviews

ServiceReview Management x Tripla Review – Google Reviews
Owner Team slack handle@bnl-dev-bali
Team's Slack Channel#bnl-teams-b

Table of Contents​

  • [[#Important Links]]
  • [[#1. Triage]]
  • [[#2. Decision Point]]
  • [[#3. False Alarm]]
  • [[#4. True Incident]]
    • [[#4.1. Recover the System]]
    • [[#4.2. Clean up]]

Alert-
Reviewku PortalReviewku Portal URL
Reviewku Worker LogsWorker Service Logs URL

1. Triage​

Goal: Determine whether fetching Google reviews failed due to authorization issue or mismatch location id.


Step A - Check Given User has Access to respective location ID​

  1. Get master user for respective properties from properties.user_id
  2. Go to oauth_credentials table and find authenticated_id, auth_token for respective user_id where channel_name = google
  3. Copy authenticated_id and auth_token.
  4. Open Postman > Review Management. Under collection list toggle Review Management > Channels > Google. Find Request named Check account properties, this request use GET method. Sample URL structure https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{{g_account_id}}/locations?readMask=name,title.
  5. Put copied authenticated_id into g_account_id environment variable and auth_token into g_bearer_token environment variable.
  6. Click Send button
  • Success result: https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{{g_account_id}}/locations?readMask=name,title

  • 401 result

{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}


Step B - Identify Specific Page Issue​

If Failed Pages > 0:

  • Click Failed Pages tab.
  • Inspect culprit page.
  • Most common cause: Captcha blocking.

If Empty Pages > 0 or No Value Pages > 0:

  • Click respective tab.
  • Click Preview.
  • Check HTTP response (example: 404).

Step C - Validate Queue Processing​

Go to Reviewku Worker Service Logs.

Search by Property ID.

If you find:

Message received: map[channel:traveloka event:download-scraped-data ...]

SUCCESS: Successfully inserted X reviews with property ID Y into the main table.

Then scraping result was processed successfully.

If no log found → webhook or queue issue.


2. Decision Point​

  • IF Failed Pages > 0 and captcha detected...

    • ➡️ **Go to: [[#4. True Incident]]
  • IF Empty Pages caused by 404 or invalid channel URL...

    • ➡️ **Go to: [[#4. True Incident]]
  • IF Webhook not delivered or no worker logs found...

    • ➡️ Go to: [[#4. True Incident]]
  • IF scraping valid and worker inserted successfully...

    • ➡️ **Go to: [[#4. True Incident]]

3. False Alarm​

If:

  • Scraping values are 0
  • Worker logs show successful insertion
  • No new scraping errors

Then Slack alert may be outdated or previously resolved.

Actions:

  1. Refresh Webscraper job.
  2. Re-check review count.
  3. Monitor for 15 minutes.

Post in Slack:

Empty Scraping Result alert reviewed.
Scraping and queue processing verified.
No active issue detected.

4. True Incident​

Scraping job failed or result not processed.

Primary objective: Restore successful scraping and review insertion.


4.1. Recover the System​

Case 1 - Captcha Blocking​

Diagnostic Steps

  • Failed Pages > 0
  • Page preview shows captcha challenge

Remediation Plan

  1. Click Inspect.
  2. Go to Continue tab.
  3. Change proxy.
  4. Click Continue Scraping.

Recommended proxies:

  • US
  • Indonesia
  • Australia
  • Japan

Switch between these if needed.

If none work:

  • Try nearest alternative proxy once.
  • If still failed → report to Webscraper team.

Verification

  • Failed Pages = 0
  • Data preview contains valid reviews.

Case 2 - Empty Pages / Invalid Channel URL​

Diagnostic Steps

  • Empty Pages > 0
  • Preview shows 404 or invalid page

Remediation Plan

  1. Go to official channel website (example: Expedia).
  2. Search property manually.
  3. Copy correct official property URL.

Example:

https://www.expedia.com.ph/Manila-Hotels-Red-Planet-Manila-Amorsolo
  1. Login to Portal.
  2. Navigate:
    Reviewku → Properties → Edit
  3. Under Channels, click settings (gear).
  4. Update channel URL.
  5. Click Save.
  6. Click Fetch New under respective channel tab.

Verification

  • New scraping job created.
  • Data preview valid.
  • Failed pages = 0.

Case 3 - Webhook Not Delivered​

Diagnostic Steps

  • No SUCCESS log in Worker service.
  • Webhook logs show non-200 status.

Remediation Plan

Re-trigger webhook manually:

curl -X POST 'https://review-api.bookandlink.com/h/ws/notif' \
-A 'webscraper.io/v1' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Signature: faebe19220e9cb22d40e9280e4083ae4f1749dc9a84267fbadd44096cf88cbbc' \
-d 'scrapingjob_id={scrapingJobID}&status=finished&sitemap_id={sitemapID}&sitemap_name={sitemapName}&custom_id={channelName}-{propID}-production'

Values found at:

Jobs → Scraping Job Details → Detail tab

  • scrapingJobID
  • sitemapID
  • sitemap_name

Expected response:

{"action taken":"Processing Data","custom id":"expedia-64-production","job id":"39140478","site map id":"953592","status":"finished"}

Verification

  • Worker logs show successful insertion.
  • Review count updated.

4.2. Clean up​

  1. Confirm review count updated in Reviewku dashboard.
  2. Confirm no duplicate insertions.
  3. Monitor worker logs for 30 minutes.
  4. Post Slack resolution update:
Empty Scraping Result resolved.
Scraping job reprocessed successfully.
Review synchronization restored.
  1. If captcha recurring frequently, escalate to Webscraper team for long-term mitigation.