Configuration options

Make the support widget your own by configuration of the Launcher and Messenger objects.

Introduction

The widget supports a rich set of configuration options which allow you to customize the widgets appearance and behaviour. The structure of the configuration object follows the logical structure of the widget.

var configuration = {
community: 'COMMUNITY_NAME',
moduleMask: 7,
widgetId: 'WIDGET_ID',
messenger: {}, // This object will configure the messenger window
launcher: {} // This object will configure the launcher
};

Messenger Object

These attributes will modify the behaviour and appearance of the messenger.

messenger: {
right: '20px',
bottom: '85px',
animationDirection: 'bottom-to-top',
translate: '20px',
// configure the home page
home: {
logoDimensions: { width: '150px', height: '50px' },
chatLink: {
order: 1,
startChatText: 'Start Chat-Samtale',
continueChatText: 'Fortsett Chat samtale'
},
faqLink: {
order: 0,
text: 'Ofte stilte spørsmål' //optional
},
formLink: {
order: 2,
text: 'Send e-post via skjema' //optional
}
},
// configure the FAQ page
faq: {
areStickyTopicsFirst: false,
faqCategoryId: null,
faqName: 'demo',
tags: ""
},
// configure the contact page
form: {
formName: 'demo'
},
// configure the chat
chat: {
authenticationMask: 2,
idleTimeoutMs: 1000 * 60 * 24,
customFields: { someData: 'value' },
contactInfo: { userName: 'John Doe', userEmail: 'john@doe.com' },
queueBackgroundColor: 'white',
queueFontSizeRem: '1rem',
userMessageBackgroundColor: '#fefefe',
agentMessageBackgroundColor: '#fefefe',
botMessageBackgroundColor: '#ffffff'
}

Attributes

Attribute

Obligatory

Type

Description

right/left/bottom/top

No

String

Absolute position of the messenger

animationDirection

No

String

Direction of the load animation

translate

No

String

Number of pixels for the load animation

Home Sub-object

The "home" page is the first page that loads after opening the widget. With these parameters, you can control the order of each module, and override the text settings for each of them. You can also adjust the logo which appears at the top of your messenger. All the parameters are optional.

Chat Sub-object

Control which authentication methods that will be presented to the user, and override default style settings.

Attribute

Type

Description

authenticationMask

Integer

A bit mask for enabling authentication methods. 1 = Anonymous, 2 = Email, 4 = Facebook, 8 = Google.

idleTimeoutMs

Integer

Specifies the amount of time until an idle chat will close and log out the user. Defaults to null.

agentMessageBackgroundColor

String

Defines the background color of the agent chat bubbles.

agentMessageBackgroundColor

String

Defines the background color of bot chat bubbles.

queueMessageBackgroundColor

String

Defines the background color of the queue element.

queueMessageFontSizeRem

String

Set the font size in Rem of the queue element.

FAQ Sub-object

Attributes optional. Overrides the default FAQ parameters.

Attribute

Type

Description

areStickyTopicsFirst

Boolean

Presents sticky articles before others.

faqCategoryId

Integer

Restricts FAQ articles from a specific category

faqName

String

Restricts FAQ articles from a specific FAQ

tags

String

Restricts FAQ articles marked with a specific tag

Form Sub-object

Optional. Used to specify which web-form that will be loaded into the messenger.

Attribute

Type

Description

formName

String

Defines which web-form to use.

Launcher Object

These attributes will modify the behavior of the launcher. Control where the launcher should appear on the screen, and replace the default launcher icons with your own icons. Should you wish to implement your own launcher, you then simply need to set enabled to false.

launcher: {
enabled: true,
height: '45px',
width: '45px',
right: '20px',
bottom: '5px',
launchIcon: 'https://socialboardsbproduction.blob.core.windows.net/123/1029879c-8f6f-4371-ae15-fbe4110931f4.png',
dismissIcon: 'https://socialboardsbproduction.blob.core.windows.net/123/69327153-a772-4a43-a357-be3b97da0424.png'
}

Methods

Loading the JavaScript library provides an MagicWidget JavaScript object that responds to a few methods. These allow you to update users without a page refresh and interact with the messenger window.

Show or hide the messenger

To launch the messenger from other elements on your website, use the launchAsync method. To hide the chat, use the dismissAsync() method.

magicWidget.launchAsync();
magicWidget.dismissAsync();

You can subscribe to the launch state of the widget as shown below.

magicWidget.isLaunched$.subscribe(isLaunched => {
console.log('widget is launched: ' + isLaunched);
});

You can also subscribe to unread chat messages. This is usefull if you wish to use your own launcher and display a badge.

magicWidget.unreadChatMessages$.subscribe(count => {
console.log(`Total number of unread chat messages: ${count}.`);
});

This example shows how a given element is used to control the messenger.

window.magicWidgetAsyncInit = function() {
let isLaunched = false;
function toggle() {
if (isLaunched) {
magicWidget.dismissAsync();
} else {
magicWidget.launchAsync();
}
isLaunched = !isLaunched;
}
magicWidget.initializeAsync(o)
.then(function() {
var toggler = document.getElementById("mw-toggler");
toggler.addEventListener("click", toggle);
toggler.addEventListener("touchend", toggle);
magicWidget.isLaunched$.subscribe(value => {
console.log('widget is launched: ' + value);
});
})
.catch(function() { console.log('boo!') });
}

Log in Chat users automatically

If you also know the name and email of your chat user, you can use the setContactInfo function to skip the login page.

magicWidget.setContactInfo({ userName: "John Doe", userEmail: "john@email.com" })

Adding custom data to the ticket

Attach any extra information to the ticket by using the setCustomFields function.

magicWidget.setCustomFields({ isLoggedIn: true })