Thumbsum← All posts

Closing the feedback loop, properly (and why almost nobody does)

Somewhere in your product right now is a feature someone begged for. You built it. They never found out.

That is an open loop, and it is the most common, most expensive, most fixable failure in product communication. Expensive because of what it teaches: a customer whose request vanishes into silence learns that feedback here is a donation. They stop giving it. Your best signal source dries up quietly, and because the posts that were never written are invisible, you will blame the market instead of the silence.

The math of the open loop

Consider what a single feature request actually represents. A customer hit a wall in your product, cared enough not to churn silently, found your board or your email, and articulated what they needed. That sequence filters out almost everyone — the request that reaches you is the visible tip of dozens who hit the same wall and said nothing.

Now consider the two possible endings. Ending one: months later, the feature exists, the requester finds out by accident or never, and the lesson learned is that asking did nothing. Ending two: the day it ships, they get an email that opens with their name and their words. The feature is identical. The relationship outcomes are opposites, and the cost difference between the endings is about ten minutes.

Founders skip those ten minutes not from indifference but from mechanics: the request was filed in March and shipped in June, and by June you are staring at the code, not the March thread. Closing loops requires remembering who asked for what, months later, across channels. Human memory is precisely the wrong database for that job — which is why this failure is universal and why fixing it is structural, not motivational.

What "properly" looks like

1. Tell the askers first, personally, before any announcement.

Before the tweet, before the changelog, before the newsletter: an email to each person who requested it. Short, plain, specific:

Hi Priya — you asked for status-change triggers back in March. Shipped today. When a post moves to planned or shipped, your Zaps fire immediately. Thanks for pushing us on this one.

Three sentences. The anatomy matters: their name, their ask in roughly their words, what concretely works now, and thanks. No "we're excited to announce." This is not an announcement; it is a promise being reported as kept.

Send them individually, not BCC'd. Reply rates on these emails embarrass every marketing campaign you have ever run, and the replies themselves are gold — "amazing, but does it also..." is your next roadmap item arriving pre-validated.

2. Then the changelog, crediting demand.

The public entry should do two things most changelogs skip. First, be written from the user's chair: not "implemented webhook triggers" but "fire your automations the moment a post changes status." Second — and this is the underused move — credit the demand: "Thanks to the 6 people who asked for this."

That one sentence works on two audiences at once. The six feel seen in public. Everyone else learns that asking works here — that requests on this board have a real chance of shipping with their name attached to the win. It is the cheapest request-generation mechanism that exists. (A changelog that credits demand also reads as proof-of-listening to prospects evaluating you, which is worth more than most testimonial sections.)

3. Redefine "done."

The status flip is not the end of the work. Internally, adopt the rule: shipped-but-nobody-notified is as unfinished as coded-but-not- deployed. If your definition of done includes "the people who asked know," the loop stops depending on your memory of a good intention and becomes part of shipping itself.

The timing question

Close the loop at ship, not at sprint-end or month-end. The energy of "it just went live" reads in the email, and requesters occasionally catch real problems within hours — a free QA pass from your most motivated testers. If several requested things ship in one week, one combined changelog entry is fine, but the personal emails still go per request: Priya asked for triggers, not for your release notes.

The other timing rule: loops can be closed at any honest status, not just shipped. "We planned this for August" to the people waiting is a loop-close too — a smaller one, but it converts silence into a promise, and promises retain customers that silence loses.

Making it automatic

Manually, three practices keep the system alive:

  • Keep requester identity attached to every request from day one. Email addresses on the request itself, not findable-in-theory through a support tool. Retrofitting requester lists at ship time is the step where manual loop-closing dies.
  • Maintain the request→ship mapping as you go, not at ship time. A spreadsheet column ("which group does this ticket close?") is enough.
  • Make notification a blocking checklist item in your ship ritual, with the same status as "deployed" and "smoke-tested."

Or make it structural. In Thumbsum, every request keeps its people attached automatically — from the board, from email, from a Canny import. The moment a request group ships, the reminder surfaces on its own: everyone who asked and has not been told, with a drafted personal email per person; one click sends them all, individually. The changelog entry drafts itself from what was actually requested, credits the requesters by count, and waits for your edit before publishing. The loop closes because the system remembers the names so you do not have to — which, if you have read the prioritization system, you will recognize as the same principle applied to the exit of the pipeline that it applies to the entrance.

The compounding part

Closed loops change what gets filed. Customers who have seen their requests shipped write better requests: more specific, earlier in their frustration, more honest about severity. They also defend you — the person publicly thanked in a changelog becomes the person answering "anyone tried this?" in communities you will never see.

Six months of consistent loop-closing turns a complaint box into a research pipeline you would otherwise pay an agency for. Six months of open loops turns a research pipeline into a complaint box. Same product, same customers; the only variable is whether anyone hears back.

Start with the oldest open loop you can remember. There is a name attached to it. Write to them today.


Related: How to prioritize customer feedback · Product changelog practices that actually retain customers · Canny vs Thumbsum