Listen to customers, plan what comes next and share what shipped.
Share
Invite customers to share feedback, and see where their visits come from.
Your portal
Give customers one place to share ideas, follow your roadmap and read product updates.
https://www.enoughstack.com/portal/ws_demo
QR code
For posters, slides and packaging. Scans count as “QR code” below.
Links
Link directly to the board, roadmap or update you want to share.
| Link | URL | Actions |
|---|---|---|
Portal The front door: boards, roadmap and changelog in one place. | https://www.enoughstack.com/portal/ws_demo | |
Submit an idea Opens the form straight away. Add ?title=… to fill in the title. | https://www.enoughstack.com/portal/ws_demo/b/feature-requests/new | |
Roadmap What's planned, in progress and done. | https://www.enoughstack.com/portal/ws_demo/roadmap | |
Changelog What shipped, with reactions and an email subscription. | https://www.enoughstack.com/portal/ws_demo/changelog | |
RSS feed For feed readers and automations (Slack, Zapier). | https://www.enoughstack.com/api/v1/portal/ws_demo/changelog/rss.xml |
Boards
- Feature requests14 postsBoardSubmit form
- Bug reports3 postsBoardSubmit form
- Integrations5 postsBoardSubmit form
Any of these links accepts ?ref=your-channel — visits and new posts from it are counted below.
The submit link accepts ?title=… to prefill the form.
Build a prefilled submit link
Invite people
Email people a link to the portal, with a note from you.
Email your customers
Invite your whole email list in one campaign.
Drafts a campaign to your email list (200 subscribed contacts) with a button to the portal, tagged so its visits count as “Email campaign”. It opens in the Email editor; nothing is sent until you send it there.
Embed it
Put feedback where your users already are: your site, app, docs and emails.
The launcher, its colours and what it shows are set up under Settings → Widget
Widget
A launcher on every page of your site. Configure it under Settings → Widget.
<script async src="https://www.enoughstack.com/widget.js" data-key="demo000000000000framecast"></script>
<script>
// Optional: tell the widget who is signed in to your app.
window.EnoughStackFeedback = window.EnoughStackFeedback || {};
// window.EnoughStackFeedback.user = { id: "42", email: "jane@example.com", name: "Jane" };
</script>Widget (React)
The same widget, loaded from a React component.
useEffect(() => {
const script = document.createElement("script");
script.src = "https://www.enoughstack.com/widget.js";
script.dataset.key = "demo000000000000framecast";
script.async = true;
document.body.appendChild(script);
return () => script.remove();
}, []);Where feedback comes from
Visits and new posts in the last 30 days, by the channel that brought them in.
Visits by channel
From ?ref= tags, or the site that linked to the portal.
No visits yet
New posts by channel
Posts keep the channel of the visit they were written in.
- Direct or unknown
- 4 · 40%
- Widget
- 4 · 40%
- Added by the team
- 2 · 20%