Chatting with website visitors
Put a chat widget on your own website — visitors leave their details, become leads, and chat with your team straight from the Chats inbox.
The website widget is a small chat window that lives on your own website — not your Ona pages, the site your practice already runs. A visitor clicks the button, leaves their name, and starts chatting. On your side, that's a new lead and a normal conversation in Chats; on theirs, it's a direct line to your front desk without a phone call or a contact form that goes nowhere.
How the widget works
The widget is a script served from your Ona practice URL. Pasted into your website, it draws either a floating button in the bottom-right corner or an always-open chat block embedded in the page — your choice per page. When a visitor submits the contact form, Ona creates a lead with the source "widget" and opens a Widget conversation linked to it. Your team answers from the Chats inbox; the visitor sees replies while their chat is open, and if they come back later on the same browser, the conversation picks up where it left off — for up to 30 days.
Because the widget is served from your practice URL, your styling changes apply everywhere it's embedded, immediately. You configure once, paste once, and manage everything from Ona afterwards.
Turn it on and make it yours
Go to Settings → Website & Widget and flip the toggle next to Website Widget. When it's off, the widget hides itself on every site where it's embedded — you never need to touch your website's code to pause it.
The builder saves as you type, and the preview on the right shows exactly what visitors will get — use the Form and Chat tabs above it to flick between the two states.
- Button text — the label on the floating button. Defaults to "Get in touch".
- Welcome message — the greeting pinned at the top of the chat, which the visitor answers with their first message. Defaults to "Hi! How can we help you today?".
- Color — pick a preset or choose any custom colour; the whole widget takes its tint from it, and text stays readable even on light colours like yellow.
- Placement — Floating button (a corner button that opens the chat) or Embedded block (the chat sits in the page, always open).
- Default mode — floating only: whether visitors first see just the button (Closed) or the form already expanded (Open).
- Require email / Require phone — by default the form only insists on a name. Turn these on if your team needs a callback number or an address to follow up on; visitors can't start a chat without them.
Add it to your website
Copy the snippet from the Embed code card under the preview and paste it into your site's HTML. Any website builder that accepts custom HTML works — WordPress, Webflow, Squarespace, Wix, or a hand-built page.
- Floating button — one
<script>line. Place it at the bottom of your page's HTML body; it draws the button in the corner on its own. - Embedded block — two lines: a
<div id="ona-widget"></div>and the same script. Place the div exactly where the chat should appear — it fills its container's width and sits in the page like any other element, with no button to click.
You paste once. Everything you change in the builder afterwards — colours, copy, required fields — goes live on your website automatically, and the two placements can coexist: a floating button across the site and an embedded block on your contact page, say.
If your practice's Ona welcome page is enabled, the widget appears there automatically too — no embedding needed.
What visitors see
Opening the widget shows a short contact form: name, phone, and email, with the optional fields marked. Only the name is mandatory unless you've required more.
Start chat takes them straight into the conversation, greeted by your welcome message. Messages are plain text in both directions, and replies from your team appear while the visitor has the chat open.
If the visitor closes the tab and returns later on the same browser, the widget remembers them — same conversation, full history, no form to fill in again. The session lasts 30 days and renews each time they come back.
Answer from your Chats inbox
A widget conversation is a conversation like any other. It appears in Chats under the visitor's name with a Widget channel tab, alongside any SMS or email history if the lead later gains those channels — the same omnichannel inbox described in Messaging patients by text, email, and chat.
The lead itself lands in Leads with "widget" as its source, so your acquisition pipeline captures website visitors without anyone re-keying details (see Managing leads). Reply from the composer as usual — and use internal notes and @mentions freely: they route the conversation inside your team and are never shown to the visitor.
Details that matter
- Every form submission creates a fresh lead. Returning visitors resume their existing session instead of re-submitting, so duplicates only occur if someone starts over on a new browser — merge from Leads if needed.
- Replies reach visitors while their chat is open. Treat the widget as near-real-time, not paging — if a visitor has left, your reply waits in the conversation for their return. Requiring a phone or email gives you a second channel to follow up on.
- The welcome message is a greeting, not a message. Changing it changes what every visitor sees at the top of their chat; it isn't stored in conversations.
- Disabling the widget keeps everything. The button disappears from your website instantly, but past conversations and leads stay exactly where they are.
Related guides