Collecting feedback
How to add an in-app feedback widget people actually use
· 4 min read · By the Sikia team
On this page
Most in-app feedback widgets fail in one of two ways: nobody can find them, or they interrupt people who didn't come to give feedback. A widget people use is easy to reach at the moment of friction, quick to fill in, and leads to a visible reply.
Where should an in-app feedback widget go?
Use two kinds of entry points.
- A persistent one. A "Send feedback" item in the help menu, the account menu or the sidebar. It's always there for someone who already has something to say.
- Contextual ones. A small prompt after a meaningful moment, such as finishing an export, using a new feature for the first time, or hitting an error.
A floating button in the corner tends to get more submissions, but also more noise, and it covers content on small screens. It suits dashboards and admin tools better than reading-heavy or mobile-first apps. Whatever you choose, never open a feedback prompt on page load or on someone's first visit.
What should the widget ask?
One open question, plus an optional type. Good prompts point at a task:
- "What were you trying to do?"
- "What would make reports more useful for you?"
- On an error screen: "Something went wrong. What were you doing when it happened?"
Weak prompts ask for opinions in the abstract, like "Rate your experience from 1 to 10" or "Any feedback?" A score with no text tells you something is wrong but not what. Let users tag their message as an idea, a problem or a question, but don't make the tag required. The guide to feature request templates covers which follow-up questions are worth asking once a request comes in.
What context should you capture automatically?
Don't ask users for things your app already knows. Attach these silently:
- User ID or email, and their plan or account (if signed in)
- The page or screen they were on
- App version, browser and operating system
- Optionally, a screenshot the user can review and redact before sending
Tell people what gets attached, and mask sensitive fields in screenshots.
How do you add a feedback widget to your app?
- Decide where submissions land. A feedback board, a triage inbox or your issue tracker. Not a shared email address nobody owns.
- Install the script or SDK and pass the signed-in user's identity, so submissions aren't anonymous.
- Add the persistent entry point, then one or two contextual prompts.
- Assign an owner who reads submissions on a set schedule.
- Test it like a user. Submit from a phone, on a slow connection, and with an ad blocker on. If you use a Content Security Policy, allow the widget's domain or it will fail without telling anyone.
- Load it asynchronously so it never delays your own page.
Should the widget show existing requests?
Showing similar requests while someone types lets them vote on an existing item instead of creating a duplicate. The trade-off is that people may pick a close-but-wrong match and lose the detail that made their case different. If you show matches, keep a clear "this is different, submit anyway" option. For the duplicates that still get through, see how to handle duplicate feature requests, or paste a batch into the duplicate request finder.
How do you get people to keep using it?
Reply. A short, human response tells users the widget isn't a void:
"Thanks @priya. Bulk editing tags has come up from a few teams. I've added your note to the request, and you'll get an email when it moves."
Then follow through. When the feature ships, tell the people who asked, and credit them in the changelog entry if they're happy to be named. See how to close the feedback loop.
Common mistakes
- Requiring a category, a rating and an email before the text box.
- Sending submissions somewhere nobody reads.
- Adding contextual prompts everywhere, so users learn to dismiss them on sight.
- Replying only to the feedback you agree with.
Doing this with Sikia
Sikia's in-app widget is one script tag. Widget submissions land in the same inbox as messages captured from Slack, Discord and GitHub Discussions, where the AI writes a clean title, sorts each one into request, bug, question or chatter, and suggests merging duplicates as votes. Nothing shows on your public board until a teammate approves it.
FAQ
Should I use a floating button or a menu link?
Start with a menu link plus one contextual prompt. Add a floating button only if you need more volume and your layout has room for it.
Should in-app feedback be anonymous?
Not by default. Identified feedback lets you ask a follow-up and notify the person when something ships. Offer anonymity only where people might otherwise hold back, such as internal tools.
How many questions should a feedback widget ask?
One required question. Everything else should be optional or captured automatically.
Will a feedback widget slow down my app?
It shouldn't if it loads asynchronously after your page is interactive. Check your page in the browser's performance tools before and after adding it.
Free tools for this
Do this without the spreadsheet
Related guides
- Collecting feedbackFeature request templates: what to ask, with examplesA good feature request template asks three things: what the user was trying to do, what got in the way, and how they handle it today. Keep everything else optional or captured automatically, and don't ask users to design the solution or rate its priority.
- Closing the loopHow to close the feedback loop with usersClosing the loop means telling users what happened to their feedback at each step: you heard it, you decided, and you either shipped it or won't. Record who asked and where for every request, merge duplicates without losing anyone, and use short templates so each reply takes seconds.
- Collecting feedbackHow to handle duplicate feature requestsMerge duplicates into one request and keep each duplicate as a vote with the user's original words, so you get an accurate count without losing context or the people to notify. Merge only when the underlying problem is the same, and split requests that bundle several problems.