Step-by-step tutorial Widget & experience

How to customize an AI chatbot widget and embed it

A beginner-friendly field-by-field walkthrough with a real branded preview, grounded answer and production-ready floating-widget embed.

Beginner31 min readJuly 16, 2026
How to customize an AI chatbot widget and embed it

When you customize an AI chatbot widget, branding and conversion goals must still preserve accessibility, mobile usability and clear visitor expectations.

A useful chat widget must look like part of the website, explain what it can do and stay out of the way of important page controls. Widget Integration separates those decisions into Appearance, Images, Content & Behavior, Positioning, Triggers, Action Bar and Advanced.

This guide follows the current English Light Mode interface and one concrete example called Tutorial Lab. The widget uses a dark-blue header, a blue visitor bubble, a direct prompt button and a real source-backed support-hours answer. Every visible setting is connected to the visitor experience it changes.

Use the built-in controls before Custom CSS. They are easier to understand, safer across widget updates and sufficient for most brand systems. Preview inside the dashboard, then repeat the complete test on a staging page at desktop and mobile widths before production.

Privacy-protected two-click player

How to Customize an AI Chatbot Widget (Design & Embed)

Customize an AI chatbot widget step by step: colors, font, welcome copy, mobile behavior, prompt buttons, accessibility and final embed code.

YouTube · 5:26 · English

The YouTube player stays blocked until you choose Play. Loading it connects your browser to YouTube and may transfer technical data to Google.

Open directly on YouTube

What you will have at the end

  • A readable brand-aligned theme with exact color roles
  • Purpose-specific avatar, launcher and welcome imagery
  • A focused welcome flow with a useful prompt button
  • Desktop and mobile offsets that avoid important page controls
  • A verified source-backed answer in the real visitor widget
  • A complete floating-widget embed installed once and updated through saved settings

Before you start

  • The exact brand colors in hexadecimal format
  • A contrast target of at least 4.5:1 for normal text
  • Optional optimized avatar, launcher and welcome images
  • One staging page and its exact allowed hostname
  • One known source fact and one deliberately unsupported question

Style the shell, guide the first action, prove the answer

Appearance and Images establish recognition. Content & Behavior determines the first interaction, while Positioning keeps the launcher and open panel clear of navigation, checkout and consent controls.

The floating widget reads its saved configuration by chatbot ID. Install the embed once, then publish later visual or behavioral changes from the dashboard without replacing the HTML snippet.

Apply accessible brandGuide one useful actionVerify live behavior

01–06

Set it up step by step

1

Set size, theme, typography and every color role

Build a readable system instead of choosing isolated swatches.

Open your assistant and choose Widget Integration → Appearance. Start with Widget Width and optional Height, then choose the Theme, Font Family and Chat Title. Tutorial Lab uses the Modern theme and the title “Tutorial Lab”; leaving height optional lets the widget use its responsive default.

Assign colors by role: header background and text, bot bubble and text, visitor bubble and text, launcher background and icon. The example uses a dark navy header with white text and a strong blue visitor bubble. Check every foreground/background pair in the rendered preview, not only in the color input. Normal text should reach at least 4.5:1 contrast.

  • Example title: Tutorial Lab
  • Theme: Modern
  • Visitor bubble: brand blue with readable text
  • Check: header, both bubble types, buttons and focus
Build a readable system instead of choosing isolated swatches.
2

Choose the right image for avatar, launcher and welcome

Each upload has a different job and size constraint.

Open Images. Avatar Image appears beside assistant messages, Chat Button Image replaces the launcher artwork, and Welcome Image supports the empty first screen. Do not upload one wide logo everywhere; crop an intentional asset for each role.

Use optimized PNG or WebP files with a clear silhouette. Keep the avatar and launcher square, test transparency on both light and dark host pages and keep text out of tiny icons. The captured state intentionally leaves optional artwork empty, which is valid when the built-in WebChatAgent icon is clearer than a weak custom asset.

  • Avatar: recognizable at message size
  • Launcher: clear silhouette without tiny text
  • Welcome: useful context, not decoration only
Each upload has a different job and size constraint.
3

Configure opening behavior, visibility and prompts

Every switch changes the first visitor experience.

Open Content & Behavior. Decide whether the widget is disabled on the website, initially open, hidden on mobile or allowed to show sources. Then review microphone, automatic translation, speech bubble and path exclusions. Change one behavior at a time and verify the visible result.

Write a short welcome that names the job. Prompt buttons are not in this tab: they live under Buttons & forms, in the Quick actions section. Add two or three there with real intent. “Which plan is right for me?” gives more useful context than “Learn more.” Avoid automatically opening a large panel on every page; use Triggers only when timing, page scope, dismissal and frequency have been tested in a clean session.

  • Prompt: Which plan is right for me?
  • Sources: enable only when visitors benefit
  • Auto Translate: test the visitor-language behavior
  • Excluded paths: checkout, account and sensitive flows when needed
Every switch changes the first visitor experience.
4

Set desktop and mobile offsets separately

Keep both launcher and open panel away from critical controls.

Open Positioning. Desktop Offsets and Mobile Offsets are independent distances from the selected corner. Tutorial Lab uses 20 pixels from the right and bottom on both layouts as a neutral baseline.

Test more than the launcher. Open the complete widget at your smallest supported width with the cookie banner visible, mobile browser chrome expanded and any sticky navigation, cart or checkout control present. Increase the appropriate offset until launcher and panel remain reachable without hiding primary actions.

  • Desktop baseline: right 20 px · bottom 20 px
  • Mobile baseline: right 20 px · bottom 20 px
  • Test: closed launcher and complete open panel
Keep both launcher and open panel away from critical controls.
5

Verify the real visitor widget with a grounded answer

A pretty preview is incomplete until the conversation works.

Select Test Your Chatbot to open the authenticated visitor preview. Confirm the title, blue visitor bubble, readable assistant bubble, prompt behavior, message input, close button and branding. Operate it once with mouse and once with keyboard; focus must remain visible and return sensibly after the dialog closes.

The verified example asks “What are the support hours?” The real widget replies that Northstar Services’ support hours are Monday to Friday, 8:00 AM to 6:00 PM Central European Time. This proves the saved presentation and a source-backed answer together. Repeat with one deliberately unknown question to confirm the design also keeps longer fallback text readable.

  • Exact input: What are the support hours?
  • Observed answer: Monday–Friday, 8:00 AM–6:00 PM CET
  • Verification: saved design plus real grounded response
A pretty preview is incomplete until the conversation works.
6

Copy and install the complete floating-widget embed

One asynchronous script and one chatbot-specific element are required.

Scroll to the code block in Widget Integration and copy the complete HTML, not only the chatbot ID. The block loads the WebChatAgent script asynchronously and creates the `web-chat-agent` custom element with this assistant’s ID. Paste it once before the closing `body` tag or in the site-wide custom-code area of your CMS.

Add the exact staging and production hostnames under Allowed Websites before testing. If your consent policy blocks non-essential third-party widgets, load the script only after the correct consent category; if the widget is treated as necessary support, document that decision and the data flow. Verify no duplicate scripts, console errors or Content Security Policy blocks.

Saved widget changes are fetched by the existing element. You do not need to replace the embed after changing colors, prompts or offsets. Replace it only when you intentionally switch to another chatbot ID or integration type.

  • Install once: async script + web-chat-agent element
  • Security: exact Allowed Websites hostnames
  • Privacy: apply the documented consent decision
  • QA: no duplicate script, console error or CSP block
One asynchronous script and one chatbot-specific element are required.

Example & result

See the practical test and its result

Every tutorial includes a fixed input, the expected outcome and a transparent record of what was actually verified locally.

Practical example: Customize an AI chatbot widget: complete design, behavior and embed guide

This exact scenario was completed with the temporary tutorial account.

Verified end to end

Exact test input

Change the title to “Tutorial Lab”, use a blue user bubble, copy the floating embed and open the live preview.

Expected result

The live widget reflects the design, the embed contains the correct chatbot ID and a real question receives a readable answer.

What was actually verified

The saved preview showed Tutorial Lab, the blue user-message color and a grounded answer; the complete asynchronous script and web-chat-agent element were verified in Widget Integration.

The saved preview showed Tutorial Lab, the blue user-message color and a grounded answer; the complete asynchronous script and web-chat-agent element were verified in Widget Integration.

Tips & tricks

Make the setup reliable

Test with realistic examples, record your baseline and change one setting at a time. That makes real improvements visible.

Start with built-in controls

Use Custom CSS only for the remaining details; built-in colors and offsets are less fragile across updates.

Prompt buttons should express intent

“Compare plans” is clearer than “Learn more” and gives the chatbot useful context immediately.

Test content before polishing the shell

A beautiful widget cannot compensate for missing knowledge. Verify the most important answers first, then finalize welcome text, prompts and visuals.

Choose the model for the conversation, not the colors

Use a fast, economical model for routine support and compare a stronger model only when fixed test questions show a measurable quality gain.

When something does not work

Troubleshooting

Check status, permissions and test data systematically before changing the model or prompt.

The widget does not appear on the website

Confirm the exact hostname under Allowed Websites, ensure the complete script and custom element are present once, then inspect consent blocking, Content Security Policy and browser-console errors.

The widget overlaps a cookie banner or checkout button

Open Positioning, adjust desktop and mobile bottom/right offsets independently and retest the full open panel at the smallest supported viewport.

Saved colors appear unreadable in messages

Check the separate text color for the affected header or bubble, measure the rendered foreground/background pair and restore at least 4.5:1 contrast for normal text.

Ready for a production-style test

Publish the design to a staging page and save one release matrix covering desktop, mobile, keyboard, touch, consent, known answer, unknown answer and a long response. Repeat it after every material widget or site-layout update.

Related resources