Slack feedback capture

Capture feedback in Slack with one emoji, and let the wrench draft the GitHub PR that fixes it.

React to any Slack message with the wrench and Usero captures it and opens a pull request with a first pass at the fix. React with the pushpin to capture only. You review the diff and merge it. Nothing merges on its own.

The highest-signal feedback your team hears arrives in Slack: a customer DM, a bug pasted into a channel, a complaint in #product. It gets a few reactions and scrolls away before anyone logs it.

Slack is where the involuntary feedback lives, the kind nobody files on a board. Someone pastes "the export button does nothing on Safari" into a channel, four people react, and by lunch it is buried under standup notes. The instinct is to copy the important ones into a tracker by hand, and almost nobody keeps that up. The message that needed a twenty-minute fix gets a thumbs-up, everyone assumes someone else will log it, and the loop quietly breaks. So the bar for a Slack feedback tool is not "can it save the message", plenty of bots do that. It is how little work capture takes, and what happens to the message after it is saved. Saving it to another board is triage, not progress: the report is still a report and the fix is still unwritten.

How it works

Slack feedback capture in Usero.

Disclosure: I build Usero, so weigh that. You install the Usero app on your workspace once, then the whole surface area is two emoji and one slash command. React with the wrench (:wrench:) and Usero fetches that one message, records it as feedback, and if your repo is connected, clones the repo, writes the change on a branch, and opens a GitHub pull request with a first pass at the fix. The reactor sees a threaded reply: "Captured in usero. Drafting a PR...". React with the pushpin (:pushpin:) to capture without drafting a PR. Or type /usero login button is broken on Safari to capture a report directly. Usero only ever reads the message you reacted to or the text you typed, there is no passive channel scraping, and in a private channel you invite the bot once with /invite @Usero. The PR body quotes the Slack message and links back to the feedback item, so when you merge you know exactly which complaint you closed. You review the diff and merge it yourself. Usero never merges for you.

Capture is an emoji, not a form

The only reliable capture is the action people already perform. A support person or founder hearing a complaint in a customer channel reacts with the wrench or pushpin and the message lands in the inbox. No dashboard, no modal, no title to write. Anyone in the workspace who can add a reaction can capture, so feedback stops depending on whoever remembers to log it.

The wrench ends a Slack message as a pull request

This is the whole idea. A complaint heard in Slack does not become a row on a board, it becomes a branch with the change already in it and a PR open on GitHub. For the class of fix that is a copy change, a missing validation, a wrong default, or a small component tweak, the work is done before you open the PR.

The context comes with it

A captured message keeps the channel, the author, the thread it sat in, and a link back to the original. The PR quotes the Slack message and links to the feedback item in your dashboard, so the loop from "a user complained in Slack" to "this shipped" is one click of context, not a manual cross-reference.

No passive scraping, and clean uninstall

Usero reads only the message you react to or send via /usero, never your whole channel history. If a workspace admin removes the app, Usero revokes its bot token and scrubs the Slack author and reactor identity pointers off the feedback rows it held.

The honest objection

Does the Usero bot read everything my team says in Slack?

No. Usero only fetches a message when someone reacts to it with the wrench or pushpin, or sends it via the /usero slash command. There is no passive scraping of your channels and no message-history ingestion. For a public channel the reaction is enough; for a private channel you invite the bot once with /invite @Usero, and if you react before inviting it, Usero DMs you to say so rather than dropping the capture silently. If you uninstall, the bot token is revoked and the Slack identity pointers are scrubbed.

FAQ

Quick answers about slack feedback capture.

How do I capture feedback from a Slack message?

React to the message with an emoji. The wrench (:wrench:) captures it and drafts a GitHub PR with a first pass at the fix; the pushpin (:pushpin:) captures without a PR. You can also type /usero <text> to capture a report directly. Capturing the same message twice does not create a duplicate.

Does the wrench reaction merge code automatically?

No. The wrench drafts a pull request and stops. Usero writes the change on a branch and opens the PR on GitHub. Your CI runs, your reviewers comment, and you merge it through your own branch protection. The merge is always your call.

What happens if no GitHub repo is connected when I react with the wrench?

The message is still captured as feedback; Usero just skips the PR. Connect a repo in the GitHub section of the project and the wrench will draft PRs from then on. The welcome DM includes a Connect a GitHub repo button if the project has none yet.

Can I install Usero from the Slack App Directory?

Yes. After you authorize the app, Usero shows a short picker where you sign in (or sign up) and choose an existing project or create a new one for the workspace. Each Slack workspace binds to one Usero project at a time.

What does the pushpin do that the wrench does not?

The pushpin captures the message as feedback and stops, no PR. Use it for feedback worth keeping that is not ready to become code, or that you want to cluster with other reports first. You can still create a PR from a pushpin-captured item later in the dashboard.

Turn that feedback into a pull request.

Free tier. No credit card. Two-minute install. The AI opens the PR, you merge it.

Get started free