Troubleshooting
The widget does not appear
Check these in order:
- Both script tags are present and sit just before the closing
</body>tag, with the config script first and thewidget.min.jsscript second. window.FeedbackFlowConfigis set beforewidget.min.jsloads. If you set it after, the widget reads an empty config.apiKeyis filled in with a real project key, not theYOUR_API_KEYplaceholder.- No ad blocker or content blocker is hiding the launcher. Test in a private window with extensions disabled.
Invalid API key
If submissions fail with an authentication error, the key is wrong or has been rotated. Open your project page, regenerate the key, and update the apiKey value on your site. Regenerating replaces the old key immediately, so any site still using the old value stops submitting.
Content Security Policy errors
If your site sends a Content-Security-Policy header, allow FeedbackFlow in two directives:
script-srcmust allowhttps://usefeedbackflow.comsowidget.min.jscan load.connect-srcmust allowhttps://usefeedbackflow.comso the widget can submit feedback.
A blocked resource shows up in the browser console as a CSP violation naming the directive to fix.
Feedback from an integration is not arriving
For inbound integrations (Slack, Intercom, Zendesk), check the source side:
- The webhook Request URL matches the one shown on the integration setup screen, including your project ID.
- The signing secret entered in FeedbackFlow matches the one from the provider.
- The provider is actually sending events: Slack needs the bot invited to the channel and the
message.channelsevent subscribed, Intercom needs theconversation.user.createdtopic, and Zendesk needs a trigger that runs the webhook when a ticket is created.
See the integration guides for the exact steps per provider.