Contact usRequest a demo

Configuring the concierge

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 is treated as idle. The conversation is then either handed off to the next bot or agent, or canceled entirely, depending on whether it’s a prerequisite for the conversation that the bot complete its dialog.

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

Additionally, it’s 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 doesn’t select Accept, the onboarding process is aborted.

Concierge visitor onboarding: accept terms and conditions
Figure 1. Default text for the concierge step "Acknowledge terms and conditions"

Ask for email (ASK_FOR_EMAIL)

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

Concierge visitor onboarding: ask email question
Figure 2. Default text for the concierge step "Ask for email" asking whether the visitor would like to provide their email address

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 visitor onboarding: ask for email
Figure 3. Default text for the concierge step "Ask for email" asking the visitor for their email address

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 visitor onboarding: response after entering email address
Figure 4. Default text for the concierge step "Ask for email" once the visitor’s entered their 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 visitor onboarding: ask for name
Figure 5. Default text for the concierge step "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 phone (ASK_FOR_PHONE)

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

Default text for the concierge step "Ask for phone" asking whether the visitor would like to provide their phone number

Concierge visitor 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.

Default text for the concierge step "Ask for phone" asking the visitor for their phone number

Concierge visitor onboarding: ask for phone

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

Default text for the concierge step "Ask for phone" once the visitor’s entered their phone number

Concierge visitor onboarding: response after entering phone number

The value is stored in the database for this person and is 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 asks this 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 visitor onboarding: ask for topic
Figure 6. Default text for the concierge step "Ask for topic"

Check agent availability (CHECK_AGENT_AVAILABILITY)

Displays a message after checking whether an agent is available to respond to the visitor’s conversation request.

Concierge visitor onboarding: check agent availability
Figure 7. Default text for the concierge step "Check agent availability" when an agent is available

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 visitor onboarding: choose named area
Figure 8. Default text for the concierge step "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 is handled by an agent with the requisite skill set.

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. They’re 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 visitor onboarding: choose team
Figure 9. Default text for the concierge step "Choose team"

Primary and secondary teams differ in the color of the buttons used to select them. Furthermore, all 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. They’re 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. The text property provides the variable recipiientName.

Concierge visitor onboarding: done message
Figure 10. Default text for the concierge step "Done message"

Greeting message (GREETING_MESSAGE)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingWelcomeMessage. The variable recipientName is available.

Concierge visitor onboarding: greeting message
Figure 11. Default text for the concierge step "Greeting message"

Visitor onboarding message 1 (ONBOARDING_MESSAGE_1)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingInfoMessage1. The text property provides the variables conversationId, recipientName, and recipientPersonSourceId.

Concierge visitor onboarding: onboarding message 1
Figure 12. Default text for the concierge step "Onboarding message 1"

Visitor onboarding message 2 (ONBOARDING_MESSAGE_2)

Displays the contents of com.unblu.conversation.concierge.visitorOnboardingInfoMessage2, which provides the variable recipientName. The text property provides the variables conversationId, recipientName, and recipientPersonSourceId.

Refer to Visitor 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 text property provides the variables conversationId, recipientName, and recipientPersonSourceId.

Refer to Visitor 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 hasn’t 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 property 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’re 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
Figure 14. Default text for the concierge agent onboarding step "Acknowledge 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
Figure 15. Default text for the concierge agent onboarding step "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
Figure 16. Default text for the concierge agent onboarding step "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
Figure 17. Default text for the concierge step "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.

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.

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 doesn’t 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 visitor reboarding: ask reboarding question
Figure 19. Default text for the concierge visitor reboarding step
  • If the visitor selects Accept, the conversation is queued for an agent to answer.

  • If the visitor selects Decline, the conversation remains unassigned.

Timeout for conversation reboarding

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

Concierge reboarding: timeout after no response
Figure 20. Default text the concierge displays when the visitor doesn’t respond to its reboarding question

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

Concierge visitor reboarding: reboarding process timed out
Figure 21. Default text the concierge displays when the reboarding process times out

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

Visitor offboarding

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

To activate the concierge for the visitor offboarding stage of a conversation, enable the property com.unblu.conversation.concierge.conciergeHandleVisitorOffboarding.

Standard offboarding flow

This is the flow the concierge goes through for each visitor at the regular end of a conversation. It’s 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 visitor offboarding: offboarding reason message
Figure 22. Default text for the concierge visitor 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’s 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 isn’t 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 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 visitor offboarding: info message 1
Figure 23. Default text for the concierge visitor offboarding step "Info message 1"

Info message 2 (INFO_MESSAGE_2)

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

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.

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.

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.

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.

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 visitor offboarding: rate conversation
Figure 24. Default appearance of the concierge visitor offboarding step "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 mail (SEND_LOG_VIA_MAIL)

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 log via mail
Figure 25. Default text of the concierge visitor offboarding step "Send log via mail"

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 log
Figure 26. Default concierge message after sending the conversation logs
Unblu only displays this option to visitors whose participant type is listed in com.unblu.conversation.message.allowExportMessageLog.

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’re 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 27. Ended bot thread in the Agent Desk

If the participant hasn’t yet completed the process, the bot thread shows that the process is still active.

If more than one bot is involved in the onboarding, reboarding, or offboarding process, the messages exchanged between the participant and all the bots are 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 only sees them once they’ve 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 remain hidden from the participant. As with onboarding and reboarding, use the /bots/sendDialogMessage API to send dialog messages during offboarding.

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

For more information on bot threads, see Conversation states.

Disabling file upload during onboarding and offboarding

By default, the integrated 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 ensures that visitors can’t upload files to a conversation unless it’s either in the queue or has been answered by an agent.