Integrations Articles

To use the chatbot, you must first integrate the Bold360 Agent and AI platforms.

Note: This feature is only available with a Bold360 AI platform account.
  1. Enable the Bold360 ai integration in the Bold360 Admin Center as follows:
    1. In the Web Admin Center, go to Integrations > Genesys DX ai.
    2. Enter your Bold360 AI platform account name, host URL, and API key that you can copy from your Bold360 Admin Console.

      To find this API key, log in to your organization's Bold360 AI platform account and go to the Admin Center > API keys tab.

    3. Click Integrate.
  2. Set up an AI-enabled chat window so that both your customers and agents receive help from the chatbot:
    1. In the Web Admin Center, go to Channels > Chat > Chat Windows and create or edit a chat window.
    2. On the General tab, select Genesys DX ai chat window for chat window type.
    3. Select the Bold360 ai chat window configuration from the Floating Widget Configuration drop-down list that you want to use. Smart Advisor will use the selected knowledge base to answer customer queries.

      Result:

      Note: You can only customize an AI chat window in the Bold360 Admin Console.
    4. Optionally, to define a separate knowledge base for your agents, select a Knowledge Base for Agents from the respective drop-down list.

      Result: This way, you can define an additional knowledge base that agents can use when the bot does not find a suitable answer. Additionally, agent answers would not influence your primary knowledge base's statistics on the Bold360 ai Dashboard.

    5. Save your changes.
  3. Set up your AI-enabled chat window's escalation path, which is called channeling policy in the Bold360 Admin Console:
    1. Create a Bold360 API access key.
      • In the Bold360 Admin Center, go to Integrations > API Access Keys and click Create New.
      • Name your API key and select a Website and a Chat window that you want to associate with chats.
      • Select the Department where you want to direct your chats.
      • Click Save and copy your API access key.

      Result:

      Note: After closing this dialog you will not be able to view this key.
    2. In the Bold360 Admin Console, go to Channeling > Policy and click Add channel.

      Channel setup requires the Bold360 API access key that you have previously created.

    Remember: To implement a chat window, you must associate it with a chat button.
    Important: When you generate your chat button HTML code, you must select the same Website that you have defined for your API Access Key in Step 3.

    Result: The integration is now available for your agents. After integration, the Smart Advisor panel automatically replaces the Canned Messages panel when a chat is transferred from the chatbot. For more information, see Smart Advisor: Chatbot-assisted conversations.


    Figure 1. Agent's view when Genesys DX ai is activated

After integrating Genesys DX ai, you may also do the following:

  • Set up the knowledge base that contains help articles. The chatbot presents the same knowledge base articles in the AI-enabled chat window to customers and on the Smart Advisor panel to agents. You can define multiple knowledge bases to serve different audiences, but every knowledge base must be associated with a separate chat window definition in the Bold360 Admin Center.
  • Customize the AI-enabled chat window. In the Bold360 Admin Console, go to Touchpoints > Floating widget and click Personalize.

For information on working with the Bold360 Admin Console, see the Bold360 ai support page.

How to work with the BoldChat API

How to dynamically instruct Bold360 AI to escalate a ticket into custom email addresses using an API?

You can tell Bold360 AI to send the ticket to additional email addresses by adding the targetEmailRecipient form value.

Example:
 
_nRepData["formValues"].push(["targetEmailRecipient", "direct", "target@email.com"]);

Replace target@email.com with your email address.

Example:
 

To send each ticket to the support team manager, add this line:

_nRepData["formValues"].push(["targetEmailRecipient", "direct", "supportTeamManager@myCompany.com"]);

How to set up user emails with the BoldChat API?

You can use the BoldChat API to update user emails without logging in to BoldChat.

Important: you must have the following account information to make a successful API call:

Your account ID (AID) that you can get by logging in to setup.boldchat.com.

In the example below, AID is 2648701413998819186

An API settings ID that you can create in the Setup > Account Setup > APIs > API Settings menu in the BoldChat Operator Client.

In the examples below, the API settings ID is 4156437641927623076

For your convenience, we have provided a sample API test page that you can use at https://developer.bold360.com/help/EN/Bold360API/Bold360API/jsonpapi.html

To change user email addresses, do the following:

  1. Retrieve LoginIDs with the getOperators API call as described in https://developer.bold360.com/help/EN/Bold360API/Bold360API/c_data_extraction_list_data_getOperators.html

    The following is an example API call:

    https://api.boldchat.com/aid/2648701413998819186/data/rest/json/v1/getOperators?auth=2648701413998819186:4156437641927623076:1569829495.....4c76

    Sample response:

    {	
        "Status": "success",	
        "Truncated": false,	
        "Data": [	
            {	
                "LoginID": "2624038010865729044",	
                "UserName": "jsmith",	
                "ChatName": null,	
                "Name": "John Smith",	
                "Email": "jsmith@company.com",	
                "EmailName": null,	
                "SSONameID": null,	
                "Disabled": null,	
                "PermissionGroupID": "2624011959449693646",	
                "Departments": [	
                    {	
                        "AssignmentPriority": 4,	
                        "Priority": null,	
                        "DepartmentID": "2624050121264430460"	
                    }	
                ],	
                "SmsService": {	
                    "Capacity": 0,	
                    "Available": false	
                },	
                "EmailService": {	
                    "Capacity": 0,	
                    "Available": false	
                },	
                "TicketService": {	
                    "Capacity": 0,	
                    "Available": false	
                },	
                "ChatService": {	
                    "Capacity": 0,	
                    "Available": false	
                },	
                "TwitterService": {	
                    "Capacity": 0,	
                    "Available": false	
                }	
            },	
        ]	
    }
  2. Update the email address with the editOperator API call of a user as described in https://developer.bold360.com/help/EN/Bold360API/Bold360API/c_provisioning_operator_editOperator.html

    The following is an example API call:

    https://api.boldchat.com/aid/2648701413998819186/data/rest/json/v1/editOperator?auth=2648701413998819186:4156437641927623076:1569831474018.....0459404&OperatorID=2624038010865729044&Email=john2.smith@company.com

    Sample response:

    {	
        "Status": "success"	
    }
  3. Repeat updating the email address of all users necessary.

How to configure Digital DX AI after setting up a messaging channel

Once you have set up a WhatsApp or Microsoft Teams messaging channel, complete additional configuration in Digital DX AI to customize the bot's behavior.

  1. Define the answer the bot returns when it can't answer the customer's question.

    You can set up multiple messages or create articles that the bot returns when the customer's search yields no results. See How to configure conversational touchpoints to learn more about how to set these up.

    Note: You can't use an article for the final message as that prevents the bot from triggering the escalation.
  2. Define channeling policies to cover different scenarios.

    Depending on whether you have a bot-only, agent-only or bot and agent messaging channel, you may define different channeling policies. See How do I define a channeling policy? to learn more about how to create a channeling policy.

    Agent only

    If you want your customers to talk to agents only on the messaging channel, set up a channeling policy with a condition where the number of words is greater than 0. Add a message as an error answer that introduces the escalation option and explains customers that they will be connected to a live agent if it's business hours and agents are available.

    Note: To prevent the bot from providing an answer, you must have an empty knowledge base.
    Bot only If you want your customers to talk to the bot only on the messaging channel, make sure you have defined error answers for when the bot can't find an answer to the customer's query.
    Agent and bot experience

    If you want customers to talk to the bot first and outside business hours but have the option to talk to an agent, you might want to:

    • Define a Day and time condition for the channeling policy that is used to escalate chats to agents
    • Use labels on articles for which you want to provide agent support and define an Article label condition for the channeling policy
What's Next?

See What are the best practices for managing a knowledge base? to learn about how you can optimize the bot's content.

How to configure the Agent Workspace after setting up a messaging channel

Once you have set up a WhatsApp or Microsoft Teams messaging channel, complete additional configuration in Bold360 Agent to customize the agent experience.

  1. Set up a department for your new channel.

    If you didn't select a department during the integration steps, now's the time to do so.

  2. Enable messaging channels for agents.
    1. Log in the Web Admin Center.
    2. On the Organization > Agents page, select the agent.
    3. On the Agent information tab, under Channels select Agent is available for Additional Channels.
    4. Save your changes.
  3. Optional: Set up Smart Advisor.

    When chatting with a customer, Smart Advisor offers agents potential answers to customer questions either based on the content of the chat conversation or by manual search.

    To use Smart Advisor as an agent, see Smart Advisor: Chatbot-assisted conversations.

    To set up Smart Advisor, see Integrate a chatbot.

  4. Optional: Set up canned messages.

    Canned messages are predefined strings of text that an agent can insert into a conversation. With canned messages, agents can send common responses without typing.

    To use Canned messages as an agent, see Canned messages for chat: Using predefined replies.

    To set up Canned messages, see Canned messages for agents.

  5. Optional: Set up wrap-up fields.

    You can create labels (wrap-up fields) to organize items in a channel automatically according to rules or manually by an agent during wrap-up.

    To use wrap-up fields as an agent, see How to prepare a wrap-up.

    To set up wrap-up fields, see Wrap-up Fields: Organize items by Category, Custom Field, Status.

  6. Optional: Set up automatic distribution.

    Automatic distribution is available for messaging channels under Messaging > Automatic Distribution. See Set up automatic distribution for messaging.

  7. Optional: Set up routing rules.

    You can route your incoming messages to specific departments based on rules that you set up in the Web Admin Center. See Manage incoming messaging items according to rules (Messaging Rules Engine).

  8. Optional: Set up inactive conversations.

    You can use this option to avoid the problem of filling up the agents' active queue. See How to configure messaging channels for more information.

Set up an SMS account (text messages)

To implement SMS functionality, you must configure an SMS account and provision a phone number to integrate with our SMS gateway.

Note: This feature is only available for Bold360 Plus subscribers and Bold360 AI platform accounts.

As with chat functionality, the SMS service supports department based routing, hours of availability, post-chat wrap-up, and canned messages, as well as an auto-respond feature to help you manage incoming chat requests.

Note:
  • Additional per message fees apply, check our website for block message rates.
  • The SMS service does not support sending images.
  1. Create a new SMS account:
    1. In the Web Admin Center, go to Channels > Messaging > SMS. The SMS Accounts page is displayed.
    2. Click Create New. The New SMS Account window is displayed.
  2. Set Account Settings:
    Option Description
    Name The account name. Not seen by customers.
    Department Associate incoming SMS with a department.
    Auto-End Interval End sessions automatically when a customer's response is not received within the defined period.
    Thread Ownership Choose how you want to handle the ownership of re-opened messenger threads:

    Original agent retains ownership of re-opened conversations ? When an incoming message re-opens a closed conversation, the originally assigned agent retains ownership.

    Original agent must re-accept re-opened conversations ? When an incoming message re-opens a closed conversation, the originally assigned agent must re-accept the conversation. If the owner is not available or fails to re-accept, the conversation is reassigned.

    Original agent must always re-accept conversations, even if open ? When an incoming message arrives to an open conversation, the originally assigned agent must re-accept the conversation. If the owner is not available or fails to re-accept, the conversation is reassigned.

    Business Hours Set hours of availability specific to SMS functionality.
  3. On the Auto Responder tab, configure how you want to automatically respond to incoming messages.

    Auto responder rules use regular expressions (regex) to evaluate incoming messages. When all criteria are matched, a response is triggered.

    Important: We recommend using Create Email Prompt Rules to create a set of rules that automatically asks the customer to enter their email address. The customer's email allows Digital DX to connect the customer to their history across all channels (chat, messages, email).
  4. On the Wrap Up tab, configure how you want to gather information from agents about ended sessions.
    • Set an Auto-Close Interval to determine how long an ended conversation remains in the agent workspace before closing automatically.
    • Choose the fields to show to the agent in the Wrap Up section of the agent workspace.
  5. On the Canned Message Folders tab, select the canned messages that you want to make available to agents handling this account.
  6. On the Phone Number tab, choose your Country and click Find Phone Number.

    Available countries:

    • Australia +61
    • Belgium +32
    • Canada +1
    • France +33 (Domestic SMS only)
    • Hungary +36
    • Ireland +353
    • Israel +972
    • Norway +47
    • Poland +351
    • Spain +34 (Domestic SMS only)
    • Switzerland +41
    • United Kingdom +44
    • United States +1

    Always check the Phone Number tab for the latest list of available countries.

    Tip: If you have your own Twilio account, click Show advanced setup and copy the following details from your Twilio Dashboard:
    Option Description
    Twilio Account SID The ID of the Twilio account that you use for messaging.
    Twilio Auth Token The token that authorizes calls for the defined Twilio account.
    Phone Number The phone number that has been provisioned for the Twilio account.

    Result: Once a number is provisioned for your account, the number is displayed on the Phone Numbers Dashboard in Twilio. This number is used to provide customers the ability to initiate SMS sessions from their mobile devices. If your organization supports messaging in multiple countries, then you must set up multiple Twilio accounts and define those SMS accounts one by one in Digital DX.

  7. Save your changes.

What are messaging applications in Digital DX AI?

Messaging applications in Digital DX AI enable you to communicate with your customers over popular messaging apps, such as WhatsApp and Microsoft Teams.

Note: Messaging applications are in beta. Contact your Customer Success Manager to learn more.

When you set up a messaging channel, you have the following options depending on your support needs:

  • Provide bot-only support if you do not have human agents
  • Provide agent-only support if you want your customers to always talk to a human agent
  • Use the combination of bot and agent support, if you want the bot to cover out of hours support and help your agents during business hours
Note: You need access to the AI Console if you want to use a bot only on your messaging application. For an agent-only and a bot and agent experience you need to have access to both the Agent Workspace and the AI Console.

Customers can interact with agents on their favorite messaging application in their own pace. The connection between the customer and the agent is permanent from the customer's perspective. Customers can start and stop the conversation in the messaging application anytime without losing connection to the agent.

To learn more about what the experience is like for customers and agents, see these articles:

How to configure messaging channels

Once you created a messaging channel for WhatsApp or Microsoft Teams, you can change the default status messages, define a context, or set up to auto-end conversations.

Make sure you have created a messaging channel.

  1. In the AI Console, go to Touchpoints > Widgets.
  2. Under Conversation configuration, select Messaging applications.
  3. Choose (Configure) next to the channel that you want to configure.
  4. Adjust the options as necessary.
    Status messages

    You can change the default messages for the following cases:

    • The conversation is escalated or closed
    • There is a network issue and the customer's message cannot be delivered
    • There are multiple answers for a customer question
    Contexts If you use context to have article variations for the WhatsApp or Microsoft Teams channel, you can specify the context here to let the bot know which variations it can display to customers. See How do I define an article's context? to learn more.
    Auto-end configurations

    Bold360 can automatically end conversations after the specified time measured from the last customer-sent message. You can define an interval between 30 minutes and 24 hours.

    You can also define a message for customers when their conversation automatically ends.

    Nanorep Entities

    When users ask questions on Microsoft Teams, now they can receive personalized answers . For example, if Bold360 is integrated with a third-party ticketing system and the agent asks How many open tickets do I have?, Bold360 can deliver a response that is specific to the user.

    To enable personalized answers, select the Enable Nanorep Entities option for the Microsoft Teams channel you configured under Touchpoints > Widgets > Messaging applications. Then create articles with personalized answers using entities.

  5. Save your changes.

Bold360 AI SEO and knowledge-base export API

The SEO and knowledge base export API "pushes" question and answer information from the Bold360 AI knowledge base into the page source.

This way the information becomes visible to search engine bots, resulting in more traffic being driven to the website, and users being able to ask questions via Google, or any other search engine, and being directed straight to your website without using the Bold360 AI widget.

API specifications

The base URL format of the API is the following:

https://my.Nanorep.com/common/api/kbExport.xml?param=value&param=value

The following is a sample script with all relevant data provided:

https://my.Nanorep.com/common/api/kbExport.xml?account=ACCOUNTNAME&apiKey=APIKEY&kb=English&plainText=true

General API parameters

Parameter

Usage

Example

username Your Bold360 AI login name. You must have Knowledge Base access privileges to use the API (required) username=john@company
pw

Your Bold360 AI password (required)

pw=1234567

kb

The Knowledge Base to export from (required)

kb=English

maxItems

The number of items to retrieve

maxItems=50

skip

The place in the list from which to start retrieving. For example, use skip=10 to skip the first 10 list items and retrieve the rest.

skip=10

format

xml/json (default:xml)

format=json

Filter parameters

Parameter

Usage

Example

byPopularity

Set this parameter to true (recommended), to display the most popular articles first in the search results.

Note: Offline articles will not be included if the parameter is set to true.

byPopularity=true

days

Displays the most popular answers given by the Bold360 AI widget during the last x days. This parameter does only have an effect if byPopularity is set to true.

days=30

labelId

Displays answers from a specific label only. You can find this information in Bold360 AI when editing a label.

labelId=ABC123

textFilter

Displays answers that contain a certain word or phrase.Important: The value of this parameter must be base64 encoded. As it is used in a URL, replace "=" with "_", and "+" with "|". For example, "hello" must be defined as "aGVsbG8_"

textFilter=aGVsbG8_

context

Displays answers that have the specified context in category:value format.

You may use more than one category:value pairs separated by commas. For example, Manufacturer:Sony, Device:iPhone **

context=TWFudWZ

hY3R1cmVy Ol Nvbn

ksRGV2aWNlOm

lQaG9uZQ__

modifiedSince

Format: yyyy-MM-ddTHH:mm.

If used, only articles modified since this date are included.

modifiedSince=2013-11-01T17:00

includeHiddenFaqItems

Includes hidden FAQ articles, which are marked by the "hide this answer from the dynamic FAQ widget" option.

includeHiddenFaqItems=tru

API URL Examples

Full export with stripped body
https://my.Nanorep.com/common/api/kbExport.xml?account=ACCOUNTNAME&apiKey=APIKEY&kb=English&byPopularity=true&plainText=true
Articles with the word 'iPhone' in them
https://my.Nanorep.com/common/api/kbExport.xml?account=ACCOUNTNAME&apiKey=APIKEY&kb=English&byPopularity=true&maxItems=20&textFilter=aVBob25l

XML Response example

<?xml version="1.0" encoding="utf-8"?>
<NanorepExport account='Nanorep' kb='633763325358580000'>
        <article id='633915887117827492' isOffline='False'>
                <title>
                        <![CDATA[How much does it cost?]]>
                </title>
                <body>
                        <![CDATA[<p>For detailed packages &amp; pricing information, <a href="http://www.Nanorep.com/index.php?page=prices" target="_blank">click here</a></p>]]></body>
        </article>
        <article id='633915887117827588' isOffline='False'>
                <contextInfo>
                        <context id='Page Type' value='General' />
                </contextInfo>
                <title>
                        <![CDATA[What is Nanorep?]]>
                </title>
                <body>
                        <![CDATA[<p>Bold360 ai is a self-service customer support &amp; service solution. It is designed to improve customer engagement and prevent website or cart abandonment by delivering instant, accurate answers to customers&#39; questions with no waiting queues what so ever.<br />&<br /></p>]]></body>
        </article>
        <article id='141286' isOffline='False'>
                <title>
                        <![CDATA[What happens when I exceed the number of questions in a given month?]]>
                </title>
                <body>
                        <![CDATA[<p>We understand that due to seasonal changes, promotions or campaigns, there can be spikes in the Q&amp;A&rsquo;s traffic.</p><p>In these cases, it won&#39;t be necessary to upgrade to a premium package.</p><p>However, in cases where there is a consistent increase in Bold360 ai&#39;s usage for more than a month, a notification on the outgrown support package&will be sent to the customer and an upgrade plan will be offered.</p>]]></body>
        </article>
                <meta skipped='0' exported='3' totalArticles='3'/>
</NanorepExport>

How do I specify Knowledge Base dynamically using an API?

Note: Use this reference for Arcade and Modern widgets.
The following API allows you to specify the name or ID of the Knowledge Base domain to be used.
Important: If you have already customized a domain for the current URL, the API cannot be used.
_nRepData["kb"] = "hebrew";
// or 
_nRepData["kb"] = "496477";

To use the API for a specific widget add the following:

_nRepData["embed"] =
{ 
  "kb": "hebrew"
}

How do I import my knowledge base from ServiceNow?

Bold360 AI uses ServiceNow's API to import knowledge base articles.

Remember: Your account must have the Enable ServiceNow article import setting enabled for each knowledge base where you want to import articles. Contact your Customer Success Manager for more information.
Note: If you are looking for information about importing articles in a batch using Bold360 AI's API, see this article.

Integrate ServiceNow with Bold360 AI

Before you can import knowledge base articles, you must first integrate ServiceNow with Bold360 AI as follows:

  1. In the AI Console, go to Admin Center > KB Setup and choose the Integration tab.
  2. From the Third-party service drop-down list, select ServiceNow. From your ServiceNow account copy the following details:
    • Copy the instance URL from your browser. Look for https://< instanceURL >.servicenow.com
    • Enter your ServiceNow user credentials.
    • From the Application Registry page in ServiceNow, create a new OAuth API endpoint for external clients that you want to use to set up a connection between ServiceNow and Bold360 AI. Then copy Client ID and Client secret to the Bold360 AI platform.

    The following is an example of the ServiceNow integration parameters:

  3. Choose Connect.

ServiceNow is now integrated with Bold360 AI.

Import Knowledge Base articles

To import knowledge base articles, do the following:

  1. Select the Bold360 AI knowledge base where you want to import articles. Note: You can only import articles to a single Bold360 AI knowledge base. Your account must have the Enable ServiceNow article import setting enabled for this knowledge base.
  2. Go to Admin Center > KB Setup and choose the Integration tab.
  3. Select the ServiceNow knowledge bases that you want to import. These are pre-populated during the integration process.
  4. Optionally, select article labels to filter the articles in the selected knowledge bases.
  5. Choose Fetch Articles and wait for the list of articles to load. Depending on the number of articles in the selected knowledge bases, this process may take a while.

    Articles that you can update in your Bold360 AI knowledge base are listed. Only those articles are listed that have changed in ServiceNow since your last knowledge base import.

  6. Select the articles that you want to import. You can click the arrow next to the title of an article to view its content.

    Articles are color-coded in the list to reflect changes in the ServiceNow knowledge base:

    • Green: new article. A new Bold360 AI article will be created.
    • Yellow: updated article. The article in the ServiceNow knowledge base has been changed. If you have edited the article in Bold360 AI then those changes will be overwritten when importing from ServiceNow.
    • Red: deleted article. The article will be removed from the Bold360 AI knowledge base.
  7. Choose Import selected articles at the top of the list.

The ServiceNow articles are now imported into your Bold360 AI knowledge base.

What happens after articles are imported?

The imported articles receive a ServiceNow label and their expiry dates are also synchronized. When an article expires, it is removed from the live site. To see expired articles in Bold360 AI, go to Knowledge > Expired.

Finally, the revision list is updated to reflect the changes in the number of imported articles.

Google Analytics Integration overview

Bold360 AI allows you to track your visitor's behavior and activity using the Google Analytics platform.

Note: If you are using Google Analytics 4, you'll need to implement custom code on your website to send data. For more information contact your Customer Success Manager.

There are two ways to implement Google Analytics snippet: synchronous and asynchronous. Currently, we only support the asynchronous snippets.

Google Analytics integration is enabled by your Customer Success Manager and you will be able to see the results in your GA Dashboard within 24 hours of activation.

Our goal is to allow maximum transparency and usability of the Bold360 AI framework to drive a better customer experience and, ultimately, value: BI, conversion increase and cost-reduction.

Custom events

If you want to send additional/customizable events, you can use our events API to trigger custom functions, including Google Analytics sending sequences. See our Events API documentation below:

Bold360 ai Events API (Arcade and Modern)

Bold360 ai Events API (Slim)

If you use our Support Center, it is also possible to add custom events for visitor's interaction there. For example, you can track click events on navigation, escalations, articles feedback and so on.

How to create an API key in Bold360 AI

API keys enable you to utilize the API capabilities of Bold360 AI.

An API key is a unique identifier that you can use to integrate other systems like Bold360 Agent with Bold360 AI. You can define multiple API keys, and each one may have its own permissions.

  1. In the AI Console, go to Admin Center > API keys and select Add API Key.

  2. Name your API key at the top of the page.

    Example: If you're creating an API key for integration with Bold360 Agent, you could use the Bold360 Live Chat name.

  3. Under Permissions, select the permissions for this API key.

    Example: If you're creating an API key for integration with Bold360 Agent, grant Write access for all categories.

    Important: If you define Write permissions, restrict access to either IP ranges or referrer domains.
  4. Under Allowed knowledge bases, select the knowledge bases that this API key can access.
  5. Under Allowed IP ranges, you can restrict access to specific IP addresses or ranges.

    Enter either a single IP or a range of IPs. You can define one IP or an IP range per line. If you don't want to apply restrictions, you can indicate by enabling Allow All IP Ranges or by entering 0.0.0.0-255.255.255.255.

  6. Under Allowed referrers, you may restrict access to requests originating from specific referrer domains.

    Enter one domain per line.

  7. Choose Generate API Key.
What's Next? Copy the API key to use it during setting up the integration. Follow these steps to integrate Bold360 AI with Bold360 Agent.

How to integrate Google Analytics with BoldChat

Integrate Google Analytics with Layered Chat Windows, track visitor interactions as Analytics events and gain accurate insight into visitor behavior.

As dynamic elements on a website, Layered Chat Windows require a mechanism to cache tracking information and provide accurate results. This step-by-step guide describes a Local Storage implementation that allows data to persist when a chat session is interrupted.

Note: Interruptions usually happen in the following circumstances:
  • Visitor navigates to a new page under the same domain.
  • Connection dropout occurs.
  • Visitor browses multiple pages on the website simultaneously.
  • Visitor closes and re-opens or reloads a page.

The Local Storage technology is compatible with the following browsers:

See the WebStorage article on Wikipedia for details.

Note: For information about Google Analytics and data residency, see Data Residency Options.

Prerequisites

All pages on your site must either include or reference the following code snippets:

Tip: Streamline code snippet delivery via Google Tag Manager.

Code locations in BoldChat for Task One, Task Two and Task Three.

Task One: Configure the Chat Frame Javascript Include

Add a Chat Frame Javascript Include to the Chat Window Definition deployed to your site. This code intercepts chat events and passes them to the chat window via the postMessage method.

Note: This is the method how Layered Chat internal events are already communicated between the Chat Frame (hosted on livechat[-eu].boldchat.com) and the Chat Window (the container, hosted on the same website that the visitor is browsing). Using this method we are basically extending the existing Chat communications methods by adding a new key ( gacomm) for these custom messages.
try {
  function sendtxt(txt) {
    var message = JSON.stringify({
      gacomm: txt
    });
    parent.parent.postMessage(message, "*");
  }
  sendtxt(bcConfig.chatOptions.page);
  window.console && console.log("Sent Chat Window Page: " + bcConfig.chatOptions.page);
  if (bcConfig.chatOptions.page == "chat") {
    var _tEvents = {
        "new-message": "bc_newHistoryMessageCallback"
      },
      _tFunction = function(i, type, fName) {
        if ((i == "new-message") && (bc.$("#bc-status-prompt").prev().hasClass("bc-operator-message"))) {
          sendtxt("answered");
        }
      }
  }
  for (var i in _tEvents) {
    window[_tEvents[i]] = _tFunction.bind(window, i, "function", _tEvents[i]);
  }
} catch (err) {
  window.console && console.error(err);
}
Tip: Looking for a quick solution? Download the full code attached to this article (chatframejs.txt).

Task Two: Configure the Chat Window Javascript Include

Add a Chat Window Javascript Include to the Chat Window Definition deployed to your site.

Note: It is recommended to encapsulate the code snippets in this section in a try/catch phrase to detect potential issues later on.
  1. Open a try/catch and import inline the LS CACHE minified script.
    Note: The Chat Window Javascript Include code depends on the LS CACHE library to manage the expiration time of Local Storage entities. We strongly recommend that you include the following minified code on your website, instead of referencing the library:
    try {
    
    /**
    * lscache library
    * Copyright (c) 2011, Pamela Fox
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    **/
    
    !function(a,b){"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports?module.exports=b():a.lscache=b()}(this,function(){function a(){var a="__lscachetest__",c=a;if(void 0!==m)return m;try{g(a,c),h(a),m=!0}catch(d){m=b(d)?!0:!1}return m}function b(a){return a&&"QUOTA_EXCEEDED_ERR"===a.name||"NS_ERROR_DOM_QUOTA_REACHED"===a.name||"QuotaExceededError"===a.name?!0:!1}function c(){return void 0===n&&(n=null!=window.JSON),n}function d(a){return a+p}function e(){return Math.floor((new Date).getTime()/r)}function f(a){return localStorage.getItem(o+t+a)}function g(a,b){localStorage.removeItem(o+t+a),localStorage.setItem(o+t+a,b)}function h(a){localStorage.removeItem(o+t+a)}function i(a){for(var b=new RegExp("^"+o+t+"(.*)"),c=localStorage.length-1;c>=0;--c){var e=localStorage.key(c);e=e&&e.match(b),e=e&&e[1],e&&e.indexOf(p)<0&&a(e,d(e))}}function j(a){var b=d(a);h(a),h(b)}function k(a){var b=d(a),c=f(b);if(c){var g=parseInt(c,q);if(e()>=g)return h(a),h(b),!0}}function l(a,b){u&&"console"in window&&"function"==typeof window.console.warn&&(window.console.warn("lscache - "+a),b&&window.console.warn("lscache - The error was: "+b.message))}var m,n,o="lscache-",p="-cacheexpiration",q=10,r=6e4,s=Math.floor(864e13/r),t="",u=!1,v={set:function(k,m,n){if(a()){if("string"!=typeof m){if(!c())return;try{m=JSON.stringify(m)}catch(o){return}}try{g(k,m)}catch(o){if(!b(o))return void l("Could not add item with key '"+k+"'",o);var p,r=[];i(function(a,b){var c=f(b);c=c?parseInt(c,q):s,r.push({key:a,size:(f(a)||"").length,expiration:c})}),r.sort(function(a,b){return b.expiration-a.expiration});for(var t=(m||"").length;r.length&&t>0;)p=r.pop(),l("Cache is full, removing item with key '"+k+"'"),j(p.key),t-=p.size;try{g(k,m)}catch(o){return void l("Could not add item with key '"+k+"', perhaps it's too big?",o)}}n?g(d(k),(e()+n).toString(q)):h(d(k))}},get:function(b){if(!a())return null;if(k(b))return null;var d=f(b);if(!d||!c())return d;try{return JSON.parse(d)}catch(e){return d}},remove:function(b){a()&&j(b)},supported:function(){return a()},flush:function(){a()&&i(function(a){j(a)})},flushExpired:function(){a()&&i(function(a){k(a)})},setBucket:function(a){t=a},resetBucket:function(){t=""},enableWarnings:function(a){u=a}};return v});
    Tip: Looking for a quick solution? Download the full code attached to this article (chatwindowjs.txt).
  2. Define the events to be reported in Google Analytics.
    var ga_events = {
      	"prechat": 'PreChat Form Displayed',
      	"chat": "Chat Opened",
      	"answered": "Chat Answered",
      	"postchat": "Survey Displayed",
      	"email": "Email Form (Unavailable)",
      	"no-operators": "Unavailable Chat",
      	"chat-sent": "Survey Completed or Transcript",
      	"message-sent": "Unavailable Email Sent",
      	"final": "Chat Ended without Survey or Transcript"
    	}
  3. Validate messages for security reasons.

    The following code achieves the following:

    • Ensures messages come from the livechat[-eu].boldchat.com server
    • Parses messages
    • Checks localStorage for existing events to be de-duplicated and discarded, if necessary
    • Sends relevant events to Google Analytics

    Note how individual events are stored in the browser localStorage with a CID, a unique identifier for Chat windows that survives page re-loads, browser closing/reopening as well as navigation on different tabs under the same domain.

    The code also ensures that the user is able to start multiple simultaneous chats on different domains while events are accounted for separately and accurately.

    function listener(event) {
      if (event.origin !== "https://" + bcConfig.host) return;
      var pmessage = JSON.parse(event.data);
      if (pmessage.hasOwnProperty('gacomm')) {
        window.console && console.log("Received: " + event.data);
        var received = pmessage.gacomm + "---" + bcConfig.cid;
        var found = false;
        lscache.flushExpired();
        CIDs = lscache.get('CIDs');
        if (CIDs !== null) {
          var arrayLength = CIDs.length;
          for (var i = 0; i < arrayLength; i++) {
            if (CIDs[i] == received) {
              found = true;
              break;
            };
          };
        } else {
          CIDs = [];
        }
        if (!found) {
          CIDs.push(received);
          lscache.set('CIDs', CIDs, 60);
          window.console && console.log("Sending new event to GA: " + received);
          try {
            ga('send', 'event', {
              eventCategory: 'Live Chat',
              eventAction: ga_events[pmessage.gacomm],
              eventLabel: 'Chat Window'
            });
          } catch (err) {
            window.console && console.error("Google Analytics UA code not found on page");
          }
        }
      }
    }
    if (window.addEventListener) {
      addEventListener("message", listener, false)
    } else {
      attachEvent("onmessage", listener)
    }
  4. Close the try/catch:
    } catch (err) {
      window.console && console.error(err);
    }

Task Three: Video Chat Events (Optional)

Track video chat events by updating your Chat Frame and Chat Window Javascript Includes.

Note: The video chat feature works over the HTTPS exclusively. If your site does not support secure connections, BoldChat opens the chat in a popup window and switches to HTTPS. In this case, you must include the Google Analytics snippet at the top of the Chat Window Javascript Include code to be able to send tracking data to Google Analytics.

Tracking messages contain specific video chat events that are assigned to individual Event Categories. This data is appended to _tEvents objects.

  1. Use the following Chat Frame Javascript Include code on your site:
    /* Chat Frame Javascript Include */
    
    try {
      var VIDEOCHAT_CATEGORY = 'Video Chat';
    
      var trackEventByVideoSessionStatus = {
        3: { event: "videochat-started", initiatedBy: "By Visitor"},
        4: { event: "videochat-started", initiatedBy: "By Operator"},
        7: { event: "videochat-ended", initiatedBy: "By Operator"},
        8: { event: "videochat-ended",  initiatedBy: "By Visitor"}
      };
    
      function sendtxt(txt, category, parameter) {
        var message = JSON.stringify({
          gacomm: txt,
          eventCategory: category || 'Live Chat',
          eventParameter: parameter || 'Chat Window'
        });
    
        parent.parent.postMessage(message, "*");
      }
    
      sendtxt(bcConfig.chatOptions.page);
      window.console && console.log("Sent Chat Window Page: " + bcConfig.chatOptions.page);
      if (bcConfig.chatOptions.page == "chat") {
        var _tEvents = {
            "new-message": "bc_newHistoryMessageCallback",
            "video-support": "bc_chatWindowLoadedEventCallback",
            "video-statechange": "bc_videochatStatusChangedCallback"
          },
          _tFunction = function(i, type, fName, value) {
            if ((i == "new-message") && (bc.$("#bc-status-prompt").prev().hasClass("bc-operator-message"))) {
              sendtxt("answered");
            }
    
            if ((i == "video-support")) {
                if (bcConfig.videoSupport) {
                    sendtxt("videochat-available", VIDEOCHAT_CATEGORY);
                }
                else {
                    sendtxt("videochat-unavailable", VIDEOCHAT_CATEGORY);
                }
            }
    
            if ((i == "video-statechange")) {
                var trackEvent = trackEventByVideoSessionStatus[value];
                if (trackEvent) {
                  sendtxt(trackEvent.event, VIDEOCHAT_CATEGORY, trackEvent.initiatedBy);
                }
    
                if (bcConfig.videoSupport.isAudioOnly && trackEvent && trackEvent.event === "videochat-started") {
                  sendtxt("videochat-audio-only", VIDEOCHAT_CATEGORY);
                }
              }
          }
      }
      for (var i in _tEvents) {
        window[_tEvents[i]] = _tFunction.bind(window, i, "function", _tEvents[i]);
      }
    } catch (err) {
      window.console && console.error(err);
    }
    Tip: Looking for a quick solution? Download the full code by clicking the attachment of this article.
  2. In Google Analytics, ga_events objects must contain the new event definitions in the Chat Window Javascript Include.
    var ga_events = {
      "prechat": 'PreChat Form Displayed',
      "chat": "Chat Opened",
      "answered": "Chat Answered",
      "postchat": "Survey Displayed",
      "email": "Email Form (Unavailable)",
      "no-operators": "Unavailable Chat",
      "chat-sent": "Survey Completed or Transcript",
      "message-sent": "Unavailable Email Sent",
      "final": "Chat Ended without Survey or Transcript",
      "videochat-available": "Video Chat Available",
      "videochat-unavailable": "Video Chat Unavailable",
      "videochat-started": "Video Chat Started",
      "videochat-ended": "Video Chat Ended",
      "videochat-audio-only": "Chat is Audio Only"
    }
    Update the ga message to send new tracking parameters.
    function listener(event) {
      if (event.origin !== "https://livechat.boldchat.com") return;
      var pmessage = JSON.parse(event.data);
      if (pmessage.hasOwnProperty('gacomm') 
          && pmessage.hasOwnProperty('eventCategory') 
          && pmessage.hasOwnProperty('eventParameter')) {
        window.console && console.log("Received: " + event.data);
        var received = pmessage.gacomm + "-" + bcConfig.cid;
        var found = false;
        lscache.flushExpired();
        CIDs = lscache.get('CIDs');
        if (CIDs !== null) {
          var arrayLength = CIDs.length;
          for (var i = 0; i < arrayLength; i++) {
            if (CIDs[i] == received) {
              found = true;
              break;
            };
          };
        } else {
          CIDs = [];
        }
        if (!found) {
          CIDs.push(received);
          lscache.set('CIDs', CIDs, 60);
          window.console && console.log("Sending new event to GA: " + received);
          try {
            ga('send', 'event', {
              eventCategory: pmessage.eventCategory,
              eventAction: ga_events[pmessage.gacomm],
              eventLabel: pmessage.eventParameter
            });
          } catch (err) {
            window.console && console.error("Google Analytics UA code not found on page");
          }
        }
      }
    }
    if (window.addEventListener) {
      addEventListener("message", listener, false)
    } else {
      attachEvent("onmessage", listener)
    }
    } catch (err) {
      window.console && console.error(err);
    }
    Tip: Looking for a quick solution? Download the full code by clicking the attachment of this article.

Reporting

Events are reported with a few seconds' delay under the Real-Time Events section and they are processed and made available within 24 hours under the Behavior section as well as Dimensions in Custom Reports, allowing maximum flexibility to be tied to any other Google Analytics dimension and metric.


Troubleshooting

For troubleshooting purposes and to ensure that events are transmitted correctly, the code above outputs three log lines for each chat event in the browser console, if available.


Similarly, in case the Google Analytics code is not found by BoldChat on the hosting website page, the following error is thrown in the browser console, if available:


How to set up auto-translation

With Auto-translation, messages between visitor and operator are translated in real-time, thus allowing both parties to chat in their own language if the language pair is available.

This feature requires a GeoFluent subscription that you can acquire by contacting Lionbridge. Lionbridge will provide you with the account key and secret you need to start using auto-translation.

How does auto-translation work?

Auto-translation takes the following parameters into account:

  • Visitor language: Determined by the chat window's language setting or the language the visitor selected on the pre-chat form. You can define chat window language defaults in the chat window configuration.
  • Operator languages: The languages the operator speaks, prioritized by fluency level. You can configure operator languages in the operator settings.
  • Language pairs: The translation pair is supported by your GeoFluent subscription.

If the operator and the visitor share a common language, translation is not needed and it is switched off by default. Otherwise, if none of the operator languages match the visitor language and the language pair is available, messages are translated automatically.

GeoFluent is a third-party service. How is my sensitive information protected?

Your content is maintained in a secure, private workspace and never enters the public domain. As per BoldChat standards, messages are transmitted via secure protocols only.

Note: For information about GeoFluent and data residency, see Data Residency Options.

Are visitors aware when chat messages are being auto-translated?

Yes. Visitors are notified in a system chat message if messages are being auto-translated.

Depending on your requirements, original messages can also be displayed for visitors if Allow visitor to see original message is selected in the Chat Window configuration. This option also affects the content of chat transcripts.

How to configure your GeoFluent subscription

  1. Go to Setup > General Account Settings > Auto-translation and select Enable auto-translation.
  2. Configure your GeoFluent subscription and defaults.
    Option Description
    GeoFluent Host The host name provided by Lionbridge for your GeoFluent subscription.
    GeoFluent Account Key The account key provided by Lionbridge for your GeoFluent subscription.
    GeoFluent Account Secret The account secret provided by Lionbridge for your GeoFluent subscription.
    Default Language The language operators speak by default. Custom operator language settings override this value.
    Supported Language Pairs The language pairs available for your GeoFluent subscription. To add or remove language pairs, contact Lionbridge about adjusting your GeoFluent subscription.
  3. Click Validate credentials and refresh language pairs to check your GeoFluent settings and synchronize language pairs available for your subscription.
    Remember: You must do this every time your GeoFluent subscription changes (such as adding a new language pair to your subscription).

Yes. Bold360 is a one-stop-shop for omni-channel engagement including chat, email, message management, remote access, and co-browse. The Bold360 API provides an interface for communicating with an application and allows you to customize how Bold360 and BoldChat integrate with your applications.

The Bold360 API is a tool for retrieving information related to your Bold360 account and based on that information, recreate most of the functionality that Bold360 offers. Bold360 API calls are launched by triggers that contain the conditions of making an API call. When a user on your website clicks an element, such as a chat button, an API can be called to extend or modify that interaction.

For more information, see the Bold360 and BoldChat Developer Center.

How to integrate Bold360 Agent with Bold360 AI

Integrate Bold360 AI and Bold360 Agent to enable your customers to escalate to a live agent when necessary.

Before you start: You must have valid Bold360 AI and Bold360 Agent subscriptions. The integration must be set up in both the Bold360 Admin Center and Bold360 AI.

Set up the integration in Bold360 Agent

  1. Log in to admin.bold360.com and go to Integrations > Bold360 ai.
  2. Enter your Bold360 ai account name.

    If you don?t know your account name, go to your Bold360 AI account and check the website name. The account name is whatever comes before .nanorep.co in the full URL.

    Result: Upon filling out the Bold360 ai account name field, you?ll notice that the Bold360 ai host url field is populated automatically.

  3. Enter the Bold360 AI API key.

    See How to create an API key in Bold360 AI for more information.

  4. Choose Integrate.

Set up the integration in Bold360 AI

  1. Log in to Bold360 AI, and go to Channeling > Channeling Policy.
  2. Choose (Create channel).
  3. Name your channel.

    Example: For example, Bold360 chat.

  4. Define criteria for selecting your target audience.

    For a search widget, we recommend doing this for queries without an answer (Search Results = No results) or by label (Article Label = Chat).

    Note: You need to create and assign this label to the articles where chat should be available. You can find more detailed information about channeling criteria here.
  5. Select Chat for Channel type.
  6. Under Button action, choose Show chat form.
  7. Select Bold360 from the Select chat provider drop-down.
  8. Paste your Bold360 Agent API key into the API key field. If you don't know your Bold360 Agent API key, create a new one as follows:
    1. Log in to admin.bold360.com and go to Integrations > API Access Keys.
    2. Choose Create New.
    3. Name the API Key.

      Example: For example, Bold360 ai.

    4. For Website, select My Website.
    5. Select the Department where you want to direct your chats.

      You can leave this blank unless you want to create different policies for different chat departments. If that's the case, you will want to create your departments as outlined in the Quick start guide to set up Bold360. From there, you can follow these instructions to create multiple API keys and channeling policies (one for each department).

    6. For Chat Window, select My Chat Window.
    7. Choose Save.
    8. When the Access Key window pops up, select Copy to Clipboard to copy your API key.

      Result: Now you can go back to Bold360 AI and paste this key.

  9. Choose Save Settings to save your channeling policy.

What's next?

If you are new to Bold360 Agent, follow the instructions in the Quick start guide to set up Bold360 to set up your Bold360 Agent account.

Google Analytics Integration with Bold360 Layered Windows

Integrate Google Analytics with Layered Chat Windows, track visitor interactions as Analytics events and gain accurate insight into visitor behavior.

As dynamic elements on a website, Layered Chat Windows require a mechanism to cache tracking information and provide accurate results. This step-by-step guide describes a Local Storage implementation that allows data to persist when a chat session is interrupted.

Note: Interruptions usually happen in the following circumstances:
  • Visitor navigates to a new page under the same domain.
  • Connection dropout occurs.
  • Visitor browses multiple pages on the website simultaneously.
  • Visitor closes and re-opens or reloads a page.

The Local Storage technology is compatible with the following browsers:

  • Google Chrome recommended (Last 20 versions)
  • Mozilla Firefox on Windows (Last 10 versions)
  • Microsoft Edge
  • Microsoft Internet Explorer 9 and newer
  • Safari on macOS (Last two versions)
  • Opera (Last 10 versions)

See the WebStorage article on Wikipedia for details.

Note: For information about data residency, see the BoldChat Help Center. Bold360 and BoldChat data residency options are identical.

Prerequisites

All pages on your site must either include or reference the following code snippets:

Tip: Streamline code snippet delivery via Google Tag Manager.

Task One: Configure the Chat Frame Javascript Include

Add a Chat Frame Javascript Include to the Chat Window Definition deployed to your site. This code intercepts chat events and passes them to the chat window via the postMessage method.

  1. Go to Channels > Chat > Chat Windows > Customization tab.
  2. Under Appearance, select Layered - Details > Includes > Chat Frame Javascript Include.
  3. Add the following method to the Content field at the bottom:
    Note: This is the method how Layered Chat internal events are already communicated between the Chat Frame (hosted on livechat[-eu].boldchat.com) and the Chat Window (the container, hosted on the same website that the visitor is browsing). Using this method we are basically extending the existing Chat communications methods by adding a new key (gacomm) for these custom messages.
    try {
      function sendtxt(txt) {
        var message = JSON.stringify({
          gacomm: txt
        });
        parent.parent.postMessage(message, "*");
      }
      sendtxt(bcConfig.chatOptions.page);
      window.console && console.log("Sent Chat Window Page: " + bcConfig.chatOptions.page);
      if (bcConfig.chatOptions.page == "chat") {
        var _tEvents = {
            "new-message": "bc_newHistoryMessageCallback"
          },
          _tFunction = function(i, type, fName) {
            if ((i == "new-message") && (bc.$("#bc-status-prompt").prev().hasClass("bc-operator-message"))) {
              sendtxt("answered");
            }
          }
      }
      for (var i in _tEvents) {
        window[_tEvents[i]] = _tFunction.bind(window, i, "function", _tEvents[i]);
      }
    } catch (err) {
      window.console && console.error(err);
    }
  4. Save your changes.

Task Two: Configure the Chat Window Javascript Include

Add a Chat Window Javascript Include to the Chat Window Definition deployed to your site.

Note: It is recommended to encapsulate the code snippets in this section in a try/catch phrase to detect potential issues later on.
  1. Go to Channels > Chat > Chat Windows > Customization tab.
  2. Under Appearance, select Layered - Details > Includes > Chat Window Javascript Include.
  3. Open a try/catch and import inline the LS CACHE minified script.
    Note: The Chat Window Javascript Include code depends on the LS CACHE library to manage the expiration time of Local Storage entities. We strongly recommend that you include the following minified code on your website, instead of referencing the library:
    try {
    
    /**
    * lscache library
    * Copyright (c) 2011, Pamela Fox
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    **/
    
    !function(a,b){"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports?module.exports=b():a.lscache=b()}(this,function(){function a(){var a="__lscachetest__",c=a;if(void 0!==m)return m;try{g(a,c),h(a),m=!0}catch(d){m=b(d)?!0:!1}return m}function b(a){return a&&"QUOTA_EXCEEDED_ERR"===a.name||"NS_ERROR_DOM_QUOTA_REACHED"===a.name||"QuotaExceededError"===a.name?!0:!1}function c(){return void 0===n&&(n=null!=window.JSON),n}function d(a){return a+p}function e(){return Math.floor((new Date).getTime()/r)}function f(a){return localStorage.getItem(o+t+a)}function g(a,b){localStorage.removeItem(o+t+a),localStorage.setItem(o+t+a,b)}function h(a){localStorage.removeItem(o+t+a)}function i(a){for(var b=new RegExp("^"+o+t+"(.*)"),c=localStorage.length-1;c>=0;--c){var e=localStorage.key(c);e=e&&e.match(b),e=e&&e[1],e&&e.indexOf(p)<0&&a(e,d(e))}}function j(a){var b=d(a);h(a),h(b)}function k(a){var b=d(a),c=f(b);if(c){var g=parseInt(c,q);if(e()>=g)return h(a),h(b),!0}}function l(a,b){u&&"console"in window&&"function"==typeof window.console.warn&&(window.console.warn("lscache - "+a),b&&window.console.warn("lscache - The error was: "+b.message))}var m,n,o="lscache-",p="-cacheexpiration",q=10,r=6e4,s=Math.floor(864e13/r),t="",u=!1,v={set:function(k,m,n){if(a()){if("string"!=typeof m){if(!c())return;try{m=JSON.stringify(m)}catch(o){return}}try{g(k,m)}catch(o){if(!b(o))return void l("Could not add item with key '"+k+"'",o);var p,r=[];i(function(a,b){var c=f(b);c=c?parseInt(c,q):s,r.push({key:a,size:(f(a)||"").length,expiration:c})}),r.sort(function(a,b){return b.expiration-a.expiration});for(var t=(m||"").length;r.length&&t>0;)p=r.pop(),l("Cache is full, removing item with key '"+k+"'"),j(p.key),t-=p.size;try{g(k,m)}catch(o){return void l("Could not add item with key '"+k+"', perhaps it's too big?",o)}}n?g(d(k),(e()+n).toString(q)):h(d(k))}},get:function(b){if(!a())return null;if(k(b))return null;var d=f(b);if(!d||!c())return d;try{return JSON.parse(d)}catch(e){return d}},remove:function(b){a()&&j(b)},supported:function(){return a()},flush:function(){a()&&i(function(a){j(a)})},flushExpired:function(){a()&&i(function(a){k(a)})},setBucket:function(a){t=a},resetBucket:function(){t=""},enableWarnings:function(a){u=a}};return v});
  4. Define the events to be reported in Google Analytics.
    var ga_events = {
      	"prechat": 'PreChat Form Displayed',
      	"chat": "Chat Opened",
      	"answered": "Chat Answered",
      	"postchat": "Survey Displayed",
      	"email": "Email Form (Unavailable)",
      	"no-operators": "Unavailable Chat",
      	"chat-sent": "Survey Completed or Transcript",
      	"message-sent": "Unavailable Email Sent",
      	"final": "Chat Ended without Survey or Transcript"
    	}
  5. Validate messages for security reasons.

    The following code achieves the following:

    • Ensures messages come from the livechat[-eu].boldchat.com server
    • Parses messages
    • Checks localStorage for existing events to be de-duplicated and discarded, if necessary
    • Sends relevant events to Google Analytics

    Note how individual events are stored in the browser localStorage with a CID, a unique identifier for Chat windows that survives page re-loads, browser closing/reopening as well as navigation on different tabs under the same domain.

    The code also ensures that the user is able to start multiple simultaneous chats on different domains while events are accounted for separately and accurately.

    function listener(event) {
      if (event.origin !== "https://" + bcConfig.host) return;
      var pmessage = JSON.parse(event.data);
      if (pmessage.hasOwnProperty('gacomm')) {
        window.console && console.log("Received: " + event.data);
        var received = pmessage.gacomm + "---" + bcConfig.cid;
        var found = false;
        lscache.flushExpired();
        CIDs = lscache.get('CIDs');
        if (CIDs !== null) {
          var arrayLength = CIDs.length;
          for (var i = 0; i < arrayLength; i++) {
            if (CIDs[i] == received) {
              found = true;
              break;
            };
          };
        } else {
          CIDs = [];
        }
        if (!found) {
          CIDs.push(received);
          lscache.set('CIDs', CIDs, 60);
          window.console && console.log("Sending new event to GA: " + received);
          try {
            ga('send', 'event', {
              eventCategory: 'Live Chat',
              eventAction: ga_events[pmessage.gacomm],
              eventLabel: 'Chat Window'
            });
          } catch (err) {
            window.console && console.error("Google Analytics UA code not found on page");
          }
        }
      }
    }
    if (window.addEventListener) {
      addEventListener("message", listener, false)
    } else {
      attachEvent("onmessage", listener)
    }
  6. Close the try/catch:
    } catch (err) {
      window.console && console.error(err);
    }

Task Three: Video Chat Events (Optional)

Track video chat events by updating your Chat Frame and Chat Window Javascript Includes.

Note: The video chat feature works over the HTTPS exclusively. If your site does not support secure connections, Bold360 opens the chat in a popup window and switches to HTTPS. In this case, you must include the Google Analytics snippet at the top of the Chat Window Javascript Include code to be able to send tracking data to Google Analytics.

Tracking messages contain specific video chat events that are assigned to individual Event Categories. This data is appended to _tEvents objects.

  1. Use the following Chat Frame Javascript Include code on your site:
    /* Chat Frame Javascript Include */
    
    try {
      var VIDEOCHAT_CATEGORY = 'Video Chat';
    
      var trackEventByVideoSessionStatus = {
        3: { event: "videochat-started", initiatedBy: "By Visitor"},
        4: { event: "videochat-started", initiatedBy: "By Operator"},
        7: { event: "videochat-ended", initiatedBy: "By Operator"},
        8: { event: "videochat-ended",  initiatedBy: "By Visitor"}
      };
    
      function sendtxt(txt, category, parameter) {
        var message = JSON.stringify({
          gacomm: txt,
          eventCategory: category || 'Live Chat',
          eventParameter: parameter || 'Chat Window'
        });
    
        parent.parent.postMessage(message, "*");
      }
    
      sendtxt(bcConfig.chatOptions.page);
      window.console && console.log("Sent Chat Window Page: " + bcConfig.chatOptions.page);
      if (bcConfig.chatOptions.page == "chat") {
        var _tEvents = {
            "new-message": "bc_newHistoryMessageCallback",
            "video-support": "bc_chatWindowLoadedEventCallback",
            "video-statechange": "bc_videochatStatusChangedCallback"
          },
          _tFunction = function(i, type, fName, value) {
            if ((i == "new-message") && (bc.$("#bc-status-prompt").prev().hasClass("bc-operator-message"))) {
              sendtxt("answered");
            }
    
            if ((i == "video-support")) {
                if (bcConfig.videoSupport) {
                    sendtxt("videochat-available", VIDEOCHAT_CATEGORY);
                }
                else {
                    sendtxt("videochat-unavailable", VIDEOCHAT_CATEGORY);
                }
            }
    
            if ((i == "video-statechange")) {
                var trackEvent = trackEventByVideoSessionStatus[value];
                if (trackEvent) {
                  sendtxt(trackEvent.event, VIDEOCHAT_CATEGORY, trackEvent.initiatedBy);
                }
    
                if (bcConfig.videoSupport.isAudioOnly && trackEvent && trackEvent.event === "videochat-started") {
                  sendtxt("videochat-audio-only", VIDEOCHAT_CATEGORY);
                }
              }
          }
      }
      for (var i in _tEvents) {
        window[_tEvents[i]] = _tFunction.bind(window, i, "function", _tEvents[i]);
      }
    } catch (err) {
      window.console && console.error(err);
    }
    Tip: Looking for a quick solution? Download the full code by clicking the attachment of this article.
  2. In Google Analytics, ga_events objects must contain the new event definitions in the Chat Window Javascript Include.
    var ga_events = {
      "prechat": 'PreChat Form Displayed',
      "chat": "Chat Opened",
      "answered": "Chat Answered",
      "postchat": "Survey Displayed",
      "email": "Email Form (Unavailable)",
      "no-operators": "Unavailable Chat",
      "chat-sent": "Survey Completed or Transcript",
      "message-sent": "Unavailable Email Sent",
      "final": "Chat Ended without Survey or Transcript",
      "videochat-available": "Video Chat Available",
      "videochat-unavailable": "Video Chat Unavailable",
      "videochat-started": "Video Chat Started",
      "videochat-ended": "Video Chat Ended",
      "videochat-audio-only": "Chat is Audio Only"
    }
    Update the ga message to send new tracking parameters.
    function listener(event) {
      if (event.origin !== "https://livechat.boldchat.com") return;
      var pmessage = JSON.parse(event.data);
      if (pmessage.hasOwnProperty('gacomm') 
          && pmessage.hasOwnProperty('eventCategory') 
          && pmessage.hasOwnProperty('eventParameter')) {
        window.console && console.log("Received: " + event.data);
        var received = pmessage.gacomm + "-" + bcConfig.cid;
        var found = false;
        lscache.flushExpired();
        CIDs = lscache.get('CIDs');
        if (CIDs !== null) {
          var arrayLength = CIDs.length;
          for (var i = 0; i < arrayLength; i++) {
            if (CIDs[i] == received) {
              found = true;
              break;
            };
          };
        } else {
          CIDs = [];
        }
        if (!found) {
          CIDs.push(received);
          lscache.set('CIDs', CIDs, 60);
          window.console && console.log("Sending new event to GA: " + received);
          try {
            ga('send', 'event', {
              eventCategory: pmessage.eventCategory,
              eventAction: ga_events[pmessage.gacomm],
              eventLabel: pmessage.eventParameter
            });
          } catch (err) {
            window.console && console.error("Google Analytics UA code not found on page");
          }
        }
      }
    }
    if (window.addEventListener) {
      addEventListener("message", listener, false)
    } else {
      attachEvent("onmessage", listener)
    }
    } catch (err) {
      window.console && console.error(err);
    }
    Tip: Looking for a quick solution? Download the full code by clicking the attachment of this article.

Reporting

Events are reported with a few seconds' delay under the Real-Time Events section and they are processed and made available within 24 hours under the Behavior section as well as Dimensions in Custom Reports, allowing maximum flexibility to be tied to any other Google Analytics dimension and metric.


Troubleshooting

For troubleshooting purposes and to ensure that events are transmitted correctly, the code above outputs three log lines for each chat event in the browser console, if available.


Similarly, in case the Google Analytics code is not found by Bold360 on the hosting website page, the following error is thrown in the browser console, if available:


You can display additional record details on the Salesforce panel both in compact and expanded modes.

Remember: When you search for a record in the Bold360 Salesforce panel, the results are listed in compact mode. To switch to expanded mode, click the arrow to the right of the Salesforce record.
  1. To display additional details of Salesforce records, go to Salesforce Setup > Object Manager tab and select a Salesforce object.
  2. On the Page Layouts tab, select the page layout that you want to change.
    • To modify the expanded page layout, drag-and-drop the layout elements from the top of the page to the <Salesforce Object> Detail section.
    • To modify the compact page layout, click Mini Page Layout at the top of the page. Add fields from the Available to Selected column that you want to display and then Save your changes.
  3. Click Save when you are done.

How to work with Salesforce in Bold360

The Salesforce integration in Bold360 delivers highly customizable Customer Relationship Management (CRM) experience to Bold360 agents while they chat with customers. The integration increases agent efficiency by making Salesforce customer data directly available from Bold360.

Note: This feature is only available for Bold360 Plus subscribers and Bold360 AI platform accounts.

Agents can access their company's Salesforce account during chat from the custom integration panel.

Agents can do the following during chat:

  • Search for customer data in the company's Salesforce account

  • Create and update accounts, leads and any other default or custom Salesforce objects directly from Bold360

Automatic lookup of Salesforce records during chat

When you open the Salesforce integration panel, Bold360 automatically searches for records in Salesforce that are associated with the relevant Salesforce objects as follows:

  • Bold360 searches for Salesforce records based on the customer's email address, first name, or last name, which is gathered from the pre-chat form of the chat window.
  • Bold360 then searches for those Salesforce records, which are related to the retrieved contact record and were defined during the Salesforce integration process.
  • If no contact record is found then, using the customer's email address, first name, or last name, Bold360 looks up any Salesforce record that were mapped to Bold360 during the Salesforce integration process. See Integrate Salesforce into Bold360.

How to search manually for Salesforce records during chat

If automatic lookup does not show any result, you can still manually search for information that is relevant to the customer in your company's Salesforce database. To do so, type a term in the search field and press Enter. The results are displayed on tabs, where each tab represents a Salesforce category. Click on a search result to see detailed information.

After searching for customer data, you can either link the current chat to an existing record or create a new record in Salesforce.

How to link a chat conversation to Salesforce during chat

When you find customer data in Salesforce about the person who you currently chat with, you can link the current or a past chat session to the customer's record in Salesforce. This way, you can append the chat transcript in Salesforce to the customer's chat history that helps your sales team to follow up with customers. To link a chat session, click the Link button next to the item in the results.

The chat transcript is sent to Salesforce when the chat is closed in Bold360.

Note: You can link the chat conversation only to one Salesforce record on each tab.

How to create Salesforce records during chat

If your search does not retrieve any result, you can create Salesforce records while you chat with a customer.

  1. On the Salesforce panel, click Create a New Contact at the bottom of the results list.

    Depending on what type of customer data you want to create, the button is named differently.

  2. Fill in all available information. Details that the customer provide on the pre-chat form are filled in automatically.
  3. Click Save & Link.

The new contact is now available in Salesforce and the chat transcript is automatically linked to it.

How to configure Digital DX Conversation Integration

After installation, configure the Bold360 Conversation Integration app.

  1. In the Salesforce App Launcher, select the Bold360 item.
  2. Navigate to the Bold360 Setup

    Result: The Object Summary page is displayed.

  3. From the Select Salesforce object drop-down list, add all the relevant objects that you want to use in the Agent workspace. By default, you can select the following Salesforce objects:
    Salesforce object Description
    Account Displays customer account information in the Bold360 Agent workspace.
    Case Displays cases related to the customer.
    Contact Displays customer contact details.
    Lead Displays information about leads related to the customer.
    Opportunity Displays information about opportunities related to the customer.

    Result: You can also select custom Salesforce objects as described in How to add a custom Salesforce object to the Bold360 Salesforce panel.

  4. Configure each object, following the steps below.
    1. Click the object name to see its details and enable it at the top of the page.
    2. From the Select Channel(s) drop-down list, select a channel that you want to support.
      Note: Currently, only the Chat channel is supported.
    3. Set Permission to Read/Create.
    4. Select a Salesforce object page layout, which defines the relevant fields that users can view and edit in Salesforce. Click Save when you are done.
    5. Under Field Mapping, click Configure to set up the mapping between chat window fields and the fields of the selected Salesforce object.
    6. Select a chat window to map its fields to your Salesforce account.
    7. In the chat field mapping section, select the fields of your Bold360 chat window that you want to save to your Salesforce account. Click Add when you are done.
      Important: For field mapping to work properly, you must be aware of which fields are available in Salesforce and what the equivalent of those fields are in the Agent Workspace.
    8. For each Digital DX chat field, select a corresponding Salesforce field from the drop-down lists. This way, you can automate the process of filling in customer information.
    9. Click Save.

      Result: To set up the field mapping between multiple Bold360 chat windows and your Salesforce account, you must repeat the configuration process from step 4.f.

For information on other integrations, see developer documentation.

How to renew connection to your Facebook account

Unless you log in to Facebook, the connection to your Facebook account expires in 60 days and your Digital DX integration stops working.

To continue using Facebook Messenger as a channel, do the following:

  1. On the Facebook Messenger Accounts page, select an account.
  2. On the Account Settings page, select Renew connection to your Facebook account.
  3. To reconnect Facebook to Digital DX, click the Log In button showing the Facebook logo.

    You are prompted to enter your Facebook account details.

    Tip: If you are using a custom app approved by Facebook to manage Facebook Messenger, click Show Advanced Setup and enter details as required (App ID, App Secret, Access Token, Webhook URL, Token).
  4. Save your account settings.

About Bold360 and Salesforce field mapping

You can map the following Bold360 fields to Salesforce fields:

Bold360 field Type Description
Area Code Numeric The are code of the customer's phone number, captured within the VisitPhone parameter or through Phone Number in pre-chat survey.
Category Text The User Category that the Agent selects in the post-chat form.
Chat ID Numeric Bold360-assigned unique identifier for each chat session.
Chat Name Text The name of the customer, captured within the VisitName parameter or through Name in pre-chat survey.
Chat URL URL Specific web address from where the chat was started.
City Text The city of the customer based on the geographical location of the specific IP.
Closed Text Date and time in UTC format when the customer closed the chat window.
Comments Text Comments that the customer provided in the post-chat survey.
Country Text The country of the customer based on the geographical location of the specific IP.
Created Text Date and time in UTC format when the chat was created by clicking the button or invite.
Custom URL Text The custom URL of the chat that's not the same as the URL of the website hosting the chat. This can be useful for identifying a URL or page that would normally be blocked due to internal IT rules.
Department Text The name of the Bold360 Department that the chat was most recently assigned to.
Due Date Text This field is no longer actively used
Ended Text Date and time in UTC format when either the customer or agent ended the chat.
Ended By Text The party who ended the chat session.
Ended Reason Text Reason for why the chat was ended, which is either disconnected or closed.
First Answered Text Date and time in UTC format when the chat was first answered.
Flagged Binary Displays whether the chat was flagged within Bold360.
Folder Text Name of Bold360 folder in which the chat was created.
Initial Question Text Initial question of the customer as entered on the pre-chat form.
IP Numeric The IP address of the customer's device connecting to Bold360.
Knowledge Numeric Displays the level of knowledge of the agent on a 1 to 5 scale as evaluated by the customer. Only available when post-chat survey is enabled.
Last Visitor Message Sent Text Date and time in UTC format when the customer's most recent message was received.
Net Promoter Score Numeric Displays the Net Promoter Score (NPS) of the agent on a 1 to 10 scale as evaluated by the customer. Only available when post-chat survey is enabled.
Operator Text The name of the most recently assigned agent.
Operator Message Count Numeric The number of messages that agents sent.
Overall Numeric Displays the level of overall satisfaction of the customer with the agent on a 1 to 5 scale. Only available when post-chat survey is enabled.
Page Type Text The last page of a chat window presented to a customer:
  • 0 - The "final" page type (where the chat window is closed)
  • 1 - The main chat page
  • 5 - The post-chat survey form
  • 6 - The pre-chat survey form
  • 7 - The unavailable email form
  • 9 - The "browser unsupported" page
  • 10 - The post-chat survey submitted notice page
  • 11 - The unavailable email submitted notice page
  • 12 - The "no operators" page shown when there's no available email form.
  • 14 - The "chat not validated" page shown when validation fails.
Professionalism Numeric Displays the level of professionalism of the agent on a 1 to 5 scale as evaluated by the customer. Only available when post-chat survey is enabled.
Region Text The state/province of the customer based on the geographical location of the specific IP.
Responsiveness Numeric Displays the level of responsiveness of the agent on a 1 to 5 scale as evaluated by the customer. Only available when post-chat survey is enabled.
Reverse IP Numeric The IP address of a customer's IP. Used for reverse DNS lookup.
Started Text Date and time in UT format when a chat was started from the chat queue.
Status Text Status of the customer as selected by Agent in the post-chat form.
Unresponded Message Count Numeric Number of customer-sent messages received since the last agent message.
Visit Email Text The email address of the customer, captured within the VisitEmail parameter or through Email in the pre-chat survey
Visit ID Numeric Bold360-assigned unique identifier for each site visit.
Visit Info Text Free-form parameter for passing in additional details of a customer into Bold360 visitor monitoring code.
Visit Phone Numeric The phone number of the customer, captured within the VisitPhone parameter or through Phone in the pre-chat survey.
Visit Ref Text Free-form parameter for passing in uniquely identifying details of a customer into Bold360 visitor monitoring code.
Visitor ID Numeric Bold360-assigned unique identifier for visitor.
Visitor Message Count Numeric The number of messages that the customer sent.

How to display chat transcripts in a Salesforce object

How to display chat transcripts in a Salesforce object

You can associate chat transcripts with Salesforce objects so when you open a record in Salesforce, you see the transcripts of all related chats.

  1. When you log in to your Salesforce account, go to the Salesforce Setup > Object Manager tab and select the object where you want to display chat transcripts.
  2. On the Page Layouts page, select the layout that you want to associate with chat transcripts.
  3. From the Related Lists group at the top of the page, drag and drop Bold360 Conversations to the Related Lists section of the page.
  4. Click Save when you are done.

How to set up a custom Salesforce domain in a single sign-on environment

  1. Create a new integration user in Salesforce with the permissions to read and create objects within Salesforce.
  2. Open a new browser window and make sure that you're not currently logged into Salesforce as another user.
  3. Log into Salesforce as the newly-created integration user, using the following URL format: <domain>.my.salesforce.com/?login, where <domain> is the custom domain name for the customer's Salesforce environment.
    Note: Using this URL you can log in with only your username and password and you don't have to disable single sign-on or add the integration user to the organization's identity provider or active directory.
  4. Once logged into Salesforce as the integration user, open a new browser tab.
  5. On the new browser tab, open https://admin.bold360.com and log in as an agent that has access to the Salesforce connector setup.
  6. Once logged into the Bold360 Web Admin interface, access the Salesforce connector setup at Integrations > Salesforce.
  7. Enter the name of the custom domain and click Set up integration.

    Result: You will be redirected to a Salesforce page.

  8. On the Salesforce page click accept to proceed.

Integrate Salesforce into Bold360

Salesforce integration delivers highly customizable Customer Relationship Management (CRM) experience to Bold360 agents while they chat with customers.

Note: This feature is only available for Bold360 Plus subscribers and Bold360 AI platform accounts.

The integration increases agent efficiency as it makes Salesforce customer data directly available from Bold360. An agent does not have to switch between Salesforce and the Bold360 Agent Workspace since the integration makes Salesforce customer data directly available from Bold360.

The properly configured integration provides a link on the custom integration toolbar next to the customer's name that agents can use to access their Salesforce account during chat sessions.


Figure 1. Agent's view when the Salesforce panel is active

To set up Salesforce in Bold360, you must do the following:

  • Install the Bold360 Conversation Integration app in Salesforce.
  • Set up the integration in Bold360 Admin Center.
  • Configure the relevant Salesforce objects and then map the Bold360 chat fields to Salesforce customer data fields.
  • Optionally, set up Salesforce to display chat transcripts when you open Salesforce objects.

What are the advantages of integrating Salesforce into Bold360?

  • You can use standard and custom objects, such as Accounts, Cases, and Contacts
  • Record lookup finds messaging transcripts
  • Real-time object updates
  • Knowledge share: customer gets the same information regardless of channels
  • Adds a single pane in Bold360 Agent Workspace
  • Create Salesforce cases in Bold360 with knowledge available

Bold360 for developers

Bold360 offers tools and integrations to help customize your implementation.

API and SDK resources in the Bold360 and BoldChat Developer Center

Please refer to the Bold360 and BoldChat Developer Center for detailed documentation.

All BoldChat solutions other than the Salesforce integration are valid for Bold360 as well.

Zendesk Integration

Provide a link that agents use to access Zendesk during chat sessions. To set up the Zendesk integration, use the desktop version of the BoldChat client. Learn more at the BoldChat Help Center: Zendesk Integration.

Tip: When the agent is using Window 8.1 with Internet Explorer 11, the agent must select the following options under Advanced Privacy Settings: Accept First- and Third-party Cookies, Always allow session cookies.


Figure 1. Zendesk link

How to enable the Salesforce integration in Bold360

After setting up Bold360 Conversation Integration, the connection between Salesforce and Bold360 must be enabled.

  1. In the Web Admin Center, go to Integrations > Salesforce.
  2. Select the domain that you want to use to connect to your Salesforce account:
    • If your organization registered a custom domain with Salesforce, such as yourdomain.my.salesforce.com, then select Use a custom domain and define that domain in the field below.
      Tip: If your organization enforces Single sign-on ("SSO"), see How to set up a custom Salesforce domain in a single sign-on environment.
    • Otherwise, select Connect via salesforce.com
  3. Click Set up integration.

    Result: You are redirected to Salesforce.

  4. On the Allow Access page in Salesforce click Allow.

    Result:

    Note: You cannot change the list of required permissions. You are redirected to Bold360.
  5. Optional: Select the Trigger Filters that you want to apply to block certain agents from using the Salesforce integration.

How to enable the Salesforce integration for an agent

For individual agents, you can enable the Salesforce panel in the agent workspace to be able to look up customer information in the organization's Salesforce account.

Note: This feature is only available for Bold360 Plus subscribers and Bold360 AI platform accounts.
  1. Create or edit an agent, as follows:
    1. In the Web Admin Center, go to Organization > Agents.
    2. On the Agent Management page, select an existing agent or click Create New.

    Result: The New/Edit Agent page is displayed.

  2. On the Advanced Settings tab, select a Designated Salesforce Connector.
  3. Save your changes.

For information on how to set up the Salesforce connector, see Integrate Salesforce into Bold360.

How to add a custom Salesforce object to the Bold360 Salesforce panel

You can add custom Salesforce objects to the Bold360 Salesforce panel by creating it first in Salesforce and then adding it to the Bold360 Conversation Integration managed package.

  1. To create a new custom object, go to the Salesforce Setup > Object Manager tab, then click Create > Custom Object.
  2. Fill in the details of your custom Salesforce object and click Save when you are done.
  3. To add the new custom object to the Bold360 Salesforce panel, do the following:
    1. Go to the Salesforce Setup > Object Manager tab and select the Bold360 Conversation object.
    2. On the Fields & Relationships page, click New and define the field relationship.
    3. In Step 1, select Lookup Relationship for Data Type and click Next.
    4. In Step 2, select your custom Salesforce object from the Related To drop-down list and click Next.
    5. In Step 3, enter the Field Label that you want to display on the Bold360 Salesforce panel as a new tab. Click Next when you are done.
    6. In Step 4, select the Salesforce user profiles who should see the new tab on the Bold360 Salesforce panel. Click Next when you are done.
    7. In Step 5, select the Salesforce Page Layout which should include this new field. Click Next when you are done.
    8. In Step 6, select the Salesforce Page Layout that should be related to this list. Click Save when you are done.
  4. From the App Launcher, select the Bold360 Setup item.
  5. On the Object Summary page, configure your custom Salesforce object to be displayed on the Salesforce panel in the Agent Workspace:
    1. Select your custom object from the Add more Salesforce Object(s) list and click Add.
    2. Click the name of your custom object to view its details and enable it at the top of the page.
    3. From the Select Bold360 Channel(s) drop-down list, select a channel that you want to support.

      Result:

      Note: Currently, only chat is supported.
    4. Select a Salesforce object page layout, which defines the relevant fields that users can view and edit in Salesforce when entering data and click Save.
    5. Under Field Mapping, click Configure to set up the mapping between Bold360 chat window fields and the fields of the selected Salesforce object. For more information, see About Bold360 and Salesforce field mapping.
    6. Select a Bold360 chat window to map its fields to your Salesforce account.
    7. In the Bold360 chat field mapping section, select the fields of your Bold360 chat window that you want to save to your Salesforce account. Click Add when you are done.
    8. For each Bold360 chat field, select a corresponding Salesforce field from the drop-down lists. This way, you can automate the process of filling in customer information. Click Save when you are done.

      Result:

      Important: For field mapping to work properly, you must be aware of which fields are available in Salesforce and what the equivalent of those fields are in Bold360.

How to install Bold360 Conversation Integration in Salesforce

How to install Bold360 Conversation Integration in Salesforce

The Bold360 Conversation Integration app acts as a mediator between Bold360 and Salesforce and is responsible for the communication between the two systems.

  1. Make sure that all customer information that identifies a Salesforce object is also configured on the Bold360 pre-chat form. You can do so in Channels > Chat Windows > Edit Chat Window > Pre-chat form.

    Result:

    Tip: The integration retrieves better results if the customer provides more information on the pre-chat form.
  2. Log into your Salesforce account and follow this link to install the package.
  3. On the Install Bold360 Conversation Integration page, check the option, select who can use the app, and click Install.
    Note: At the moment the Bold360 Conversation Integration app is not a part of Salesforce's AppExchange Partner Program.
  4. On the Approve Third-Party Access page, select Yes, grant access to these third-party web sites and click Continue.
  5. Click Done.
    Note: The installation may take a while. You will receive an e-mail once it's done.

The Bold360 Conversation Integration app appears on the Installed Packages page of Salesforce.

Ticket Export API

You can use the Bold360 AI Ticket Export API to download ticket data to XML or CSV format.

Syntax

https://my.Nanorep.com/common/api/ticketexport.xml?account=ACCOUNTNAME&apiKey=APIKEY&kb=KB&label=labelid&month=7&year=2013&includeText=true&closeOverdue=true&format=xml

Parameters

Name Description
username The username used to log into my.Nanorep.com (user account requires KB manager or admin permission).
password The password used to log into my.Nanorep.com (user account requires KB manager or admin permission).
kb The target Knowledge Base.
label The label ID when you want to export tickets from a specific label.
month The target month, for example 7.
year The target year, for example 2013.
includeText Set to true to include the ticket correspondence.
closeOverdue
  • Set to true to return overdue tickets
  • Set to false to return tickets that were not overdue
format Format should be set to one of the following:
  • xml
  • csv

Return values

The returned data will include the list of tickets, and each ticket will include the following information:

  1. Ticket title
  2. Ticket body
  3. Ticket email address
  4. Ticket Status (open or closed)
  5. Ticket Time & Date
  6. Agent Reply Time & Date
  7. Ticket correspondence

Viewing and working on the data in Excel

To view and work on the data in Excel, please follow the steps below:

  1. Browse to the API using your browser.
  2. Right click on the page and "Save As" to a CSV / XML file.
  3. Open the file in Excel.

Bold360 AI Events API for Arcade and Modern widgets

Events API

The Events API allows the customer to hook into various Bold360 AI widget events.

For example, you can use this API to push different Bold360 AI events to a 3rd party BI system (e.g. Universal Analytics) and generate Bold360 AI related Reports.

Note: This API is valid for Arcade and Modern styles only. Please see this guide if you are using a Slim widget.

Supported Events:

  • load: Fires when the widget is fully loaded
  • userStartedTyping: Fires when User starts typing into the search box
  • query: Fires after the user finishes typing and the query is sent to the server
  • incomingSearchResults: Fires when the search results arrive at the widget
    • hasResults(bool) - indicates if results were given to the query.
    • isAutoQuestion(bool) - indicates if the query was an auto question.
    • query(string) - the query asked.
    • results(Json Array) - the results to the query. Each item in the array is a json object: { answerId(string), title(string), body(string) }
  • escalation: Fires when the user performed an escalation (e.g email, chat)
  • like: Fires when the user clicked 'Like' on a search result
// For floating widgets _nRepData["float"] = { //.... // events: { eventName: function(parameters) {} } 
//.... // } 
// For the embedded widgets _nRepData["embed"] = { //.... // events: { eventName: function(parameters) {} } 
//.... // } 
// For both widgets _nRepData[" events "] = { eventName: function(parameters) {} };

Usage Examples:

// Widget loaded: load: function(){alert("widget loaded!");} 
// User started typing: userStartedTyping: 
function(){alert("user started typing");} 
// User asked a question: query: 
function(query, isAutoQuestion){alert("user asked: " + query + ". is auto ? : " + isAutoQuestion);} 
// Incoming search results: incomingSearchResults: 
function(hasResults){alert("incoming search results. has results: " + hasResults);} 
// User performed escalation: escalation: 
function(type, query){alert("Escalation occurred. type: " + type + ". user query: " + query);} 
// User clicked 'Like': like : 
function(query, answer){alert("User liked the answer: " + answer + " for the query: " + query);}

Floating widget script example:

< !--do not modify this script -- > 
< div class='Nanorep_loadingData' id='NanorepProxyContainer' style='position:absolute;top:-500px;left:0px;' >
< /div > 
< script type='text/javascript' >var _nRepData = _nRepData || []; _nRepData['kb'] = '24218399';
 _nRepData['float'] = {account: 'nisim', cdcVersion: 3, cdcFrame: '', 
scriptVersion: '2.19.2.2', events: { userStartedTyping: function(){alert("user started typing");}} }
 /* API here */; (function(){var windowLoadFunc = function(){var _nRepData = window._nRepData || [];
_nRepData['windowLoaded'] = true;if (typeof(_nRepData['windowOnload']) === 'function')
 _nRepData['windowOnload']();};if (window.attachEvent)window.attachEvent('onload', windowLoadFunc);
else if (window.addEventListener)window.addEventListener('load', windowLoadFunc, false);
var sc = document.createElement('script');sc.type = 'text/javascript';
sc.async = true;sc.defer = true;sc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'my.Nanorep.com/widget/scripts/float.js';
var _head = document.getElementsByTagName('head')[0];_head.appendChild(sc);})(); 
< /script >

Bold360 AI Events API for Slim and Harmony widgets

The Events API allows the customer to hook into various Bold360 AI widget events. For example, you can use this API to push different Bold360 AI events to a 3rd party BI system (for example Universal Analytics) and generate Bold360 AI-related Reports.

You can use Widget Events API on the page where the widget is implemented as follows:

<script>
Nanorep.floatingWidget.on({ // Nanorep.embeddedWidget 
  init : function() { 
    this.setConfigId('916824103'); 
  }, 
  load : function() { 
    this.setContext({ brand: 'Apple' }); 
  }
});
< /script >

You can find the full list of events and methods here: http://my.Nanorep.com/web/doc/v1.html?section=widgets

Example: Sending customized GA events
 
/* API here */ 
Nanorep.embeddedWidget.on({ 
  init : function() { 
    this.setConfigId("1010521062"); 
  }, 
  ask : function(query) {
    ga('send', 'event', { 
      'eventCategory': 'Nanorep Widget', 
      'eventAction': 'Search', 
      'eventLabel': query 
    }); 
  },
  feedback : function( feedbackInfo , answer ) { 
    var f_message; 
    let type = 'Bad '; 
    console.log(feedbackInfo); 
    
    if (feedbackInfo.text) { 
      f_message = feedbackInfo.text; 
  
    } else { 
      switch (feedbackInfo.type) { 
        case 4: 
          f_message = 'Missing or incorrect information'; 
          break; 

        case 8:
          f_message = 'Answer irrelevant to the page'; 
          break; 

        case 1: 
          { 
            type = 'Good '; 
          }; 
          break; 
      }
    }
    ga("send", "event", { 
      'eventCategory': 'Nanorep Widget', 
      'eventAction': type + 'feedback', 
      'eventLabel': f_message, 
      'dimension1': answer // additional custom dimension 
    })
  }, 
  
  escalate : function( channel , answer ) { 
    ga('send', 'event', { 
      'eventCategory': 'Nanorep Widget', 
      'eventAction': 'Escalation ' + '[' + channel + ']', 
      'eventLabel': answer }); },
  
  noResults : function( query ) { 
    ga('send', 'event', { 
      'eventCategory': 'Nanorep Widget', 
      'eventAction': 'No answer', 
      'eventLabel': query 
    }); 
  }
});

How to import multiple articles in a batch with the API

You can import a large number of articles in a batch through the API.

Important: If the Dual control of article approval option is enabled for your account, article import through the API is not possible. Contact your Success Manager for more information.
Articles can be imported to the knowledge base through the API when the Enable approval workflow option is enabled for an account. Such articles will be in Published status and they are set live in the knowledge base.
Note: It is not possible to import system labels like Never Published, Draft, Offline or Hide in Support Center.

To learn more about how to import articles through the API, visit our Rest API & SDK Reference.

What's the customer experience like in WhatsApp?

Learn how articles created in Bold360 AI are displayed in WhatsApp.

The way articles are displayed in WhatsApp differs from how they are displayed in widgets because WhatsApp is a text-based messaging app. When creating articles that are to be presented in WhatsApp, keep the following in mind:

  • WhatsAppcandisplay text, but it doesn?t present inline bulleted and numbered lists, tables, or carousels.
  • It supports simple URL links but can?t handle links to email addresses or to other articles in the knowledge base.
  • It automatically removes embedded videos and advanced text formatting from articles.
  • Conversational flows and entities are supported except for persistent and quick buttons. Persistent and quick buttons are presented as texts and the user can enter the number of the option or the name of the option to continue the flow.
  • When the bot finds multiple answers to the user's query, the bot lists options as a numbered list and suggests the user to enter the number of an option. Should customers change their mind, they can still select a different option:
  • Agent escalation works by setting up channeling policies in Bold360 AI. Once the conversation is channeled, the bot stops responding and lets the agent continue the conversation. Customers see a message when the conversation is escalated to an agent and when it ends. Customers however don't have an option to end the conversation with the agent.

How to set up a WhatsApp messaging channel

To use WhatsApp for communicating with your customers, you need to create a messaging channel in Bold360 AI.

Make sure the following steps have been completed:

  • You purchased a WhatsApp Business Account and your Customer Success Manager has completed the necessary configuration settings to enable WhatsApp integration.
  • You have created an API key in Bold360 AI that meets the following criteria:
    • It is set up to have access to the knowledge base you selected in the previous step
    • It has all permissions set to write
    • Its allowed IP ranges are set to 0.0.0.0-255-255.255.255

      Go to Admin Center > API Keys in Bold360 AI to see a list of already existing API keys or to create one. See How to create an API key in Bold360 AI to learn more.

  • If you want to use live agents too, make sure you have integrated Bold360 AI with Bold360 Agent.
  1. In the AI Console, go to Touchpoints > Widgets.
  2. Under Conversation configuration, select Messaging applications.
  3. On the Channels tab, choose the plus icon to create a new channel.

    Result: You are taken to the Create Channel page.

  4. On the Create Channel page, enter a name and a description for the channel.
  5. Select the knowledge base that the bot should use to serve your customers.
  6. Enter the knowledge base API key.

    You need to provide an API key here that meets the following criteria:

    • It is set up to have access to the knowledge base you selected in the previous step
    • It has all permissions set to write
    • Its Allowed IP ranges are set to 0.0.0.0-255-255.255.255

      Go to Admin Center > API Keys in Bold360 AI to see a list of already existing API keys or to create one. See How to create an API key in Bold360 AI to learn more.

  7. Select Bold360ai for Escalation Provider Type.
    • Make sure you have the correct Bold360 integration URL.

      Your integration is either in the US or EU region. For an EU-based integration, add -eu into the integrations field. Otherwise, leave it empty.

    • In the API Key filed, enter your Bold360 Agent API key.

      To get this API key, log in to the Bold360 Admin Center and go to Integrations > API Access Keys and create a new key. Make sure you select the correct chat window.

    • Select the Smart Advisor Knowledge Base that will offer potential responses to your human agents during chat.
  8. Select WhatsApp for Provider.
  9. In the DeploymentID field, enter your WhatsApp deployment ID.

    To get the DeploymentID, go to the WhatsApp Deployments tab of messaging applications.

    Note: The WhatsApp deployment was created beforehand with the help of your Customer Success Manager and should be active.
  10. Save your channel settings.
What's Next?
  • Read this article to learn how to configure your messaging channel further.
  • See this article to complete additional configuration in Bold360 AI.
  • Read this article for additional configuration steps in Bold360 Agent.

How to add and customize the Bold360 search widget in Microsoft Teams

As an administrator of your company, you must install the Bold360 app in Teams just as any other app.

What's the customer experience like in Microsoft Teams?

Learn how articles created in Bold360 AI are displayed in Microsoft Teams.

The way articles are displayed in Microsoft Teams differs from how they are displayed in widgets. When creating articles that are to be presented in Microsoft Teams, keep the following in mind:

  • Microsoft Teams can display text, lists, tables, but it can't present carousels.
  • It supports URL links, links to email addresses and to other articles in the knowledge base.
  • It can display embedded videos and advanced text formatting in articles.
  • Conversational flows and entities are supported except for persistent buttons. Persistent buttons work the same way as quick buttons: once the user selects an option, the buttons disappear.
  • When the bot finds multiple answers to the user's query, the bot presents the options as buttons.
  • Agent escalation works by setting up channeling policies in Bold360 AI. Once the conversation is channeled, the bot stops responding and lets the agent continue the conversation. Customers see a message when the conversation is escalated to an agent and when it ends. Customers however don't have an option to end the conversation with the agent.

How to set up a Microsoft Teams messaging channel

To use Microsoft Teams for communicating with your customers, you need to create a messaging channel in Bold360 AI.

Make sure the following steps have been completed:

  • You have created an API key in Bold360 AI that meets the following criteria:
    • It is set up to have access to the knowledge base you selected in the previous step
    • It has all permissions set to write
    • Its allowed IP ranges are set to 0.0.0.0-255-255.255.255

      Go to Admin Center > API Keys in Bold360 AI to see a list of already existing API keys or to create one. See How to create an API key in Bold360 AI to learn more.

  • If you want to use live agents too, make sure you have integrated Bold360 AI with Bold360 Agent.
  1. In the AI Console, go to Touchpoints > Widgets.
  2. Under Conversation configuration, select Messaging applications.
  3. On the Channels tab, choose the plus icon to create a new channel.

    Result: You are taken to the Create Channel page.

  4. On the Create Channel page, enter a name and a description for the channel.
  5. Select the knowledge base that the bot should use to serve your customers.
  6. Enter the knowledge base API key.

    You need to provide an API key here that meets the following criteria:

    • It is set up to have access to the knowledge base you selected in the previous step
    • It has all permissions set to write
    • Its Allowed IP ranges are set to 0.0.0.0-255-255.255.255

      Go to Admin Center > API Keys in Bold360 AI to see a list of already existing API keys or to create one. See How to create an API key in Bold360 AI to learn more.

  7. Select Bold360ai for Escalation Provider Type.
    • Make sure you have the correct Bold360 integration URL.

      Your integration is either in the US or EU region. For an EU-based integration, add -eu into the integrations field. Otherwise, leave it empty.

    • In the API Key filed, enter your Bold360 Agent API key.

      To get this API key, log in to the Bold360 Admin Center and go to Integrations > API Access Keys and create a new key. Make sure you select the correct chat window.

    • Select the Smart Advisor Knowledge Base that will offer potential responses to your human agents during chat.
  8. Select Microsoft Teams for Provider.
  9. In the Channelid field, enter your Microsoft Office tenant ID.

    To get your tenant ID, in Microsoft Teams, right-click a team and select Get link to team. Ask your administrator if you need help.

  10. Save your channel settings.
What's next?
  • Make sure Allow sideloading of external apps and Allow external apps in Microsoft Teams are enabled and use the .zip file attached to this article to add the Bold360 app to Microsoft Teams. For more information refer to Microsoft?s documentation.
  • Read this article to learn how to configure your messaging channel further.
  • See this article to complete additional configuration in Bold360 AI.
  • Read this article for additional configuration steps in Bold360 Agent.

Using the Analytics API

The Analytics API enables you to access and collect data from the Bold360 AI Analytics section.

You can get a more comprehensive picture of your customer support processes and self-service success. You can also build custom reports that show your customer support impact.
  1. To use the Analytics API, create an API key in your Bold360 AI account.

    For information on how to create a new API key, click here.

  2. To retrieve analytics data with the API, use the get method.
    • For a JSONP response, use: https://my.nanorep.com/api/analytics/v1/get
    • To retrieve a CSV file, use: https://my.nanorep.com/api/analytics/v1/get.csv
    Table 1. Input parameters
      Usage Example
    cb

    The JSONP callback method.

    Note: JSONP only.
    cb=callbackMethod
    account

    The account name.

    account=myAccount
    apiKey

    An API key with analytics read privileges for the required knowledge-bases.

    apiKey=xxx-yyy-zzz
    kb

    One or more knowledge-base names to obtain data for (comma-separated).

    kb=English,Spanish
    analysis

    Value analysis type. Possible values are:

    • hourly
    • daily
    • weekly
    • monthly
    analysis=weekly
    days
    Note: You must provide either a day or month value when selecting a date range.

    Date range in days to obtain data for.

    days=14
    months
    Note: You must provide either a day or month value when selecting a date range.

    Date range in months to obtain data for.

    months=6
    timezone

    Timezone in hours to obtain correct dates.

    timezone=5
    values

    List of values to include in output (comma-separated).

    List of possible values is provided in the table below.

    values=engagements,resolved
    labelid (Optional) Get data on specific label. labelId=1CE001C
    Table 2. Possible values for values parameter
    Value name Description

    Engagements

    answeredSessions Total answers provided, including self-service, rechanneling, and tickets.
    interactions Total interactions via Bold360 AI interfaces (widgets, Support Center, API, and so on).
    answered Interactions where search has returned an answer.
    unanaswered Interactions where search did not return an answer.
    resolved Engagements resolved by Bold360 AI (visitor received an answer, and did not escalate or provide negative feedback).
    unresolved Engagements not resolved by Bold360 AI (either no search result has been found or the visitor's question was escalated to an agent, or the visitor provided negative feedback).
    resolvedBySearch Engagements resolved using the Search interface.
    resolvedBySearchAC Engagements resolved using the Search interface by selecting an auto-completion suggestion (subset of resolvedBySearch).
    resolvedByFAQ Engagements resolved using an FAQ interface (in Dynamic FAQ widget, or FAQs in embedded or floating widgets).
    resolvedBySupportCenter Engagements resolved using a Support Center article.
    positiveFeedback Number of positive feedback from all touchpoints.

Receive internal support in Microsoft Teams

To get internal support from the bot, search for Bold360 in the search field of Teams. When the app opens, you have the following options:

Get instant self-service support
Type your question at the bottom of the app to get an immediate answer for the bot. If the bot does not provide any answer, try to rephrase your question.
Escalate chat to a live agent
When the answer that the bot provides is insufficient, you can escalate the chat to a human agent. Send a message to the bot with the word escalate and wait for an agent to join the chat.
Add Bold360 to your Teams apps

During a conversation, you can add Bold360 to your Teams apps so that you can find it easier later on. To do so, click Add at the top of the app. You can open Bold360 from your Teams apps.

How to use the Bold360 Integration for ServiceNow app?

This application allows you to easily synchronize selected categories of knowledge article between ServiceNow and Bold360 AI and offers the following benefits:

  • One-way knowledge base synchronization from ServiceNow to Bold360 AI, where the ServiceNow knowledge content is the source (master)
  • Synchronize one or many ServiceNow KBs to one or many AI KBs
  • Supports up to 100.000 articles per KB
  • Synchronize articles to Bold360 AI either on demand (automatic, immediate when change happens) or in a scheduled way (automatic, periodically)
  • Filtering options for any default or custom fields to select articles that you want to sync
  • When synchronizing plain text or HTML formatted articles with inline images, clickable links, and so on, identical copies in Bold360 AI are created
  • Pre-defined article field mapping between ServiceNow and Bold360 AI, as well as an option to map additional article fields (default or custom) between the two systems
  • Safeguards to prevent duplication of manually imported ServiceNow articles prior to using this app

You can download the app from the ServiceNow Store.

To install, configure, and use this app, see the attached user guide.

How do I setup a CRM/Ticketing System Integration?

The email forwarding integration can be set as follows:

  1. In the AI Console, go to Admin Center > Ticketing Settings.
  2. On the Ticketing Basics tab, go to the 3rd party integration section.
  3. Enter the email address where you want tickets to be forwarded to.
  4. Save your changes.

What is the Contact Form API?

The Contact Form API allows you to specify values that will populate the contact form when it's opened.

To learn more about this API, visit our Rest API & SDK Reference.

How to integrate BoldChat?

To integrate BoldChat with Bold360 AI, do the following:

  1. Login to your Bold360 AI, and go to Channeling > Policy.
  2. Click Add channel.
  3. Select Chat for Channel type.
  4. Select Bold360 from the Select chat provider drop-down list.
  5. Paste your BoldChat API key into the API key field.

    If you do not know your BoldChat API key, open your BoldChat console and go to the Setup > General Account Settings menu. On the Chat API tab, click View key next to the API key that you want to copy.

  6. Optionally, define the conditions for the chat button to appear. For more information on setting up conditions, see How do I define a channeling policy?.
  7. Save your changes.

Once the integration is set up, make sure you are Online in the BoldChat console to accept new chats. You will see the Chat escalation button on the Bold360 AI widget. If the chat integration does not work, contact our support.

What are the event log API and voices API?

The Bold360 AI event log API and voices API enable you to collect history of voices and event logs.

To learn more about these APIs, visit our Rest API & SDK Reference.

LivePerson LP2 integration - how to test that integration is working

  • Make sure you have the correct account, engagement ID, and the ID of the element where the LivePerson (lp) buttons should be injected.
  • Add a generic rule to make sure that the chat works for any article.
  • The lp tag code should not be injected by Bold360 AI unless decided otherwise. The integration should work regardless of whether the lp tag code exists on the page. However, if needed, you can manually add the lp tag to the page where you perform tests, such as the Support Center page. You should get the lp tag code either from the LivePerson console, if you have the credentials to the account that is being tested, or ask for this code from the customer.
  • Read the following article to get all necessary information from LivePerson.

When you are all set, run your test page and ask a question that should display the chat icon in the action bar of the article. If you cannot see a chat, you must confirm whether the integration is not working or the chat (agent) is not available.

  1. Open the Inspect window (Ctrl+Shift+i).
  2. Go to Console and type lpTag.
  3. Check that the site number matches the the account ID, which is set in the console role.
  4. Check the availability of the chat by clicking lpTag.taglets.rendererStub.getEngagementState(<engagement ID that is set in the policy rule>). Look at the state of the chat to verify that the integration works:
    • If state is 0, the integration does not work properly. See Troubleshooting for more information.
    • If state is 1, the integration is OK and there are no available agent at this time
    • If state is 2 and you do not see the button, this is a CSS issue as something hides the button

Do the following to verify that there are no issues with the setup of the integration:

  • Since we cannot support two simultaneous active chats, verify that there is only one LP2 chat rule active for a specific article.
  • Be patient. From the moment an agent starts using the LivePerson console, it takes up to 5 minutes for Bold360 AI to recognize that a chat is available.

If troubleshooting verifies that the integration works fine, then the problem is with LivePerson.

Can I see an example of Bold360 AI conversion tracking in Google Analytics?

Note: Conversion tracking has been integrated into Bold360 Acquire. For more information, contact your Customer Success Manager.

This is an example of an eCommerce website that asked us to install a Google Analytics tracking on their widget.

This screen is the 'Ecommerce Overview' (Standard Reporting > Conversions > Ecommerce) that is in common use for eCommerce websites. As you can see, the conversion rate with the Bold360 AI event show higher percentage.

How to integrate BoldChat with Salesforce

By integrating Salesforce and BoldChat, your organization will be able to create Salesforce objects from active or inactive chats directly from the operator client application.

Operators are presented with a dynamically rendered screen that matches fields in Salesforce. The fields presented in the dialog can be restricted or excluded in two ways: By using an exclusion list or by correlating an operator to a Salesforce profile.

Important: Salesforce integration is only available to BoldChat Premier and Enterprise subscribers.

Features and advantages:

  • Chat agents have the tools they need inside the BoldChat interface.
  • Fields can be excluded from view to improve efficiency.
  • Required field types are supported.
  • Custom fields are supported.
  • Data is pre-populated but also editable.
Note: For information about Salesforce and data residency, see Data Residency Options.

Salesforce Configuration

BoldChat's Salesforce Module Setup

To utilize the module, BoldChat/Salesforce administrators must configure a Salesforce connector by following the implementation process below.

  1. Install the BoldChat Salesforce Module v1.9 from this link.

    Result: This will put a "BoldChat" app in your Salesforce interface.

  2. Decide what Salesforce user login you will be using for the BoldChat integration setup. This could be one of your existing Salesforce user logins, or a new, separate one that you create. This user must have the "API Enabled" permission checked in their "Profile" or must be an "API Only" type of user. The significance of deciding on the Salesforce user login to use is that the login credentials for this user will be setup in the BoldChat account setup so that the BoldChat system can pass data to your Salesforce account via the API.
    Note: If you would like to correlate a BoldChat Operator with a specific Salesforce user Profile, you will need to create multiple Salesforce connectors. Specifically, a connector should be set up for every Salesforce profile you would like available to associate with a BoldChat operator. Use the credentials of a Salesforce user that has the associated profile and access to the API. Our system will then use these credentials for Layout presentation and data insertion.
    After creating multiple connectors for the Salesforce Profile, edit your operators account and choose which connector they should use. This can be accomplish by navigating to Setup > Account Setup > General > Operators, select the Salesforce tab and then choose the desired Salesforce connector to associate to the operator.
  3. Make sure you have the latest version of the BoldChat client application installed. You can download it for free from here: http://www.boldchat.com/live_chat_software/downloads.jsp
  4. Launch your BoldChat client application, and log in.
    1. Access the Salesforce Integration Module configuration by navigating to Setup > Account Setup > General > Salesforce Connectors.
    2. Click "New" to create a new integration connector profile.
    3. Give the profile a "Name", such as "Salesforce Connection" (this is just for labeling purposes, so any name will work).
    4. Select the "Active" checkbox.
    5. Select "Salesforce" from the "Connector Type" drop-down.
    6. Enter your Salesforce "Username" and "Password".
    7. Temporarily, uncheck both of the "Lookup" options then select the "Never create a Case" option. (We will come back to these options later)
    8. Click the "Test" button, it should fail, but will provide you a dialog and message providing you with the IP addresses that you will need to setup in your Salesforce account ... write these IP addresses down.
    9. Click "Save", then close the "Account Setup" dialog.
  5. Now you need to setup the BoldChat IP addresses as trusted IP's in your Salesforce account. Log back into your Salesforce account (with an administrator login) and select Setup > Administrative Setup > Security Controls > Network Access. Click New and input the IP addresses that were provided in the BoldChat dialog message when you did the "Test" button above. If the IP's are consecutive, input the first one as the start of the IP address range and the 2nd one as the end of the IP address range. If the IP's are NOT consecutive, then create two ranges with just one of the IP's as both the start and end of that range. This configuration will allow the BoldChat servers to be able to access your Salesforce account via the API to put your chats into Salesforce.
  6. Go back to your BoldChat client application, click Setup > Account Setup > General > Salesforce Connectors. Select your profile, and choose Edit. Now, try the Test button again ... it should confirm that the connection works now. Your BoldChat / Salesforce integration in now configured. The trigger event in BoldChat, to send the chat information to Salesforce, is when the chat session "closes". This happens automatically, 1 minute after the chat session "ends" (i.e. turns italics and the operator and visitor can no longer send messages back-and-forth to each other).
  7. Try the Test button again.

    Result: It should confirm that the connection works now. Your BoldChat / Salesforce integration is now configured. The trigger event in BoldChat to send the chat information to Salesforce is when the chat session "closes". This happens automatically 1 minute after the chat session "ends" (that is, turns italics and the operator and visitor can no longer send messages back-and-forth to each other).

Additional Setup ? Connector Settings Reference

Below are detailed references for the various setup options available in the BoldChat/Salesforce Integration module. These options will allow you to configure integration automation, custom objects, custom fields and the BoldChat to Salesforce data field tie-ins. BoldChat tie-ins allow you to directly associate a value from interactions with visitors using BoldChat to specific fields within Salesforce. Once these associates are made, the Salesforce object presented in the BoldChat/Salesforce object dialog will have the values automatically populated for insertion into Salesforce.

When to create a Chat

Never create a Chat object
This choice will prevent a Chat Object from being created automatically, even if a Salesforce object is create from the Salesforce Button .
Always, when it closes
Choosing this selection will automatically create a Chat Object within your Salesforce account.
When flagged or it's associated with another Salesforce object
Choosing this selection creates a chat record when either an agent uses the Salesforce button to manually create a Salesforce object or when an agent flags a chat.
Only when it is associated with another Salesforce object
Choosing this option creates a chat record only when an agent uses the Salesforce button to manually create a Salesforce object.

When a Chat is created

Look-up Contact by email address
  • This option will cause the BoldChat Salesforce Module to try to find an existing "Contact" in Salesforce that matches the email address associated with the chat session. Specifically, this is the visitor's email address that can be prompted for in the pre-chat form, or can be programmatically passed into the chat through the "ve" URL parameter when the chat is launched from your web page.
  • If an existing Salesforce "Contact" is found, then the resulting "Chat" record created in Salesforce will be automatically associated with that Contact.
  • If you have the option configured to automatically create a "Case" for the chat (see setup option description below), then the resulting "Case" record will also be automatically associated with the Contact.
  • If an existing Salesforce "Contact" is NOT found, then the "Chat" record (and optionally the "Case" record) is not associated with a contact. That is, those association fields are left empty.

When to create a Case

  • Create a Case if the chat's user status is "case" - When the "Chat" record is created in Salesforce, a "Case" record will also be created if the BoldChat's chat "Status" field value was set to "case", at the time that the chat closed. Note, you can define the chat "Status" field values in BoldChat by navigating to Setup > Account Setup > Chats > Chat Statuses.
Never create a Case
Choosing this selection prevents a Case from being automatically created and associated when the "Chat" record is created in Salesforce.
Create a Case for every chat
Choosing this selection will automatically created a Case and then will be associated to the "Chat" record when it is created in Salesforce. This will happen on every closed chat.
Create a Case if the chat is flagged
When the "Chat" record is created in Salesforce, a "Case" record will also be created if the chat was flagged in BoldChat at the time that the chat closed.
Create a Case if the chat's user category is "case"
When the "Chat" record is created in Salesforce, a "Case" record will also be created if the chat's "Category" field value in BoldChat was set to "case", at the time that the chat closed.
Note: You can define the chat "Category" field values in BoldChat in the "Account Setup" > "Chats" group > "Chat Categories"
Create a Case if the chat's user status is "case"
When the "Chat" record is created in Salesforce, a "Case" record will also be created if the BoldChat's chat "Status" field value was set to "case", at the time that the chat closed.
Note: You can define the chat "Status" field values in BoldChat by navigating to Setup > Account Setup > Chats > Chat Statuses.

How the Owner field is set

The Owner field is not set
The "Owner" field will not be explicitly set; however, it will default to the Salesforce user used by the API. If you opted to set up multiple connectors to take advantage of Salesforce profiles, using this option will set the owner to the Salesforce user based on the credentials used for the connector. See Using Salesforce User Profiles below for more information.
Set to User with operator's email
The "Owner" field will be set to the Salesforce user that has an "Email" field value that matches the "Email Address" field value of the BoldChat operator that handled the chat session.
Set to User with operator's name
The "Owner" field will be set to the Salesforce user that has a "Name" field value that matches the "Name" field value of the BoldChat operator that handled the chat session.
Set to User with operator's username
The "Owner" field will be set to the Salesforce user that has a "Username" field value that matches the "Username" field value of the BoldChat operator that handled the chat session.
Note: This settings applies to the "Owner" field of the "Chat" record created in Salesforce, and also the "Case" record that might optionally be created at the same time (per above configuration).

Configuring Active Objects

Use the active object configuration area to manage your list of Salesforce object types that can be manually inserted using the Salesforce button from the Chats, Emails and Calls user interfaces. The new integration module supports both default and custom Salesforce objects. The Active Objects dialog also allows you to create custom data tie-ins that provide the ability to correlate BoldChat derived data to specific Salesforce object fields. For example, if you collect data using a custom field on your pre-chat form and you would like this information automatically tied to a certain field within Salesforce, you can create a tie-in. When an agent selects an object from the Salesforce button drop down to manually insert a new record, the data associated with the tie-in will automatically populate based on the value from the pre-chat form field.

Creating a New Salesforce Object

The following steps provide an example for creating and configuring a Salesforce object, specifically a Salesforce Opportunity object.

  1. From the Active Objects menu, click New.

    Result: The Add Salesforce Object Type dialog appears.

  2. The selection drop-down will then populate any available Salesforce objects within your account, both default and custom. Select Opportunity from the drop down and click add.

    Result: The Edit Salesforce Object dialog appears.

  3. Note: This step is optional.
    By default, all fields associated with this object type will be presented to the Operator when manually inserting the object. If you prefer to restrict some fields for efficiency, select New under the excluded fields area. The Add Field dialog appears and provides you a list of the available fields for the object that you may exclude. Create an exclusion for each field you prefer not to expose.
  4. Note: This step is optional.
    Service Tie-ins allow you to associate certain data points from BoldChat directly to fields within Salesforce. For example, if you collect data using a custom field on your pre-chat form and you would like this information automatically tied to a certain field within Salesforce; you can create a tie-in and it will be populated in the Salesforce field when an operator manually creates it from the BoldChat interface.
    1. Source Field- Select the BoldChat Service you want to select data from (Chat, Calls, Email, etc.).
    2. Select the BoldChat field from the drop down field that you want the Tie-in to be based on, if it's a custom field, check the custom field box.
    3. The Advanced Lookup area provides support for Salesforce Reference type objects; such as lookup fields. If you're unsure of the values you need to enter, consult your Salesforce Administrator for assistance.
    4. Use the Target Field to select the field in the Salesforce object you wish to pass the data into. Make a selection from the drop down, and if desired, create a default value in case the data is not available in BoldChat (i.e. the visitor didn't provide the information).
    5. Select Save and the Tie-in is complete. Repeat the above steps as required.

Using Salesforce Profiles

Salesforce User Profiles

"Salesforce User Profiles" is a collection of settings and permissions that define how users can access/insert records, how they see the data, and what they can do within the application. With enhanced integration, you can correlate BoldChat users to their appropriate Salesforce user profiles. This provides the familiar and permission-controlled interaction your agents are used to; all within the BoldChat interface.

If you would like to take advantage of Salesforce Profiling capabilities, you will need to have Profiles configured in Salesforce and then configure multiple Salesforce connectors within BoldChat. Specifically, a connector should be set up for every Salesforce profile you would like to use. By using credentials of a Salesforce user that has the associated profile and access to the Salesforce API, BoldChat will use these credentials for Layout presentation, data insertion an any other restriction that may be imposed by the profile.

Operator Configuration

After creating the connectors, simply edit your operators account and choose which connector you wish them to be associated to. This can be accomplish by navigating to Setup > Account Setup > General > Operators, selecting the Salesforce tab, and then choosing the desired Salesforce connector to make the association.

How to integrate BoldChat with Zendesk

By integrating Zendesk and BoldChat, your organization will be able to create Zendesk tickets from active or inactive chats directly from the BoldChat client.

Important: Zendesk integration is only available to BoldChat Enterprise subscribers.

Zendesk integration features:

  • Create Zendesk tickets from active or inactive chats directly from the BoldChat client
  • Link chats directly to Zendesk tickets within the BoldChat client
  • Search by Ticket Number, Visitor Name, Email Address
  • Look up customer information automatically via pre-chat forms or by manual search
  • Edit Zendesk tickets within the BoldChat client
  • Write information to Zendesk by editing tickets within the BoldChat client and automatically linking chats with tickets/customer records
  • Setup multiple integration instances when each department in your organization requires a unique Zendesk account
  • Filter by Folder, Department, User Category, User Status, Custom Fields
Note: The Zendesk API is rate limited, but you should expect to be able to make at least 200 requests per minute. See the Zendesk documentation for details and practices for avoiding rate limiting.
Note: For information about Zendesk and data residency, see Data Residency Options.
  1. Create a new integration instance, as follows:
    1. From the main menu of the operator client, go to Setup > Account Setup. The Account Setup window is displayed.
    2. On the left menu, click General > Integrations > New .

    Result: The New Integration window is displayed.

  2. Under Integration, select Zendesk.
  3. Create or select an API Key. To get a key, click ... (the three dots button).

    This is required for authenticating calls to BoldChat servers.

  4. BoldChat communicates with Zendesk as a Zendesk user. We recommend creating a new Zendesk user with elevated rights. Enter information for this user.
    • Enter a User Name.
    • Enter the Token for this user. To generate the token, go to Zendesk setup under API. Data is encrypted in our database and will not be shown again.
    • Enter the URL of the Zendesk instance to which you are connecting: https://{Replace With Your Prefix}.zendesk.com/
  5. Choose Filter criteria. Incoming chats are compared to these criteria. The integration is activated when at least one criteria is met for each filter type in use.
    • Folder
    • Department
    • Category
    • Status
    • Custom Field 1
    • Custom Field 2
  6. Save your changes.

Announcements

Genesys DX/Bold360 End of Life: January 2024

The Genesys DX (Bold360) platform will end of life on January 31st, 2024. This difficult decision was announced in March, 2023.  

Genesys continues to make a strong commitment to Genesys Cloud, while tightening the portfolio to further accelerate feature growth on the platform. Part of that included bringing over key Genesys DX features to Genesys Cloud CX, such as Knowledge Optimizer that focuses on ease-of-use knowledge management. Digital only licenses for Genesys Cloud were also introduced late last year, which are suitable to those who are not looking for voice capabilities or who need agent seats that only feature support for digital channels. 

Details on the end of life timeline

As of January 31st, 2024, access to Genesys DX product interfaces and customer-deployed components stop to function. Users will no longer be able to log into product interfaces, and all of the boldchat/bold360/nanorep domains will become unavailable for use. If you are curious on what the code on your website related to this might look like and how to remove it, we encourage referencing this post on the DX community

After January 31st, 2024, admins will still be able to get access for an additional 30 days. This period is meant to allow for extracting the necessary data from the platform. Historical data extraction from your account will be available to retrieve by data extraction APIs (Bold360 APIs and Nanorep APIs).