BotNet Actions

BotNet Actions provide bot builders access to provisioned API connectors, CMS content, co-browsing commands, universal timeline elements, bot orchestration, NLP, and analytics. When a user enters an utterance and the corresponding intent is detected, the BotNet action will automatically be triggered.

Available actions

  • Send Message: sends a plaintext response
  • Markup: allows you to enhance your messages by adding advanced visual elements.
  • Call an API: calls on an API that you have already created in the API Connectors section on portal
  • Trigger an Action Flow: an action flow allows you to apply a specific flow to a given intent. when an intent with an action flow is triggered, the bot will complete the actions in the flow automatically.
  • Trigger a Goal: allows you to see how many users get to that part of the flow. The goal node does not interfere with the flow itself
  • Host Notification: sends a host notification to the embedding application
  • Send CMS content: sends content that you have stored in CMS
  • Send Message Variant: takes a list of messages and randomly selects one to send to the user at runtime.
  • Push Bot to Stack: transfers control to another bot or worker. When the next bot calls botMissionDone, the conversation will return to the original bot.
  • Transfer to a Bot: transfers control to another bot. Control will stay with the other bot unless it is intentionally returned.
  • Set Context: merges json data into the conversational context so that custom information can be stored
  • Bot Mission Done: In a VA will let it the Va know this current bot has complete its task. In a bot, if its not the only bot on the stack it will remove itself.

Example Actions

[
  {
    "type": "executeApi",
    "value": "apiFindSourceAccountByAccountNumber2",
  },
  {
    "type": "flow",
    "value": {
      "id": "my-flow-id",
      "type": "r2-avalanche-worker",
      "deferRelease": true
    },
  },
  {
    "type": "markup",
    "value":"<TimelineMessage> <TextMsg>hello</TextMsg></TimelineMessage>"
  },
  {
    "type": "message",
    "value":"hello"
  },
  {
    "type": "messageVariance",
    "value": ["hello", "hola", "howdy"]
  },
  {
    "type": "pushBotToStack",
    "value": "bot-name"
  },
  {
    "type": "transferToBot",
    "value": "bot-name"
  },
  {
    "type": "setContext",
    "value": { "name": "ServisBot" } //Context to set
  }
  {
    "type": "goal",
    "value":"goal-name"
  },
  {
    "type": "hostNotification",
    "value":"notification to send"
  },
  {
    "type": "fallback"
  }
]

Send a Message

You can use this BotNet action to send a plaintext response. If you want to send two or more consecutive messages, simply add more “Send a Message” actions.

Markup

Our markup language allows you to send a variety of widgets that are interpreted by our messenger. Examples include lists, calendars, carousels, and more. Learn how to use all the different types of widgets on our markup page.

Action Flow

It is possible to trigger a conversation flow as a BotNet action. When the flow is triggered, the bot will complete the actions within that flow automatically.

You can create an action flow in our designer where drag and drop nodes allow you to customize your conversation. The action flow must start with the actionStart node and finish with the actionComplete node. In between those two nodes, you can include any of the nodes that we offer on our canvas. All context assigned to the original bot will be included. However, it should be noted that the context is not passed back to the ServisBOT intent worker once the flow has completed its task.

In the json examples above, you can see the field deferRelease. When you have the deferRelease set to true you need to use the action complete node to remove this flow from the bot’s worker stack. Input to the bot will continue to be sent to this action flow until it is removed from the top of the worker stack.

Accessing Context in an Action Flow

You will have access to any existing context collected thus far plus the following two pieces of information:

  1. The intent used to trigger this action flow (triggeredIntent)
  2. The message from the user that triggered the action flow (msg.payload.user.message)

An example of using the triggered intent is shown below:

Triggering a Goal

Using BotNet actions we can trigger a goal anytime that the intent is detected. Goals are useful as a source of metrics. You can view how many times that goal was hit by navigating to the analytics tab on the left of our platform, clicking on the bot in use, and entering the name of the goal that you want to view. To use goals during fulfillment, add an action, select “Goal” as your BotNet action, and give it a unique name.

Host Notifications

To trigger a host notification when an intent gets detected, add a fulfillment action, select “Host Notification”, and enter the relevant web page. If done successfully, you should see the host notification come up on the bot testing page in the “Notifications and Events” card when you trigger that intent.

Sending CMS content

By selecting “Send CMS Content” as your BotNet action, you can send CMS content to a user each time a specific intent is triggered. CMS is great for managing content that is used in many places. If a change needs to be made to the content, instead of having to edit it everywhere, you can simply adjust it in our CMS tab and the changes will automatically be applied everywhere that contains the content.

To use CMS as a BotNet action simply begin typing in the name of your CMS. Select the correct one when it appears. If you have not yet created the content in our CMS tab, see our CMS page for instructions.

Sending Message Variants

Message variants are great for creating variety in responses that people may see often thoughout their conversations. You can input multiple suitable responses for your agent to send and then, during a conversation, one of the messages will be selected at random and sent to the user. To use message variants as a BotNet action simply add each response option on a separate line.

Push Bot to stack

To temporarily suspend control from your current bot and move it to another bot, insert the name of the bot you would like to move to in the “Bot Name” field. In order to signal that the alternate bot has finished its job, it should have a botMissionDone node at the end of its flow. It will return to your initial bot once this node is reached.

Transfer to Bot

To transfer to another bot (and not return to the initial bot) when an intent is triggered, simply select “transfer” as your BotNet action and insert the name of the bot you would like to transfer to in the “Bot Name” field.

Fallback

Used to indicate this bot cannot handle this intent. Useful in situations where a bot might be greedy in similar or overlapping conversational topics

Message Forwarding

When using Push Bot To Stack, Transferring or Bot Mission Done, it is possible to enable message forwarding for some botnet actions. When message forwarding is enabled it will pass the last typed user message through to the next bot. It is also possible to override the message being forwarded to the bot instead of sending the last typed user message. Message forwarding is available for the following botnet actions:

  • pushBotToStack
  • transferToBot
  • botMissionDone

The message forwarding configuration keys are as follows:

  • forwardMessage - Can be true or false, specifies if a message should be forwarded to the next bot. If set to true the message will be forwarded, if set to false the message will not be forwarded.
  • forwardMessageOverride - The message that should be forwarded to the next bot, instead of the user typed message.

The configuration for forwarding the last typed user message to the next bot for a botnet action looks like the following.

{
  "type": "transferToBot",
  "value": "bot-to-transfer-to",
  "forwardMessage": true
}

The configuration for overriding the message being forwarded to the next bot looks like the following

{
  "type": "transferToBot",
  "value": "bot-to-transfer-to",
  "forwardMessage": true,
  "forwardMessageOverride": "this message will be sent to the transferred bot"
}

If forwardMessage is set to false or is not present in the action, no message will be forwarded to the next bot regardless of if forwardMessageOverride is set. To forward a message forwardMessage must be set to true

Message forwarding can also be set when specifying botnet actions within portal, below is an example of enabling message forwarding and overriding the message being forwarded Portal Message Forwarding

Setting Context

To pass in information when an intent is triggered, add a fulfillment action, select “Set Context” as your BotNet action, and enter the JSON containing the context you want to set. This context will then stay with the bot throughout the conversation.

You can also call on context using markup.