All skills
placesfacebooktwitterreddit PR, Reputation & Crisis

One-Star Review Triage Queue

Surface the angriest reviews and public complaints nobody has answered yet, ranked so your team replies in the order that protects your reputation most

Run this skill with your agent
1. Connect the MCP server
https://apidirect.io/mcp?token=YOUR_API_KEY
2. Then ask your agent — name the skill so it runs this exact playbook
Use the one-star-review-triage-queue skill: Build me a triage queue of the angriest unanswered reviews for {brand_name} in {location}, including our Facebook page {facebook_page_url}
Naming the skill (one-star-review-triage-queue) makes your agent run this exact playbook instead of improvising its own searches. In clients that support MCP prompts (Claude Desktop, Claude Code, Cursor) it also appears as a prompt named one-star-review-triage-queue, and any agent can call get_skill(skill_id="one-star-review-triage-queue") directly.

What it does

Negative reviews and complaints with no response do the most lasting damage, yet they hide at the bottom of the pile. This skill pulls the lowest-ranked, angriest, still-unanswered reviews from Google Maps and Facebook — and, when enabled, unanswered negative brand mentions on X and Reddit — into one prioritized response queue. A platforms toggle lets you choose exactly which surfaces to scan, and a depth control sets how far down each source you go.

Who it's for: Reputation and CX managers for local or multi-location brands

Inputs

Input Required Description Example
brand_name Yes The business name to monitor reviews and mentions for Bluebird Coffee
location Yes City/area to disambiguate the Google Maps listing Austin, Texas
facebook_page_url No The brand's Facebook page URL to also pull recommendations from (required if platforms includes facebook) https://www.facebook.com/bluebirdcoffee
platforms No Comma-separated list of platforms to run — options: places, facebook, twitter, reddit. Omit to run all of them; name specific platforms to limit the run. facebook, twitter, reddit
depth No How many pages to pull per source (higher = deeper scan, slower). Maps to the pages param on the review and search tools. Defaults to 4 if unset. 4

How your agent runs it

  1. 1
    search_places(query="{brand_name} {location}")

    Always run (Google is the anchor). Match the brand and grab the place_id of the correct listing (verify by name and business_status).

  2. 2
    place_reviews(place_id=<place_id>, sort_by=lowest_ranking, get_sentiment=true, pages=4)

    Always run. Keep 1-2 star reviews with no owner response whose dominant_emotion is anger or disgust, hardest-hitting first. {depth} defaults to 4 if unset.

  3. 3
    facebook_page_details(url={facebook_page_url})

    Only run if {platforms} includes facebook and {facebook_page_url} is provided: resolve the page_id needed to read the page's recommendations.

  4. 4
    facebook_page_reviews(page_id=<page_id>, get_sentiment=true, pages=4)

    Only run if {platforms} includes facebook: keep recommend=false items with negative sentiment and no page reply, then interleave with the Google queue by severity.

  5. 5
    search_twitter(query="{brand_name}", get_sentiment=true, sort_by=most_recent, pages=4)

    Only run if {platforms} includes twitter: keep negative-sentiment posts mentioning the brand that have no reply from the brand's own handle, newest first; fold into the queue by severity.

  6. 6
    search_reddit(query="{brand_name}", get_sentiment=true, sort_by=most_recent)

    Only run if {platforms} includes reddit: keep negative-sentiment posts/threads naming the brand that the brand has not responded to, then merge into the single triage queue by sentiment intensity. (search_reddit paginates via single-page `page`, so {depth} is not applied here.)

Delivers: A single prioritized triage queue of the angriest unanswered complaints — Google and Facebook reviews plus optional X and Reddit mentions — ordered by sentiment intensity for the fastest reputation-saving replies

Tools used

The full playbook

This is exactly what the MCP returns to your agent (via the one-star-review-triage-queue prompt or get_skill tool), with your inputs filled in.

SKILL: One-Star Review Triage Queue
Negative reviews and complaints with no response do the most lasting damage, yet they hide at the bottom of the pile. This skill pulls the lowest-ranked, angriest, still-unanswered reviews from Google Maps and Facebook — and, when enabled, unanswered negative brand mentions on X and Reddit — into one prioritized response queue. A platforms toggle lets you choose exactly which surfaces to scan, and a depth control sets how far down each source you go.

You are running this skill on API Direct via its MCP tools. Execute the steps below yourself by calling the named tools in order — values in <angle brackets> come from a previous step. Then deliver the result described at the end.

INPUTS:
  - brand_name (required): <brand_name — ASK THE USER>
      The business name to monitor reviews and mentions for
  - location (required): <location — ASK THE USER>
      City/area to disambiguate the Google Maps listing
  - facebook_page_url (optional): (optional — e.g. https://www.facebook.com/bluebirdcoffee)
      The brand's Facebook page URL to also pull recommendations from (required if platforms includes facebook)
  - platforms (optional): (optional — e.g. facebook, twitter, reddit)
      Comma-separated list of platforms to run — options: places, facebook, twitter, reddit. Omit to run all of them; name specific platforms to limit the run.
  - depth (optional): 4 (default — override if you like)
      How many pages to pull per source (higher = deeper scan, slower). Maps to the pages param on the review and search tools. Defaults to 4 if unset.

PLATFORM SELECTION: some steps are gated with "Only run if {platforms} includes X". If the user supplied a `platforms` value, run only the steps whose platform is listed. If the user did NOT supply `platforms`, run ALL steps — every platform the skill supports.

STEPS:
  1. Tool `search_places` — search_places(query="{brand_name} {location}")
     Always run (Google is the anchor). Match the brand and grab the place_id of the correct listing (verify by name and business_status).
  2. Tool `place_reviews` — place_reviews(place_id=<place_id>, sort_by=lowest_ranking, get_sentiment=true, pages=4)
     Always run. Keep 1-2 star reviews with no owner response whose dominant_emotion is anger or disgust, hardest-hitting first. 4 defaults to 4 if unset.
  3. Tool `facebook_page_details` — facebook_page_details(url={facebook_page_url})
     Only run if {platforms} includes facebook and {facebook_page_url} is provided: resolve the page_id needed to read the page's recommendations.
  4. Tool `facebook_page_reviews` — facebook_page_reviews(page_id=<page_id>, get_sentiment=true, pages=4)
     Only run if {platforms} includes facebook: keep recommend=false items with negative sentiment and no page reply, then interleave with the Google queue by severity.
  5. Tool `search_twitter` — search_twitter(query="{brand_name}", get_sentiment=true, sort_by=most_recent, pages=4)
     Only run if {platforms} includes twitter: keep negative-sentiment posts mentioning the brand that have no reply from the brand's own handle, newest first; fold into the queue by severity.
  6. Tool `search_reddit` — search_reddit(query="{brand_name}", get_sentiment=true, sort_by=most_recent)
     Only run if {platforms} includes reddit: keep negative-sentiment posts/threads naming the brand that the brand has not responded to, then merge into the single triage queue by sentiment intensity. (search_reddit paginates via single-page `page`, so 4 is not applied here.)

DELIVER: A single prioritized triage queue of the angriest unanswered complaints — Google and Facebook reviews plus optional X and Reddit mentions — ordered by sentiment intensity for the fastest reputation-saving replies

Note: each underlying tool call is billed at its normal endpoint price; get_sentiment adds a small per-page surcharge. Page through results as needed but stop once you have enough to deliver the outcome.