of 3

Documentation

Unblu 7 (latest)

This article describes the configuration options available for the concierge.

The concierge is a simple rule-based chatbot that can guide visitors through the onboarding, reboarding, and offboarding stages of a conversation. By asking visitors a series of questions, it helps to ensure that a conversation is transferred to the team or agent best suited to engage with the visitor. It may, for example, be used to obtain a prospect’s name before handing the conversation over to an agent, or to ask for their email address if no staff are available to handle the conversation.

The configuration of the concierge for a particular type of conversation is part of the conversation template for that conversation type. If you wish to reuse the same concierge configuration for different types of conversation, you can use the Export and Import actions in the Conversations section of the Account Configuration interface.

Enabling the concierge

The concierge is enabled in a conversation template by activating the property com.unblu.conversation.concierge.conciergeEnabled. Once it has been enabled, the concierge’s configuration may be customized individually for the onboarding, reboarding, and offboarding stages of a conversation, as outlined in the sections below.

Each stage has its own flow (or flows, depending on the conversation stage). A flow describes the steps the concierge may perform during a particular stage of the conversation, as well as the order in which it should carry them out. To customize the steps, each flow has a set of text properties associated with it.

Timeout

The property com.unblu.conversation.bot.botMaxTimeBetweenMessages specifies, in seconds, how much time may pass between two messages of a bot dialog. If, for example, a visitor takes too long to respond to a request the concierge makes, the conversation will be treated as idle and either handed off to the next bot or agent, or canceled entirely, depending on whether it is a prerequisite for the conversation that the bot complete its dialog.

The message displayed depends on the process the timeout occurs in.

Additionally, it is possible to specify how long the entire stage of a conversation handled by the concierge may take.

Visitor onboarding

To activate the concierge for the onboarding stage of a conversation, ensure the property com.unblu.conversation.concierge.conciergeHandleVisitorOnboarding is enabled. The onboarding stage only has one flow, com.unblu.conversation.concierge.conciergeVisitorOnboardingFlow, with the steps described below.

Steps in the visitor onboarding flow

Acknowledge terms and conditions (ACK_TERMS_AND_CONDITIONS)

Asks a question using the contents of com.unblu.conversation.concierge.visitorOnboardingTsAndCsQuestion. The possible answers are:

If the visitor does not select Accept, the onboarding process is aborted.

Concierge onboarding: ack terms and conditions

Ask for email (ASK_FOR_EMAIL)

Displays a question using com.unblu.conversation.concierge.visitorOnboardingEmailNotificationQuestion. The answers available are:

Concierge onboarding: ask email question

If the visitor selects Accept, com.unblu.conversation.concierge.EnterEmailQuestion is displayed, followed by a field for entering the address. The visitor must either enter a valid email address and confirm that they have answered the question, or leave the field blank and decline to provide an address, for the dialog to proceed.

Concierge onboarding: ask for email

Once the visitor has entered an email address, the concierge will respond with com.unblu.conversation.concierge.visitorOnboardingEmailConfirmation. The value will be stored in the database for this person and will be available across all conversations the visitor starts in this session.

Concierge onboarding: response after entering email address

If the visitor declines to answer the question and later initiates another conversation in the same session, the concierge will ask the question again.

Ask for name (ASK_FOR_NAME)

Displays the question in com.unblu.conversation.concierge.visitorOnboardingNameQuestion, then provides a field for the visitor to enter their name. If the configuration property com.unblu.conversation.concierge.conciergeVisitorNameQuestionDeclinable is true, the visitor can decline to provide their name. Otherwise, the visitor must enter a value for the dialog to proceed. The value entered will be stored in the database for this person and will be available across all conversations the visitor initiates in this session.

Concierge onboarding: ask for name

If the visitor declines to provide their name and later initiates another conversation in the same session, the concierge will ask the question again.

Ask for topic (ASK_FOR_TOPIC)

Displays the question in com.unblu.conversation.concierge.visitorOnboardingTopicQuestion, then provides a field for the visitor to enter a topic. If com.unblu.conversation.concierge.conciergeVisitorTopicQuestionDeclinable is true, the visitor may decline to provide a topic. The label for the button to decline the question is defined in com.unblu.conversation.concierge.visitorOnboardingTopicDecline. Otherwise the visitor must enter a topic for the onboarding process to proceed.

Concierge onboarding: ask for topic

Ask for phone (ASK_FOR_PHONE)

Displays the question from the text property com.unblu.conversation.concierge.visitorOnboardingPhoneQuestion. Possible answers are:

Concierge onboarding: ask phone question

If the visitor selects Accept, com.unblu.conversation.concierge.EnterPhoneQuestion is displayed followed by a field to enter their phone number. They must either enter a phone number and confirm that they have answered the question, or leave the field blank and decline the request, for the dialog to proceed.

Concierge onboarding: ask for phone

Once the visitor has entered a value, the concierge will respond with com.unblu.conversation.concierge.visitorOnboardingPhoneQuestion.

Concierge onboarding: response after entering phone number

The value will be stored in the database for this person and will be available across all conversations the visitor starts in this session.

If the visitor declines to answer the question and then initiates another conversation in the same session, the concierge will ask this question again.

Choose named area (CHOOSE_NAMED_AREA)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingChooseNamedAreaQuestion followed by a set of choices consisting of the names of the named areas whose entity references are listed in the configuration properties

Concierge onboarding: choose named area

Primary and secondary named areas differ in the color of the buttons used to select them. Furthermore, all of the primary named areas are listed before the secondary named areas. The selection a visitor makes in this step affects the conversation recipient, ensuring the conversation will be handled by an agent with the requisite skill set, for example. The visitor must make a selection from the available options for the dialog to proceed.

There is no point including both CHOOSE_NAMED_AREA and CHOOSE_TEAM in the onboarding flow, since they are alternative ways of ensuring that the conversation is transferred to an appropriate agent.

Choose team (CHOOSE_TEAM)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingChooseTeamQuestion followed by a set of choice consisting of the names of teams whose entity references are listed in the configuration properties

Concierge onboarding: choose team

Primary and secondary teams differ in the color of the buttons used to select them. Furthermore, all of the primary teams are listed before the secondary teams. The selection a visitor makes in this step affects the conversation recipients: only agents in the team selected will have the conversation in their queue. The visitor must select an option for the dialog to proceed.

There is no point including both CHOOSE_NAMED_AREA and CHOOSE_TEAM in the onboarding flow, since they are alternative ways of ensuring that the conversation is transferred to an appropriate agent.

Done message (DONE_MESSAGE)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingDoneMessage, which provides the variable recipientName.

Concierge onboarding: done message

Greeting message (GREETING_MESSAGE)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingWelcomeMessage. The variable recipientName is available for use in the text property.

Concierge onboarding: greeting message

Visitor onboarding message 1 (ONBOARDING_MESSAGE_1)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingInfoMessage1. Provides the variable recipientName.

Concierge onboarding: onboarding message 1

Visitor onboarding message 2 (ONBOARDING_MESSAGE_2)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingInfoMessage2, which provides the variable recipientName. Please refer to onboarding message 1 above to see what the message looks like.

Visitor onboarding message 3 (ONBOARDING_MESSAGE_3)

Displays the content of com.unblu.conversation.concierge.visitorOnboardingInfoMessage3. The variable recipientName is available. Please refer to onboarding message 1 above to see what the message looks like.

Timeout for visitor onboarding

The property com.unblu.conversation.lifecycle.conversationOnboardingTimeout specifies, in seconds, how much time a visitor has to complete the entire onboarding process. How the concierge reacts if the visitor has not completed the onboarding process within the specified time depends on the configuration property com.unblu.conversation.concierge.conciergeVisitorOnboardingOnTimeoutBehavior:

Agent onboarding

Agent concierge onboarding was introduced in Unblu 7.1.0.

For agent onboarding, the concierge is enabled by setting the configuration properties com.unblu.conversation.concierge.conciergeHandleAgentOnboarding to true.

The flow for agent onboarding is defined in com.unblu.conversation.concierge.conciergeAgentOnboardingFlow.

Steps in the agent onboarding flow

The agent onboarding flow has fewer possible steps than the visitor onboarding flow. They are listed below in alphabetical order.

Acknowledge terms and conditions (ACK_TERMS_AND_CONDITIONS)

Asks a question using the contents of com.unblu.conversation.concierge.agentOnboardingTsAndCsQuestion. The possible answers are:

If the agent selects Decline, the onboarding process is aborted.

Concierge agent onboarding: ack terms and conditions

Done message (DONE_MESSAGE)

Displays the contents of com.unblu.conversation.concierge.agentOnboardingDoneMessage, which provides the variable recipientName. In the picture below, the variable name has been replaced with the name of the agent.

Concierge agent onboarding: done message

Greeting message (GREETING_MESSAGE)

Displays the contents of com.unblu.conversation.concierge.agentOnboardingWelcomeMessage. The variable recipientName is available for use in the text property.

Concierge agent onboarding: greeting message

Agent onboarding info message 1 (INFO_MESSAGE_1)

Displays the contents of com.unblu.conversation.concierge.agentOnboardingInfoMessage1. You can use the following variables in the text property:

  • recipientName

  • recipientPersonSourceId

  • conversationId

Concierge agent onboarding: info message 1

Agent onboarding info message 2 (INFO_MESSAGE_2)

Displays the contents of com.unblu.conversation.concierge.agentOnboardingInfoMessage2. The variables recipientName, recipientPersonSourceId, and conversationId are available.

Please refer to agent onboarding info message 1 above to see what the message looks like.

Agent onboarding info message 3 (INFO_MESSAGE_3)

Displays the contents of com.unblu.conversation.concierge.agentOnboardingInfoMessage3. The variables recipientName, recipientPersonSourceId, and conversationId are available.

Please refer to agent onboarding info message 1 above to see what the message looks like.

Timeout for agent onboarding

As with visitors, the configuration property com.unblu.conversation.lifecycle.conversationOnboardingTimeout specifies, in seconds, how much time an agent has to complete their onboarding process. What the concierge does if the onboarding process times out depends on the configuration property com.unblu.conversation.concierge.conciergeAgentOnboardingOnTimeoutBehavior:

Reboarding

To activate the concierge for the reboarding stage of a conversation, enable the property com.unblu.conversation.concierge.conciergeHandleReboarding.

The reboarding stage of a conversation does not have a flow associated with it. It merely asks whether the conversation should be requeued using com.unblu.conversation.concierge.reboardingAskToRequeueQuestion. The possible answers are:

Concierge reboarding: ask reboarding question

If the visitor selects Accept, the conversation will be queued for an agent to answer. If the visitor selects Decline, the conversation will stay unassigned.

Timeout for conversation reboarding

If a visitor doesn’t respond to the concierge’s question within the time period specified in com.unblu.conversation.bot.botMaxTimeBetweenMessages, the concierge will display the message com.unblu.conversation.concierge.reboardingIdleTimeout.

Concierge reboarding: timeout after no response

If the entire reboarding process takes longer than specified in com.unblu.conversation.lifecycle.conversationReboardingTimeout, the concierge will display com.unblu.conversation.concierge.reboardingGlobalTimeout.

Concierge reboarding: reboarding process timed out

In both cases, the conversation will be queued for an agent to respond to.

Offboarding

To activate the concierge for the offboarding stage of a conversation, enable the property com.unblu.conversation.concierge.conciergeHandleAgentOffboarding for agents or com.unblu.conversation.concierge.conciergeHandleVisitorOffboarding for visitors.

The offboarding stage of a conversation provides different flows depending on the circumstances in which the conversation ended.

Visitor offboarding

Standard offboarding flow

This is the flow the concierge goes through for each visitor at the regular end of a conversation. It is defined in the configuration property com.unblu.conversation.concierge.conciergeVisitorOffboardingConversationEndFlow. The offboarding reason message (OFFBOARDING_REASON_MESSAGE) for the flow is defined in com.unblu.conversation.concierge.visitorOffboardingReasonConversationEndMessage.

Concierge offboarding: offboarding reason message

The configuration property com.unblu.conversation.lifecycle.conversationOffboardingTimeoutConversationEnded specifies how long the concierge will wait for each user to complete the offboarding process before the conversation is automatically ended.

Offboarding flow if visitor declines onboarding

This is the flow that the concierge runs through if a visitor declines the Terms and Conditions during onboarding. It is defined in the configuration property com.unblu.conversation.concierge.conciergeVisitorOffboardingOnboardingDeclinedFlow. The offboarding reason message displayed is com.unblu.conversation.concierge.visitorOffboardingReasonOnboardingDeclinedMessage.

Offboarding flow if visitor leaves conversation

If a visitor leaves a conversation, the concierge goes through the flow defined in com.unblu.conversation.concierge.conciergeVisitorOffboardingPersonLeftFlow. The offboarding reason message displayed is specified in com.unblu.conversation.concierge.visitorOffboardingReasonPersonLeftMessage.

The property com.unblu.conversation.lifecycle.conversationOffboardingTimeoutPersonLeft specifies how long the concierge will wait for a user to complete the offboarding process if they manually left a conversation. When the offboarding process has timed out, the concierge displays the message from com.unblu.conversation.concierge.offboardingGlobalTimeout and the user’s participation is automatically removed from the conversation. If the visitor takes to long to reply to one of the concierge’s questions during the offboarding process, the message displayed is taken from com.unblu.conversation.concierge.offboardingIdleTimeout instead.

Offboarding flow removed user

If a user is removed from a conversation, the concierge goes through the flow defined in com.unblu.conversation.concierge.conciergeVisitorOffboardingKickedFlow. The offboarding reason message displayed is com.unblu.conversation.concierge.visitorOffboardingReasonKickedMessage.

The amount of time a user has to complete the offboarding process in this flow is specified in the property com.unblu.conversation.lifecycle.conversationOffboardingTimeoutOther. If the offboarding process is not completed within this period, the user’s participation is automatically removed from the conversation.

Other reasons for offboarding

A conversation may transition to the offboarding stage for a number of other reasons besides those listed above. In these cases, the flow the concierge goes through consists solely of the offboarding reason message. The only flow configuration required is defining the content of the various text properties:

The amount of time a user has to complete offboarding in these cases is specified in the property com.unblu.conversation.lifecycle.conversationOffboardingTimeoutOther.

Visitor offboarding steps

All of the offboarding flows have the same steps, and all but one of the steps make use of the same text properties.

Info message 1 (INFO_MESSAGE_1)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage1; the variable recipientName is available.

Concierge offboarding: info message 1

Info message 2 (INFO_MESSAGE_2)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage2; the variable recipientName is available. Please refer to info message 1 above to see what the message looks like.

Info message 3 (INFO_MESSAGE_3)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage3; the variable recipientName is available. Please refer to info message 1 above to see what the message looks like.

Info message 4 (INFO_MESSAGE_4)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage4; the variable recipientName is available. Please refer to info message 1 above to see what the message looks like.

Info message 5 (INFO_MESSAGE_5)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage5; the variable recipientName is available. Please refer to info message 1 above to see what the message looks like.

Info message 6 (INFO_MESSAGE_6)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingInfoMessage6; the variable recipientName is available. Please refer to info message 1 above to see what the message looks like.

Rate conversation (RATE_CONVERSATION)

Displays the content of com.unblu.conversation.concierge.visitorOffboardingRateConversationMessage, then allows the visitor to rate the conversation by selecting a number of stars. If the property com.unblu.conversation.concierge.conciergeVisitorRatingQuestionDeclinable is true, the visitor may choose to skip the rating. The maximum number of stars is configurable using the property com.unblu.messenger.conversationRatingScale.

Concierge offboarding: rate conversation

Offboarding reason message (OFFBOARDING_REASON_MESSAGE)

The offboarding reason message varies depending on the offboarding flow the concierge runs through. See the respective subsections under visitor offboarding above.

Send log via email (SEND_LOG_VIA_EMAIL)

Displays a question using com.unblu.conversation.concierge.visitorOffboardingSendLogAndAskForEmailQuestion, or com.unblu.conversation.concierge.visitorOffboardingSendLogQuestion if the visitor already provided an email address. In the latter case, the variable email is available. Possible answers are:

Concierge offboarding: send logs via email

If the visitor selects Accept, Unblu displays com.unblu.conversation.concierge.visitorOffboardingSendLogSuccess once it has sent the conversation log. The text property provides the variable email.

Concierge offboarding: response after sending logs

Using the concierge with other bots

If you’re using the concierge in conjunction with other dialog bots, it’s important to ensure that the bots are called in the correct order. Each bot is assigned a number in the conversation stage it participates in. The bot assigned the smallest number getting called first.

The concierge is assigned a number using the following properties:

Bot threads

Messages exchanged between the concierge (or other dialog bots) and a participant during the onboarding, reboarding, and offboarding process are treated differently from other messages.

They are only displayed to other participants of a type listed in the configuration property com.unblu.conversation.message.allowSeeAllBotThreadMessages. These participants see messages exchanged between another participant and the bot or bots involved in that participant’s onboarding, reboarding, or offboarding process grouped together by a line. The line stretches from the system message indicating the beginning of the process to the system message indicating the end of the process:

Ended bot thread in the Agent Desk
Figure 1. Ended bot thread in the Agent Desk

If the participant has not yet completed the process, the bot thread will show that the process is still active:

Active bot thread in the Agent Desk
Figure 2. Active bot thread in the Agent Desk

If more than one bot takes part in the onboarding, reboarding, or offboarding process, the messages exchanged between the participant and all of the bots will be part of a single bot thread.

If any messages are exchanged in the conversation while a participant is in the process of onboarding or reboarding, the participant will only see them once they have completed the process. This includes messages sent using the /bots/sendMessage API, with the participant specified as the recipient of the message. If you want do send a message during the onboarding or reboarding dialog, use the /bots/sendDialogMessage API to send a dialog message instead.

Any messages sent after a participant starts the offboarding process will remain hidden from the participant. As with onboarding and reboarding, use the /bots/sendDialogMessage API to send dialog messages during offboarding.

Bot threads are not visible as such to the participant involved in the process. They see these messages and system messages as normal parts of the conversation.

For further information on bot threads, check out our documentation on the conversation states ONBOARDING, REBOARDING, and OFFBOARDING.

Disable file upload during onboarding and offboarding

By default, the Visitor UIs provide the same functionality during onboarding and offboarding as they do in other phases of a conversation. In particular, if the configuration property com.unblu.conversation.file.allowFileCobrowsing is true, visitors can upload files to a conversation during onboarding and offboarding.

If you wish to prevent this, set the following two configuration properties to false:

This will ensure that visitors cannot upload files to a conversation unless it is either in the queue or has been answered by an agent.