The Feedback Widget – Ideas from Your App

Put the UserVoice widget in your product so customers post ideas and vote where they work, with their account and revenue attached.

On this page

    Customers have ideas while they use your product, not when they visit a feedback site. The UserVoice widget lets them post an idea or vote without leaving the page, and tells you who they are and which account they belong to. This guide covers where to place it, installing it, identifying customers, single sign-on, targeting, privacy, testing, and measuring.

    What the widget does

    The widget is a small panel inside your web product. Customers open it, describe an idea, and post it to your forum without leaving the page.

    Post an idea

    The Post Idea experience asks for the idea, a title, and a category if the forum uses them. Files can be attached if your forums allow attachments.

    Vote instead of repeating

    As the customer types, the widget shows related ideas from the forum. They can vote on one, or skip and post their own.

    Know who said it

    Your product tells the widget who is signed in, so the idea arrives with the person, their account, and its revenue.

    Follow up

    The poster is subscribed to their idea, so status updates reach them by email like any portal idea.

    The widgetYour portal
    Inside your product, at the moment of the ideaA site customers visit on purpose
    Posts to the forum you chooseShows all the forums a customer can see
    Best for quick ideas and votesBest for browsing, comments, and following the roadmap
    Good to know

    Ideas from the widget are ordinary ideas. They appear in the idea grid with every other idea, get your default public and internal status, and go through the same spam check as portal ideas.

    What customers see

    Two views of the widget open over a product page. On the left, the Post an Idea panel with a typed idea and a Next button. On the right, Are any of these helpful? listing three related ideas with supporter counts and statuses, a Back link, and a Skip and post idea button. A round button sits in the bottom-right corner of each page.
    The widget opens from a button in the corner of your product. Colors follow your accent color; the product and ideas here are examples.
    1. The customer selects the widget button and describes their idea.
    2. The widget shows related ideas already in the forum, with supporters and status.
    3. They open a match and vote, or select Skip and post idea.
    4. Either way, they're subscribed, and hear from you when the status changes.

    Where to put it

    Put the widget where customers notice a gap, and nowhere it gets in the way of their work.

    PlaceWhy it worksHow
    Help menuCustomers look there when something is missing. It's always available and never in the way.A “Share an idea” item that opens the widget
    Inside a featureIdeas arrive about that feature, while the customer is using itA small link on the feature's page, posting to that product area's forum
    Empty statesAn empty report or list is where customers wish for more“Missing something? Tell us.” under the empty-state message
    New featuresEarly reactions shape the next releaseA link in the release banner or what's-new panel
    Every pageAlways one click awayThe floating button in a corner of the window
    Rule of thumb

    Start with the help menu and one or two features. A link where customers already look for help collects more useful ideas than a button on every screen. Add the floating button later if you want more volume.

    Watch out

    Keep it out of critical flows. Don't open the widget automatically during checkout, sign-up, or onboarding. Let the customer choose to open it.

    Install it

    An admin sets up the widget in Settings. A developer on your team adds the code to your product.

    1. In Settings, open Widgets.
    2. Under Step 1: Customize your widget design, choose Post Idea as the starting experience, then the trigger position, accent color, and trigger color. The preview updates as you go.
    3. Under Step 2: Copy the embed code to your page, select Copy to clipboard, and send the code to your developer.
    4. Your developer adds it to the page template of your product, once per page, and fills in the identify section with the signed-in customer's details.

    The embed code, shortened

    <script>
    // Include the UserVoice JavaScript SDK (only needed once on a page)
    UserVoice=window.UserVoice||[];(function(){ ... })();
    
    // Set colors
    UserVoice.push(['set', { accent_color: '...', trigger_background_color: '...' }]);
    
    // Identify the user and pass traits
    UserVoice.push(['identify', { email: ..., name: ..., account: { ... } }]);
    
    // Add default trigger to the bottom-right corner of the window
    UserVoice.push(['addTrigger', { mode: 'feedback', trigger_position: 'bottom-right' }]);
    </script>
    Good to know

    The Widgets page also links to the developer documentation. Under Advanced setup it shows your JavaScript API key, your SSO key, and a link to the widget developer documentation. If you don't see Widgets in Settings, talk to your UserVoice rep.

    Identify customers and accounts

    The identify call tells the widget who is signed in to your product. With it, every idea and vote carries the person, their account, and its revenue.

    FieldWhat to send
    emailThe customer's email address. Needed for UserVoice to save the person.
    nameTheir full name
    idTheir user ID in your product. It shouldn't change. Defaults to the email.
    created_atWhen they signed up, as a Unix timestamp
    typeA user type you segment by, such as Owner or Admin
    account.id and account.nameThe company they belong to, so several people roll up to one account
    account.revenueThe account's recurring revenue, as a number
    account.planThe plan the account is on
    account.ltv and account.created_atLifetime value, and when the account started
    Good to know

    A known email skips a step. When the identify call includes an email, the widget doesn't ask the customer for one.

    Details that trip teams up

    • Custom traits start with cf_. Add your own fields, such as cf_region on the person or cf_segment on the account. Fields with other names are ignored.
    • Send revenue as a plain number, such as 1200.00, with no currency symbol, in the same period your team uses everywhere else.
    • Older code may send monthly_rate. UserVoice still reads it as revenue when revenue isn't sent.
    • Account details depend on your plan. Check with your UserVoice rep before you build on them.
    Watch out

    One value that's too long drops the whole call. Names, emails, IDs, types, account names, and plans can be up to 255 characters. If any one is longer, the widget sends none of the details, so the idea arrives without its account.

    Good to know

    With Salesforce or HubSpot connected, your CRM is the source of accounts. UserVoice then ignores account details from the widget, and matches each person to a CRM account by their email domain. Keep sending the email and name.

    Sign customers in with SSO

    Identify fills in who the customer is. Single sign-on also signs them in, so they're never asked to log in to UserVoice.

    ApproachWhat it does
    Identify onlyFills in the customer's email and name, and sends account details. Ideas can only go to public forums.
    SSO tokenSigns the customer in as the same person as on your portal. They can post to private forums they have access to.
    1. Find the SSO key on the Widgets page, under SSO authentication.
    2. On your server, your developer creates a token for the signed-in customer, signed with the SSO key using HMAC-SHA256. It can include an expiry time.
    3. The page passes the token to the widget with UserVoice.push(['set', {{ sso: token }}]), along with the identify call.
    Watch out

    Keep the SSO key on your server. Anyone with the key can sign in as any of your customers. Create tokens on your server, never in browser code, and set them to expire.

    Rule of thumb

    Use SSO whenever your product has a sign-in. It's the same token your portal uses, so a customer's ideas, votes, and email updates stay together wherever they give feedback.

    Choose the forum, trigger, and look

    The embed code covers the basics. A few options let you send ideas to the right forum and open the widget from your own interface.

    OptionWhat it doesSet it with
    ForumSends ideas to one forum. Without it, ideas go to your default forum.forum_id, the number in the forum's portal address
    Your own triggerOpens the widget from your link, button, or menu item instead of the floating buttondata-uv-trigger on the element, or addTrigger with its selector
    Open from codeOpens or closes the widget when something happens in your productshow and hide
    EmbeddedShows the widget inside your page layout, not as a pop-updata-uv-embed on a container
    Floating buttonPlaces the button in a corner of the windowtrigger_position: top-left, top-right, bottom-left, or bottom-right
    ColorsMatches your product's colorsaccent_color, trigger_color, and trigger_background_color
    WordingChanges the widget's text, such as its titlestrings, for example post_idea_title
    Tip

    Point each feature's link at its own forum. Set a different forum_id on each page, so ideas about reporting land in your reporting forum. If the forum has categories, the widget asks for one, and requires it if the forum does.

    Good to know

    The default forum must be open. If no forum is set and your default forum is closed, set forum_id to an open forum.

    Pass only what you need

    Every detail you send is stored in UserVoice and visible to your admins. Send what helps you prioritize, and nothing else.

    SendLeave out
    Email and name, so you can follow upPhone numbers, addresses, and personal details
    Account ID, name, plan, and revenue, to prioritizePayment details, contract terms, and anything regulated
    A few custom traits you'll filter by, such as region or segmentEvery field your product happens to have
    • Visitors in the EU and Brazil are asked for consent when they post. Customers signed in with SSO aren't asked, and nobody is asked twice.
    • Ideas in private forums stay private. Without SSO, the widget only posts to public forums.
    • Your legal and security teams may want to review which fields you send before launch.
    Rule of thumb

    If you wouldn't filter or sort by it, don't send it. A short list of fields is easier to keep accurate, and easier to explain to customers who ask what you collect.

    Test before launch

    Install the widget on a test or staging version of your product first, and walk through it as a customer would.

    1. Sign in to your product as a test customer, open the widget, and check that it doesn't ask for an email.
    2. Type an idea that matches an existing one, and check that related ideas appear and you can vote.
    3. Post a new idea. Check it lands in the right forum, with a category, and your default status.
    4. Open the idea in the admin console, and check the person, their account, plan, and revenue.
    5. If you use SSO, post to a private forum, and check the idea is under the test customer's name.
    6. Try each trigger you added, on a narrow window as well as a wide one.
    7. Remove the test ideas, then release to everyone.
    Tip

    Test with an account that has revenue. An idea that arrives without its account or revenue usually means a field was missing or too long in the identify call.

    Measure it

    The Activity Report, under Insights, shows whether customers find the widget and use it.

    Report sectionWhat it tells you about the widget
    How are users submitting ideas?Ideas from the Widget source, next to the portal, Slack, and your teams
    Site trafficHow many people are using the widget, next to portal visits
    Your idea activity overviewNew ideas, votes, and active users and accounts overall
    Compare before and after

    Choose a custom date range around your launch to see the change in ideas and votes.

    Watch the mix

    If most widget activity is votes, customers are finding existing ideas, which is good. If it's all new ideas, check for duplicates.

    Check each placement

    If one feature's forum gets nothing, its link may be hard to find. Move it, or reword it.

    Share the result

    Download any section as an image for your next update.

    Try it with your AI assistant

    1 of 4 prompts in the PDF

    Attach the PDF to Claude, ChatGPT, or another assistant, then paste:

    Using the UserVoice guide I attached, suggest where the widget should go in [product]. Ask me about our main screens, help menu, and empty states first.

    Three more prompts and the checklist are in the full guide. Get it by email →

    Free, by email

    Get the full guide

    We'll email you the 14-page PDF. It adds two things that aren't on this page:

    • A six-step checklist to put the guide into practice
    • Four AI prompts for Claude, ChatGPT, or your assistant of choice, including one that uses the UserVoice MCP to work with your own feedback data
    Cover of The Feedback Widget – Ideas from Your App guide from UserVoice