Common Format

ServisBOT defines bots in a conversational experience using a common format. We break it up into 3 bot design file artifacts: utterances, actions and entities. This makes it easy to extract or import from NLP providers, as well as translate a large host of documentation or content into a preliminary conversational experience.

Welcome and Fallback Intents

ServisBOT automatically detects intents named welcome and fallback.

  • A welcome intent will trigger botnet actions when a conversation is started. These can also take utterances so that if the user says things like hello, the bot can respond accordingly.
  • A fallback intent is not handled at the NLP provider, but will be triggered when no workers have matching intents. No utterances are required for these intents.


This file defines what utterances and intents reside in which bot as part of a Virtual Assistant Architecture. While experts might be able to provide this effortlessly, usually we expect that a diagnostic needs to be run on the Data.csv to understand an appropriate bot architecture.

Botname Intent Utterance
bot1 ServisBOTDesc What is ServisBOT
bot1 ServisBOTDesc What does ServisBOT do?
bot2 ServisBOTWho Who are you

Column Descriptions

  • [botname] Required - is either [PI] or [Claims]. If unknown then leave blank.
  • [intent] Required - an alias to be used for identifying the intent. Intents are case sensitive and should not contain special characters such as hyphens, or spaces.
  • [utterance] Required - a slotted training statement using soft braces {} for slots, i.e. {car-color} where car-color is the slot name. Utterances may contain numerical characters, but depending on the NLP the numbers may be converted to word format.
    • Lex requires numbers to be in a word format, when ServisBOT syncs intents with Lex it will convert any numbers in utterances to word format. e.g If you have an utterance like the following “A coffee costs 2 euro”, when it is being synced with Lex it will be converted to “A coffee costs two euro”.

Optional additional fields

  • [displayName] Providing a human readable name that does not get synced over to the NLP provider
  • [parentintent] if supporting hierarchical intents then use parent intent alias, otherwise leave blank.


Intents can trigger any action across the ServisBOT Action Plane (Such as response, BaaS Call, CMS item, etc). A mapping is as simple as providing the intent, type, and value.

intent value
ServisBOT We build conversational experiences

It is possible to trigger multiple actions off an intent by adding additional rows per action.

Column Descriptions

  • [intent] Required - map this to the intent alias. Intents are case sensitive and should not contain special characters such as hyphens or spaces.
  • [Value] Required - The message or action data associated with what you want done.

Optional additional fields

  • [lifecycleTrigger] - If you want botnet actions to be triggered in an intent it is detected but not yet filled out
    • intent_detected
    • fulfilment
  • [Type] - This specifies the botnet action to be triggered after an utterances
    • message for send message
    • executeapi to call an API via the BaaS
    • markup to send timeline markup
    • action flow
    • flow to trigger a flow
    • goals to trigger Goals
    • hostnotification so send the client notifications


In order to create more natural and intuitive conversational experiences, bots will need to rely on slots/parameters/entities. We drop this all into a bucket for “Entities”

category name value synonym
Item Size L Large
Item Size M Medium
Item Size S Small

Column Descriptions

  • [category] label i.e. car
  • [name] label i.e. car-color
  • [value] expected value of the entity.
  • [synonym] array of alternative values.