JavaScript SDK
Boei's SDK allows you to dynamically configure and customize your Boei widget. Here's how to use it:
How to get there: Go to Setup → Widget in the top menu → click your widget to get your widget ID.
First, include the Boei initialization code in your script:
window.BQ=window.BQ||[];window.Boei=window.Boei||function(u){BQ.push(u)};
Pre-fill visitor contact info so they don't have to enter it manually:
Boei({
name: 'John Doe',
email: 'john@example.com',
phone: '+1234567890',
company: 'Acme Inc',
id: 'customer-123',
notes: 'VIP customer'
});
You can also set fields individually:
Boei({name: 'John Doe'});
Boei({email: 'john@example.com'});
Pre-set tags to filter chatbot knowledge base content (skips the pre-chat tag question flow):
Boei({tags: 'tag-slug-1,tag-slug-2'});
Use Boei() to modify global settings:
Boei({brand_background: 'green'});
brand_background: Set the background color of the widgetbrandcolor: Set the primary brand colorbrandcolor_text: Set the text color for brand elementsbutton_hover_label: Set the label that appears on button hoverposition: Set the widget position ('bottom_left', 'bottom_right', 'top_left', 'top_right')shape: Set the widget shape ('circle', 'square')Add new channels to your widget:
Boei({add_channel: {
type: "link",
title: "External Website Link",
url: "https://boei.help",
options: {
new_window: true,
custom_conversion_label: 'Custom' // Can be null for default
},
position: 2 // The position in the widget
}});
type: Channel type (e.g., "link", "form", "chat")title: Display title for the channelurl: URL for link channelsoptions: Additional settings (optional)
new_window: Open link in new window (boolean)custom_conversion_label: Custom label for conversion trackingposition: Position in the widget (integer)Boei exposes a small set of methods you can call to open, close, and interact with the widget from your own JavaScript. These are useful for hooking the widget up to your own buttons, form submissions, search bars, route changes, or analytics events.
Boei.open(); // open the widget
Boei.open('whatsapp'); // open straight into a specific channel by key
Boei.close(); // close the widget panel
Boei.isOpen(); // returns true / false
The channel key is the one you set in the channel's settings inside your widget.
If you want full control over when the widget appears (for example only after a custom button is clicked), you can hide the launcher entirely and show it again later:
Boei.hideLauncher();
Boei.showLauncher();
Boei.ask(message) opens the chatbot and sends message as the first user message automatically. This is great for turning a search bar, a "ask AI" link, or a help-page CTA directly into a live conversation.
Boei.ask('How do I install Boei on WordPress?');
If your widget has multiple chatbots, pass the chatbot's channel key as a second argument:
Boei.ask('How do I install Boei on WordPress?', 'support-bot');
Notes:
If you know the visitor's name, email, etc. (for example because they're already logged in to your site), set it first and then open the widget so the chatbot and any forms have it pre-filled:
Boei({ name: 'Jane Doe', email: 'jane@example.com' });
Boei.open();
// or
Boei({ name: 'Jane Doe', email: 'jane@example.com' });
Boei.ask('What plan should I be on?');
See Pre-setting Visitor Information above for the full list of supported fields.
If you need access to internals that aren't exposed by the flat API, pass a function to Boei() to get a reference to the live widget instance:
Boei(function (widget) {
// widget.* full access
});
The callback runs as soon as the widget is mounted, or is queued if you call it before the widget script has loaded.
See Custom Trigger for non-JS ways to open the widget (CSS class, URL parameter, etc.).
You can chain multiple configurations:
Boei({brand_background: 'green'});
Boei({add_channel: {...}});
Boei({button_hover_label: 'Need Help?'});
Remember, settings are applied in the order they are called, with later calls potentially overwriting earlier ones.
Here's a comprehensive list of variables you can edit using Boei SDK:
brand_background: Background color or gradient for the widgetbrandcolor: Primary brand colorbrandcolor_text: Text color for brand elementsbutton_hover_label: Label that appears on button hoverposition: Widget position ('bottom_left', 'bottom_right', 'top_left', 'top_right')shape: Widget shape ('circle', 'square')opacity: Widget opacity (0 to 1)button_icon_size: Size of the button iconbutton_width: Width of the buttonbutton_height: Height of the buttonbutton_margin_x: Horizontal margin for the buttonbutton_margin_y: Vertical margin for the buttontrigger_after_seconds: Time in seconds before triggering the widgettrigger_message: Message to display when widget is triggeredtrigger_message_only_new_visitor: Show trigger message only for new visitors (boolean)close_trigger_after_seconds: Time in seconds before closing the trigger messageauto_open_after_seconds: Time in seconds before automatically opening the widgetauto_open_only_new_visitor: Auto-open only for new visitors (boolean)notification_badge_after_seconds: Time in seconds before showing a notification badgeglow_after_seconds: Time in seconds before applying a glow effectglow_duration_seconds: Duration of the glow effect in secondsglow_color: Color of the glow effectcustom_css: Custom CSS to apply to the widgeticon_svg: Custom SVG icon for the widget buttonbutton_image: Custom image for the widget buttonclose_src: Custom image for the close buttonloading_src: Custom loading imagetest_mode: Enable test mode (boolean)allow_identifiers: Allow user identifiers (boolean)direct_open_when_one_channel: Directly open single channel (boolean)display_button_watermark: Show button watermark (boolean)display_helper_watermark: Show helper watermark (boolean)display_close_trigger_message: Show close button on trigger message (boolean)display_countdown_timer: Show countdown timer (boolean)display_countdown_timer_seconds_left: Seconds left for countdown timerhide_on_pages: List of pages to hide the widget onis_spa: Treat as Single Page Application (boolean)use_google_analytics4: Use Google Analytics 4 (boolean)use_plausible_analytics: Use Plausible Analytics (boolean)use_google_tag_manager: Use Google Tag Manager (boolean)use_simple_analytics: Use Simple Analytics (boolean)use_facebook_pixel: Use Facebook Pixel (boolean)name: Pre-fill visitor nameemail: Pre-fill visitor emailphone: Pre-fill visitor phonecompany: Pre-fill visitor companyid: Pre-fill visitor ID (for CRM integration)notes: Pre-fill visitor notestags: Comma-separated tag slugs for KB filteringadd_channel)type: Channel type (e.g., "link", "form", "chat")title: Display title for the channelurl: URL for link channelsoptions: Additional channel-specific options
new_window: Open link in new window (boolean)custom_conversion_label: Custom label for conversion trackingRemember, not all variables may be applicable to every use case.