Flows Report

Flows Report

The Flows Report is a way to visualize the unique behaviour/journey of your bot & users. It is represented by a sankey diagram where the width of each individual conversation path is directly proportional to the flow rate.

If you have any questions, comments, or suggestions, please feel free to contact us.



  • Steps - the selected stages of your bot’s conversation history. Each Step is essentially applying a specific constraint to your messages to identify a stage of a journey you may want to track.
    • Filter Definition - A filter definition adds a Step where a filter selects a subset of your bot’s data determined by specific constraints. You can find the list of possible step filter definitions in the Glossary section below.
    • Steps Before/After - You can select a certain # of immediate steps before and steps after that step to track. A step before shows all connected events that occur exactly 1 step before the selected filtered step. A step after shows all connected events that occur exactly 1 step after the selected filtered step.
  • Filter - An aggregate/global filtering of the message data contained within the “Steps” you defined previously. You can find the list of possible filters in the Glossary section below.


The output is a flow (sankey diagram) showing the specific behavior/journey of your bot & users based on the steps & filters you defined.

  • Node - Each node in the graph is an intent, which represents all of the messages matching to that intent for a given step
  • Paths - Hovering over a specific path allows to you see the flow rate for the two connected nodes as well as the number of messages that correspond to that given path
  • Transcripts - You can access transcripts for an individual conversation path by clicking the ellipses located at each intent.
  • Adding Steps - You can add a step by clicking the + sign located near the top corners of the output
  • Removing Steps - You can remove a step by clicking on an individual arrow located next to the Step.
  • Accessing Transcripts - By clicking on the ellipses (...) to the right of each node and clicking on “Transcripts” you can access the associated transcripts for that given path.

Use Cases

The following are a few popular use cases to explain how you might use Flows Report to answer common questions regarding your data:

Demo video on using the Flows Report to identify how the user journey of your chatbot from point A to point B

  • Use Case 1: Measure how users make it from point A to point B in the conversation
    • Use Conversation Paths to identify patterns/trends at a high level, then transition to Flows to be able to answer specific questions identified from the Conversation Paths
  • Use Case 2: Tracking all steps that led to an NotHandled Intent
    • 1 - Steps before A
    • Filter Definition: where Intent in NotHandled
    • 1 - Step after A
    • Be able to see which intents directly lead to your users triggering the NotHandled intent
  • Use Case 3: Tracking the first steps in the conversation
    • 0 - Steps before A
    • Filter Definition: where Incoming incoming AND First Message In Session is True
    • 2 - Steps after A
    • Be able to track all intents sent from your users for the first 3 steps and the conversation path for each. Identify the transcripts for the NotHandled intent and identify ways to improve bot responses


Incomingselecting from only the messages sent to your bot
First Message in Sessionselecting the first message from your bot’s conversations
Team IDselecting based on the team ID
Channel IDselecting based on the channel ID of your bot
UserIdselecting based on distinct user ID’s of your bot
Message Typeselecting from the different types of messages from your bot’s conversation (text, image, voice, etc)
Boolean Fieldselecting a boolean value for Incoming
urefers to the raw dataset sent by your bot
fmrefers to the filtered dataset Dashbot created from your bot’s raw data
Date Rangeselecting for the time range of your bot’s conversation history
Date Compareselecting for when the u and fm datasets are equal when truncated by day/month/year

Example: u.firstMessageDatetime truncated to day eq fm.datetime truncated to day
Date Partselecting based on grouping by specified timestamp

Example: day = 4, keep all messages from the 4th day of the month
General Fieldselecting based on a specific fields associated with parameters related to our platform
JSON Fieldselecting based on the custom fields from your JSON payload
Text Fieldselecting based on distinct text data from your bot’s conversations
Number Fieldselecting based on distinct numerical data from your bot’s conversations
Edit this page on GitHub