Part 5 of 7 · Feedback collector series ~5 min read

How a review ask or a private fix happens

The router settled on a bucket. Now the dispatch piece acts on it. A happy customer gets a warm, one-tap nudge toward your public review page. An unhappy one is never shown that page — instead the owner gets pinged privately, right away, with everything needed to make it right. An unclear reply waits quietly for a human to glance at. This post walks through all three moves — and how each one is recorded so nothing slips.

Key takeaways

  • Three moves from the bucket: happy (review nudge), unhappy (private owner ping), unclear (hold for human).
  • The happy nudge is a short note with a one-tap link straight to your public review page.
  • The unhappy ping goes to the owner alone — never to a public page — with the customer’s words and a way to reach back.
  • Unclear replies pile into a daily sweep for a human to read; nothing auto-sends.
  • Every move writes a row to the audit trail with the bucket, the reason, and what was sent.

Three moves from the bucket

Three moves from the router's bucket A diagram showing one input on the left flowing through the router, then branching into three move paths. Far left: a "Reply, bucketed" box showing a reply that the router has labelled — the customer name, what they bought, and the bucket: happy, unhappy, or unclear. The middle column shows the three branches. Branch one, Happy: send a short, warm thank-you with a one-tap link straight to the public review page from the rules doc; SES outbound or a text sends it; the message is gentle, never pushy, and goes out once. Branch two, Unhappy: never show the review link; instead ping the owner privately and immediately with the customer name, what they bought, their exact words, and one-tap call and message buttons; the goal is to fix it while it is still a private conversation. Branch three, Unclear: hold the reply in a daily sweep queue for a human to read; nothing auto-sends; the human can mark it happy, unhappy, or done. The right side shows the convergence: every move writes a row to the fc-audit DynamoDB table with timestamp, customer, bucket, reason, and what was sent. A note at the bottom: an unhappy customer is never shown a review link — the whole point is to catch the problem before it becomes a public review. Reply, bucketed name, bought, bucket [Happy] [Unhappy] [Unclear] Move 1 Happy • Warm thank-you note, one-tap review link • SES or text sends it • Gentle, goes out once Move 2 Unhappy • No review link — ever • Owner pinged privately with the customer’s words + one-tap call / message Move 3 Unclear • Held in daily sweep for a human to read • Nothing auto-sends — human picks the move Audit trail DynamoDB fc-audit timestamp · customer bucket · reason what was sent An unhappy customer is never shown a review link — catch the problem before it becomes a public review.
Fig 5. Three moves, three different effects. Happy gets a one-tap review nudge. Unhappy gets a private, immediate owner ping. Unclear waits for a human. Every move writes to the audit trail.

Move 1: the review nudge (the one that grows your reputation)

Dwi tapped five stars. The dispatch piece reads the voice doc, fills in her name, and sends a short, warm note: “So glad you enjoyed it, Dwi! If you have ten seconds, a quick public review really helps a small place like ours — [leave a review].” The link goes straight to your public Google, Facebook, or industry-site page, named in the rules doc. On a phone, it’s one tap from the thank-you to the review box.

Two design choices keep this from feeling like spam. First, it only goes to genuinely happy customers, so you’re never begging a lukewarm person for a favor. Second, it goes out exactly once. If Dwi doesn’t leave a review, that’s the end of it — no “just checking in!” chase. The nudge is an open door, not a foot in it. And because a five-star tap already showed its goodwill the moment it landed, the nudge can ride on that: it’s often shown on the very thank-you page the tap opened, while the customer is still right there.

Move 2: the private fix (the one that protects your reputation)

Budi tapped two stars and wrote “food was cold.” He is never, under any circumstances, shown the review link. Instead the dispatch piece pings the owner privately and immediately. The message has everything needed to act: “Budi — 2 stars — ‘food was cold’ — dinner, table 12, last night, served by Sari — [call Budi] [text Budi].” The owner taps call, apologizes, and offers to make it right. The contact lands wherever the owner actually watches — a private Slack DM, a text, or an email, set in the rules doc.

This is the heart of the whole system. A frustrated customer who hears nothing tells the internet. A frustrated customer whose owner calls within the hour, listens, and fixes it usually becomes a regular — and often leaves a good review later, unprompted, because the recovery impressed them more than a smooth visit would have. The system’s job is to make sure that call can happen, by getting the complaint to the one person who can act while the problem is still small, fresh, and private.

The owner ping is not auto-resolved. The system doesn’t pretend to fix anything itself — it just makes sure the right human knows, fast. The owner can mark the item handled from the ping, which writes the outcome to the log, but the actual making-it-right is a human talking to a human. That’s the point.

Move 3: the quiet hold (the one that never guesses)

A three-star tap, or a written reply the model wasn’t sure about, lands in unclear. Nothing is sent. Instead the reply waits in a daily sweep — a short list the owner or a staff member skims once a day. Each unclear item shows the customer, what they bought, and their exact reply, with three buttons: treat as happy (send the review nudge), treat as unhappy (open the private fix), or done (no action needed). A human spends two seconds per item and the doubtful replies get a real decision instead of a coin-flip.

Holding unclear replies for a human is the safety valve that lets the rest of the system be confident. Because the doubtful cases have somewhere safe to go, the happy and unhappy paths can act automatically without fear of misrouting — anything they’re unsure about simply isn’t theirs to handle.

Every move is logged

The fc-audit table records every move with the customer, the bucket, the reason the router chose it, and exactly what was sent — the review nudge, the owner ping, or the hold. That trail answers the questions that come up later: how many five-star taps turned into actual public reviews this month, which complaints reached the owner and how fast, whether any unclear items are sitting unread. The monthly summary in the next post reads straight from this table to write the owner a short paragraph — how many asked, how many happy, how many fixed before they went public.

Next post: the cost breakdown. The whole pipeline above runs in coffee-money territory at SMB volume; Part 6 explains exactly where the dollars go and why the model barely registers on the bill.

All posts