N8N Chat UI is a no-code builder for branded AI chat widgets, built for n8n users, agencies, SaaS teams, and businesses. Design a mobile-friendly chat experience with live preview, then connect it to any n8n workflow and embed it anywhere. Unlike default n8n chat, it adds deep customization, streaming, voice and file uploads, flexible layouts, and a JavaScript API for advanced integrations.
We've been building a library of ready-made n8n recipes for chatbots, and we're giving them away free. There are 16 so far, and we'd like to know whether we're building the right ones. What's in there at the moment:
Lead capture: into HubSpot, Mailchimp, ActiveCampaign, Pipedrive, Airtable or Google Sheets, with consent handled where it matters
Bookings: Calendly and Cal.com
Support and orders: Zendesk tickets, plus Shopify and WooCommerce order lookup
AI: an FAQ bot with email handoff, and a bot that answers from a Supabase knowledge base
No AI needed: button-menu bots for when a decision tree does the job better and cheaper
They're all at n8nchatui.com/recipes. What I'd really like to know:
What do you end up building over and over for clients?
Which tools are we missing? (Notion, Slack, Intercom, Stripe?)
Do you prefer AI-driven bots, or simple button flows?
We're Dani and Ross, the owners of N8N Chat UI, and we launched on Product Hunt today.
One thing we're curious about from people building with n8n: what makes a chat widget useful on a site, beyond sitting in the corner waiting to be clicked?
The widget has a small JavaScript API, so you can start a chat from almost anything.
The problem n8n is brilliant for building AI agents, but its built-in chat widget is basic. Making it look like your brand means digging into HTML, CSS and JavaScript, and your webhook URL sits in the page source for anyone to find.
What we built A visual builder that turns any n8n workflow into a polished, on-brand chat widget. Customize it with a live preview, copy one snippet, and it's on your site. No code. Try the builder yourself, no signup needed: n8nchatui.com
MCP server: ask Claude, Cursor or VS Code to create and restyle widgets for you
Official plugins for WordPress, Webflow, Shopify and Wix, plus an n8n community node
For developers: it's no-code, but not locked down
Send messages programmatically with sendMessage(): start a chat from a "Ask about this product" button, a form submission, a URL parameter, or after a visitor has been idle on the checkout page
Event callbacks (onWidgetOpen, beforeSubmit, onResponseReceived, onError…) to hook the chat into your analytics or app logic
Pass custom metadata (user ID, plan, current page) to your n8n workflow with every message
Change the theme and starter prompts on the fly with updateTheme() and updatePrompts(), no reload needed
Session keys to keep separate conversations per page or per user
Works with any backend that returns JSON, not only n8n
For agencies
Build a branded chat widget for every client in minutes, and clone widgets to reuse your best setups
Help your clients turn more website visitors into leads and sales
Show clients the results in the analytics panel, with message counts you can use to charge them per message
How pricing works One paid plan: a lifetime license. Pay once, never pay again. You can also try it free with 100 credits, no card needed.
How it started N8N Chat UI launched on the n8n community forum in April 2025 to fix a problem every n8n builder runs into: you build a great AI agent, put it on your website, and get a generic chat window with hardly any options to match your brand, unless you write the code yourself.
It caught on. More than 2,700 people have built widgets with it, and a lot of what shipped along the way began as requests from the community: session management, a free way to get started, streaming replies, voice notes and file uploads.
Why we bought it In August 2026, we bought N8N Chat UI from its original creator, and Nicholas and Daniel from Ross's team at DigitalME joined us to build it out. We could see how many people already relied on it, because it fixes what n8n's own chat widget can't. And we could see how much further it could go: more advanced features, and a library of ready-made n8n recipes we're building to give to the community for free.
Our first big step is getting it onto the platforms people actually build with: official plugins for WordPress, Wix, Webflow and Shopify, plus an n8n community node that replaces the usual webhook wiring.
🎁 Product Hunt offer: $90 off the lifetime license ($59 instead of $149), plus 2,500 free credits to try Managed widgets
We'd love your feedback: which integrations or features should we build next? Drop them below.
Thanks to @jonnotie for hunting us, and to the PH community! Questions or feedback? Email us at hello@n8nchatui.com, or connect with me on LinkedIn.
— Ross & Dani
Report
💎 Pixel perfection
Congrats Dani and Ross! 🎉 Quick disclosure: I work with Dani at Millside Creative. I hadn't used N8N Chat UI before, so I tried it on a client site.
I connected Claude through the MCP server and asked it to match the widget to the client's branding. It set the colours, welcome message and starter prompts in one go, so I had something on-brand to look at straight away instead of a blank builder. Great time saver!
@joanne_davies4 Thanks Jo, really glad it saved you time! 🙌 That's the use case we had in mind: let Claude do the first pass on the branding so you're tweaking something close, not starting from blank.
If anyone else wants to try it, the MCP setup is in the docs at n8nchatui.com. Happy to answer questions here.
@ayberkbozkus Yes, by default. The widget saves the conversation in the visitor's browser, so it's still there after a refresh, on other pages of your site, or when they come back days later on the same device. It stays until they click the reset button in the chat.
The widget also sends the same session ID with every message, so if your n8n workflow uses a memory node keyed on that ID, your bot remembers the context too, not just the chat window.
A few options depending on what you need:
Start fresh every time: turn on "clear chat on reload" in the widget settings and each page load starts a new conversation.
Across devices: history is stored per browser, so a visitor who switches from phone to laptop starts a new chat. If you need history across devices, you'd save it in your n8n workflow against a logged-in user's ID.
— Dani
Report
@ross_jenkins Congrats on the launch Can we customize the chat widget without writing code?
@itsrakesh Thanks for taking a look! Always happy to hear this kind of thing. Was it the chat widget itself, or the website and dashboard? If it's the widget, almost everything is customisable (colours, fonts, avatar, layout, and custom CSS if you want full control), so we might be able to point you to a setting. Either way, if anything in particular stood out, let us know and we'll add it to the list.
Workflows are an important part for any Enterprise functioning but we all know how complex it can get. NLP way of interacting can be the game-changer, especially for non-tech folks. Excited to see how well this solution is adopted!
starting a chat with sendMessage() when someone idles on the checkout page is a smart one, most widgets just sit in the corner waiting
on the managed widgets, if someone copies the embed snippet onto their own site does the domain restriction block it completely??? or do a few messages still eat credits befor it kicks in???
@thamibenjelloun Thanks! Yes, that's one of our favourite uses for it. A widget that waits in the corner gets ignored. A well-timed "Need a hand with anything before you check out?" gets replies.
On your question: it's blocked completely. Messages don't get through before the block applies.
When a page loads a Managed widget, our server checks which site is asking before it sends the widget code. If that site isn't on your allowed-domains list, the widget doesn't load: no chat bubble, nothing to type into. Credits only get used when a message actually goes through, so a copied snippet on someone else's site costs you nothing.
A few things worth knowing:
Add every version of your address, for example both https://example.com and https://www.example.com. The match is exact, so if you leave one out, the widget won't load on that version of your site.
If the allowed-domains list is empty, the widget runs anywhere. Set your domains before you go live.
Messages started with sendMessage() go through the same route as typed ones, so on a Managed widget each one uses a credit. If you use it on the checkout page, add a rate limit or only send once per visitor.
If you'd rather not think about credits at all, that's what the Standalone widget is for. It's covered by the lifetime license ($59 during launch), and messages go straight to your own n8n webhook, so there are no credits involved. The trade-off is that the webhook is visible in your page code, and the domain lock, rate limits and analytics are Managed features. The launch license also comes with 2,500 Managed credits that never expire, so you can use both.
Hey Product Hunt 👋 Ross (@ross_jenkins) & Dani (@dani_martin1), the owners of N8N Chat UI.
The problem
n8n is brilliant for building AI agents, but its built-in chat widget is basic. Making it look like your brand means digging into HTML, CSS and JavaScript, and your webhook URL sits in the page source for anyone to find.
What we built
A visual builder that turns any n8n workflow into a polished, on-brand chat widget. Customize it with a live preview, copy one snippet, and it's on your site. No code.
Try the builder yourself, no signup needed: n8nchatui.com
Key features
Popup or in-page widgets, fully themed: colors, fonts, avatars, welcome messages, custom CSS
Streaming replies, voice input, file uploads, follow-up prompts, Markdown/HTML rendering
RTL support for Arabic, Hebrew and Persian
Managed widgets: hidden webhook, domain restrictions, geofencing, rate limits and real-time analytics
MCP server: ask Claude, Cursor or VS Code to create and restyle widgets for you
Official plugins for WordPress, Webflow, Shopify and Wix, plus an n8n community node
For developers: it's no-code, but not locked down
Send messages programmatically with sendMessage(): start a chat from a "Ask about this product" button, a form submission, a URL parameter, or after a visitor has been idle on the checkout page
Event callbacks (onWidgetOpen, beforeSubmit, onResponseReceived, onError…) to hook the chat into your analytics or app logic
Pass custom metadata (user ID, plan, current page) to your n8n workflow with every message
Change the theme and starter prompts on the fly with updateTheme() and updatePrompts(), no reload needed
Session keys to keep separate conversations per page or per user
Works with any backend that returns JSON, not only n8n
For agencies
Build a branded chat widget for every client in minutes, and clone widgets to reuse your best setups
Help your clients turn more website visitors into leads and sales
Show clients the results in the analytics panel, with message counts you can use to charge them per message
How pricing works
One paid plan: a lifetime license. Pay once, never pay again. You can also try it free with 100 credits, no card needed.
How it started
N8N Chat UI launched on the n8n community forum in April 2025 to fix a problem every n8n builder runs into: you build a great AI agent, put it on your website, and get a generic chat window with hardly any options to match your brand, unless you write the code yourself.
It caught on. More than 2,700 people have built widgets with it, and a lot of what shipped along the way began as requests from the community: session management, a free way to get started, streaming replies, voice notes and file uploads.
Why we bought it
In August 2026, we bought N8N Chat UI from its original creator, and Nicholas and Daniel from Ross's team at DigitalME joined us to build it out. We could see how many people already relied on it, because it fixes what n8n's own chat widget can't. And we could see how much further it could go: more advanced features, and a library of ready-made n8n recipes we're building to give to the community for free.
Our first big step is getting it onto the platforms people actually build with: official plugins for WordPress, Wix, Webflow and Shopify, plus an n8n community node that replaces the usual webhook wiring.
🎁 Product Hunt offer: $90 off the lifetime license ($59 instead of $149), plus 2,500 free credits to try Managed widgets
We'd love your feedback: which integrations or features should we build next? Drop them below.
Thanks to @jonnotie for hunting us, and to the PH community!
Questions or feedback? Email us at hello@n8nchatui.com, or connect with me on LinkedIn.
— Ross & Dani
Congrats Dani and Ross! 🎉 Quick disclosure: I work with Dani at Millside Creative. I hadn't used N8N Chat UI before, so I tried it on a client site.
I connected Claude through the MCP server and asked it to match the widget to the client's branding. It set the colours, welcome message and starter prompts in one go, so I had something on-brand to look at straight away instead of a blank builder. Great time saver!
Good luck today!
@joanne_davies4 Thanks Jo, really glad it saved you time! 🙌 That's the use case we had in mind: let Claude do the first pass on the branding so you're tweaking something close, not starting from blank.
If anyone else wants to try it, the MCP setup is in the docs at n8nchatui.com. Happy to answer questions here.
Does the chat keep the conversation if the visitor refreshes the page or comes back later?
@ayberkbozkus Yes, by default. The widget saves the conversation in the visitor's browser, so it's still there after a refresh, on other pages of your site, or when they come back days later on the same device. It stays until they click the reset button in the chat.
The widget also sends the same session ID with every message, so if your n8n workflow uses a memory node keyed on that ID, your bot remembers the context too, not just the chat window.
A few options depending on what you need:
Start fresh every time: turn on "clear chat on reload" in the widget settings and each page load starts a new conversation.
Separate conversations on different pages: set a session key in the widget's metadata, for example one chat for product pages and another for support. Docs here: https://n8nchatui.com/docs/configuration/session-management
Across devices: history is stored per browser, so a visitor who switches from phone to laptop starts a new chat. If you need history across devices, you'd save it in your n8n workflow against a logged-in user's ID.
— Dani
@ross_jenkins Congrats on the launch Can we customize the chat widget without writing code?
@shivam_kushwaha16 Yep, we make it more simple than buttering your bread.
@ross_jenkins Can we customize the colors and layout to match our brand?
Nice. Design could use some improvements.
@itsrakesh Thanks for taking a look! Always happy to hear this kind of thing. Was it the chat widget itself, or the website and dashboard? If it's the widget, almost everything is customisable (colours, fonts, avatar, layout, and custom CSS if you want full control), so we might be able to point you to a setting. Either way, if anything in particular stood out, let us know and we'll add it to the list.
— Dani
Workflows are an important part for any Enterprise functioning but we all know how complex it can get. NLP way of interacting can be the game-changer, especially for non-tech folks. Excited to see how well this solution is adopted!
Kudos to Ross and the team!
@sid_625 Appreciate it! We have 2000+ sites using N8N Chat UI to support their business, from finance all the way over to pet salons.
Thanks for the support!
starting a chat with sendMessage() when someone idles on the checkout page is a smart one, most widgets just sit in the corner waiting
on the managed widgets, if someone copies the embed snippet onto their own site does the domain restriction block it completely??? or do a few messages still eat credits befor it kicks in???
@thamibenjelloun Thanks! Yes, that's one of our favourite uses for it. A widget that waits in the corner gets ignored. A well-timed "Need a hand with anything before you check out?" gets replies.
On your question: it's blocked completely. Messages don't get through before the block applies.
When a page loads a Managed widget, our server checks which site is asking before it sends the widget code. If that site isn't on your allowed-domains list, the widget doesn't load: no chat bubble, nothing to type into. Credits only get used when a message actually goes through, so a copied snippet on someone else's site costs you nothing.
A few things worth knowing:
Add every version of your address, for example both https://example.com and https://www.example.com. The match is exact, so if you leave one out, the widget won't load on that version of your site.
If the allowed-domains list is empty, the widget runs anywhere. Set your domains before you go live.
Messages started with sendMessage() go through the same route as typed ones, so on a Managed widget each one uses a credit. If you use it on the checkout page, add a rate limit or only send once per visitor.
If you'd rather not think about credits at all, that's what the Standalone widget is for. It's covered by the lifetime license ($59 during launch), and messages go straight to your own n8n webhook, so there are no credits involved. The trade-off is that the webhook is visible in your page code, and the domain lock, rate limits and analytics are Managed features. The launch license also comes with 2,500 Managed credits that never expire, so you can use both.
Thanks for checking it out!
— Dani