Teneo Developers


A bot built in Bot Framework Composer can be converted to Teneo in 3 easy steps.


Convert your Language Understanding


Teneo includes a capable intent classifier, but can just as well use an external system such as Microsoft LUIS or Azure Conversational Language Understanding for Intents. This means that you can keep your Intents in the system your Composer bot already uses.

Practical examples on this can be found in Conversational Language Understanding and Teneo.


Entities are extracted using recognizers in Composer. In Teneo, entities are extracted using After Match or Listeners. After Match can be set at a particular node in a flow to extract information from user input or accomplish a number of other tasks. Listeners can pick up information at any point in the conversation rather than just at a particular node.

Convert your Conversational Logic

The conversational logic of a Composer bot is organized into one main dialog containing triggers which, in turn, link to child dialogs. This setup can be recreated in Teneo as flows.


Flows contain triggers that match - using Match requirements - on intents recognized in user inputs. As opposed to Composer, Teneo triggers themselves do not contain the other steps needed for a certain conversation, such as user input and the bot’s responses; instead, these are found inside the flows, alongside the triggers.

In Composer, the bot can send a response or ask a question inside a trigger. In Teneo, the bot would accomplish the same using an output inside a flow. Conditions can be created using transitions. Looping within a flow can be done using the graphical flow representation by simply drawing an arrow from one node to another as required.


Composer’s Dialog management allows developers to begin, end, or reuse dialogs. In Teneo, specific types of flows called Sub-Flows are reusable pieces of logic that can be called from other flows. With no trigger of their own, Sub-Flows return the conversational flow to the flow from which they were called once they have been completed.

Information stored throughout the course of a conversation in a Composer bot are set using predefines properties and memory scopes. A property is defined by its scope, such as the dialog or the current user, and its name. In Teneo, values are stored in variables. These are available with two different scopes: Global variables are available throughout the entire project, and Flow variables are limited to one flow, though can easily be sent to e.g. a Sub-Flow when it is called. Variables are given a name when initialized and do not need to be referred to by scope like properties in Composer.

linking subflow-ny

Convert your Backend Integrations

Scripts in Teneo are written in Groovy. Scripts can be used within flows in script nodes or inside After Match. They’re also used in integrations, which are used to access external resources using HTTP requests.

Bots in Composer can access external resources and skills to accomplish certain tasks. In Teneo, integrations are reusable scripts used to connect to external resources or accomplish other complex tasks. Integrations are also used to build resources like Backend connectors and Channel connectors.

Screenshot 2022-07-22 at 12.29.08

Please see our Microsoft resources page for more connectors. Some examples include Power BI, Microsoft Teams, and Microsoft QnA Maker.

Next steps

To get started you can follow our Convert a Composer bot guide or, if you prefer to read more about Teneo, read our Terminology page.