Flow XO's live chat feature allows you to hold one-to-one human conversations with your users through all the channels we support.
You can either initiate a live chat session with users through actions in your flows (the 'Start Live Chat' and 'Stop Live Chat' actions), or you can proactively choose to send a message or start a live chat session through the live chat console within Flow XO.
How Live Chat Works
Live chat is simply a state where whatever a user types is intended to be read and responded to by a human rather than the bot.
When a user in live chat sends you a message, you'll see a red dot against the live chat option on the menu bar in Flow XO. By clicking that option, you can see what the user has asked and respond to it. You can then choose to end the live chat session yourself or the user can use a word/phrase themselves to return to the automated functions of the bot.
Whilst in live chat, the user can still receive messages or questions. Therefore, if you send a broadcast, even those users in live chat will receive your message.
Start Live Chat Action
Probably the most common scenario for live chat is where you offer a live chat option to your users in one of your flows (usually a main menu flow or as an option on your welcome message).
To set this up:
- Create a new flow with a New Message trigger on the word or phrase you want the user to type.
- Add a Start Live Chat action.
Important: The flow will continue to run immediately after Start Live Chat (any subsequent actions will run straight away). It's not recommended to do anything else in your flow after this action. To have actions run after the live chat ends, use the Live Chat Ended trigger instead.
There are some settings you can configure when you set up this action:
- Start Message: This message will be sent as soon as the live chat session begins. It should inform the user about what to expect. At the very least, explain that they're chatting to a human. Ideally, give them some expectation of how quickly you'll respond or what you can help with.
- End Chat Word or Phrase: When the user types this word/phrase or clicks the button sent with the start message, the live chat will end. Make sure this is short enough to show up on platforms that limit the length of buttons.
- End Message (optional): As soon as the live chat started by this action ends, the message you provide here will be sent to the user. Note that you can also send other messages or carry out any other action by using the Live Chat Ended trigger (triggers every time a live chat ends, see below).
- Timeout: To avoid a user being left in a live chat state and getting confused when they return to the bot, live chats end after a set period of time. You can vary the timeout here.
- Notify by Email (optional): You can receive an email every time a user sends a message whilst in live chat. That way, you know you need to respond to someone when you're outside of Flow XO.
- Alternative Email Address (optional): Emails will be sent to the email address set up under your profile. If you want emails to go to a different email address, you can enter the email address here.
Using the Live Chat Console
The live chat console can be accessed through the left hand menu bar in Flow XO:
You can use the console to see not just conversations that are currently in live chat, but also view the automated conversations that users are having with your bots.
Use the filters at the top of the console to narrow down the view to the conversation state (all conversations, live chat open, or live chat closed), or to a particular bot:
By default, the console opens up with all current live chat conversations, so you can see which users you may need to reply to or follow up.
You can send a message to any user whether they're currently in live chat or not. However, if the user is not chatting live with you, you'll be prompted to start a live chat. This is optional, but remember, if you don't start a live chat, the user won't be able to reply to your message.
At any time, you can toggle the live chat mode using the control above the list of messages:
When you start a live chat using this control, the chat session will automatically timeout (stop) after 1 hour. You can also stop any live chat using the same control.
As the default view shows all messages back and forth (even those sent by the bot), you might find it useful to only see messages sent as part of a live chat. You can change the view using this option:
Stop Live Chat Action
The Stop Live Chat action simply stops any current live chat for the user. It's rare that you'll need to use this action, as once a live chat starts, either the live chat session will timeout, or you or the user will end the live chat when your conversation is finished.
Live Chat Ended Trigger
This useful trigger will start a flow every time a live chat ends. Here's a few examples of how you might want to use it:
- Send a sequence of messages to close the chat rather than the single 'end message' in Start Live Chat settings.
- Ask a series of follow up questions about the service the user received (be careful to make this opt-in!).
- Set some kind of attribute or write some data to a Google Sheet to say a live chat took place.
Send Message to Email Action
This action sends an email to an address you specify (often your main sales or support email address). That email can be replied to (as many times as necessary), and the reply will be routed as a message back to the user.
Here are the inputs:
- Response Path: Use a Response Path output here. This tells Flow XO the bot and channel any reply should be routed back to. You'll usually take this from the trigger.
- Email Address: Choose where the message is to be delivered to. This can either be a standard personal email address, a role based shared email account, or a helpdesk email inbox. There's more about our support for email clients and helpdesk software further on in this article.
- Subject: This is the subject line for the email.
- Message: The body of the email.
- Shortcuts: Shortcuts will appear as a set of choices (buttons on most platforms) along with your replies to the message. A common use for this is to provide a 'Reply' button so that the bot user can easily get back into sending a reply message (in this case you'd need to make sure you have a flow that responds to the word/phrase 'reply'). See the Shortcuts section below for more information.
- Metadata: You can send key-value pairs that will be included on the message.
If the user's name is known, that will be used as the from name on the email. The reply email address is specific to the response path and allows replies to be correctly routed back to the user.
Once the user's message has been received in the email client or helpdesk software, simply replying to the email will route the reply back. We'll try to remove any signature or quoted message before displaying the reply as a message. We can recognise the reply format of some popular helpdesk solutions, which we'll cover later on in this article.
Currently, any file attachments included with your reply will be ignored.
Reply Using an Email Client
Although we do our best to strip out any signature or quoted message when you reply, it's always better to send replies without these if possible.
For message threading to work properly, the sender email address when replying to messages must match the email address that the email was originally sent to.
Reply Using Helpdesk Software
We've tested (and tweaked) this service for some popular helpdesk solutions, and the service should also work with any helpdesk that mimics a standard email client when replying (i.e. the signature and quoted email format is recognised).
In general, you'll need to do a couple of things:
- Switch off any acknowledgement email that your helpdesk sends when a new ticket is created.
- Change your default reply template so that it's blank.
If you change your reply format significantly from the helpdesk's default format, you might see unexpected results when we try and parse replies!
Please follow these steps inside Freshdesk:
- Go to Admin > Email Notifications > Requester Notifications and turn off New Ticket Created and Agent Adds Comment to Ticket.
- Go to Admin > Email Notifications > Reply Templates and remove everything from the body.
Make sure you use your forwarded support email address (firstname.lastname@example.org) rather than the Freskdesk email address (???@freshdesk.com). This will ensure message threading works properly.
You don't need to make any changes inside Help Scout, simply use the email address of the mailbox you want messages to go to.
Make sure you use your forwarded support email address (email@example.com) rather than the Help Scout email address (???@helpscout.net). This will ensure message threading works properly.
You'll need to disable the Notify requester of received request trigger.
Make sure you use your forwarded support email address (firstname.lastname@example.org) rather than the Zendesk email address (???@zendesk.com). This will ensure message threading works properly.
It's likely many other helpdesks will work correctly, even though we haven't officially supported them. If you have a suggestion of a helpdesk that we should support, or are having problems with a particular helpdesk, please tell us on our community site.
Live chat is really useful straight out of the box. However, you can use some of these tips and ideas to take live chat to a whole new level!
- Handle opening hours into your live chat flows. Try this example shared flow to see how you can make this work.
- Send a customer satisfaction survey in follow up to your live chats. Use the Live Chat Ended trigger, a wait action (maybe wait 1 hour), and ask the user if they'd like to answer a short survey about whether the live chat was helpful to them.
- Set attributes so you know if a user is in a live chat. You can set an attribute named 'livechat' immediately after a Start Live Chat action, and clear this attribute using a Live Chat Ended trigger. That way, you can filter broadcasts to users that are not in a live chat.
Let us know how we can improve Flow XO on our feedback site.