Studio customization
Certain parts of the studio user interface can be customized for each bot.
These parts are the inbox configuration, the contact filters, the columns visible on the contacts page and predefined broadcasts. All of these customizations can be made from the "studio settings" section of the Settings page of the bot:
Internally, the settings are created by setting the appropriate
section in the studio
YAML file that is part of your bot.
CRM columns¶
It is possible to specify which columns are visible in the overview
table on the contacts page. By default, besides the user details page,
the first contact, email, and locale column are visible. It is
possible to change this using the contacts_column
section in the
studio
YAML file. Additionally, the conversation_columns
may also
be set to set searchable fields from the conversation data. This is the
data that is made available through the remember
statement, but is not
part of the user
object.
All fields that are saved (remember
ed) in the user
object in the
bot are eligible for showing here.
contacts_columns:
- label: Email
field: email
- label: Phone
field: phone
conversation_columns:
- label: Case
field: case
The contact fields that are mentioned here are also exported in the contacts CSV export, with their columns ordered before any other user data field. The conversation columns are not exported, as these are part of the conversation, not the user.
Custom broadcasts and commands¶
The broadcast button on the contacts page allows you to send Bubblescript events to a targeted group of users of the bot.
By default, this dialog needs you to enter an event name and
optionally a JSON payload. This is not very user friendly, especially
for non-skilled operators who do not know the inner workings of the
bot. By setting up a list of predefined events and their payloads in
the studio
YAML file, it is easier for operators to send a specific
broadcast in a reliable way, optionally adding extra payload data
which can be entered in the UI in a form.
As an example, you can set up the broadcasts
section as follows:
broadcasts:
- event: message
label: Send message
description: "Send message to all users. Users will receive an email."
payload_form:
schema:
type: string
title: Message
ui_schema:
ui:placeholder: "Type your message here"
ui:widget: textarea
This will render the following broadcast dialog:
In this case, when clicking the broadcast button, the event message
will be sent to the intended audience.
You need to ensure that the message
event is handled in your
Bubblescript code:
dialog event: "message" do
say "Someone sent you a message"
say event.payload
end
Note that not all users might be able to receive broadcasts. E.g. the chat
process will start but they might not be able to receive it, for instance
because they are on a frontend that does not support arbitrary broadcasts, or,
when they came from the web interface, they did not leave their email address or
did not opt in to chat notifications user.web_push_status != "yes"
.
When custom broadcast broadcasts are configured, they are also accessible in the inbox using the "command" button, to send a predefined event to an individual conversation. When the operator is active, the "leave" button will also contain a popup dialog with these commands, so that an operator can leave a conversation while at the same time "pushing" the conversation in a certain direction.
Dashboard configuration¶
It is possible to configure the dashboard for each bot.
dashboard:
funnels:
- registration_flow
kpis:
- tag: "user_registered"
label: "Users registered"
This will create on the dashboard an extra KPI counter to show how
many users registered the last 7 days. It also creates a graph of the
tags that start with registration_flow:
and show these in a
horizontal bar chart, just like on the analytics page.
Allowed channels¶
It is possible to configure which channels a bot can be connected to. This can
be set in the studio YAML by adding an allowed_frontends
list like the
following:
allowed_frontends:
- web_widget
- whatsapp
Allowed inboxes¶
It is possible to configure which inbox channels a bot can be connected to. This
can be set in the studio YAML by adding an allowed_inboxes
list like the
following:
allowed_inboxes:
- studio
- teams
- slack
- icws