How Intent recognition works in Cognigy


With Intents you can register the Intent behind a contact's utterance. Intents are attached to a Flow.

Get started with Intents

You can add [Machine Learning Intents](#section-ml-intents) (machine learning intents) and [Rule Intents](#section-rule-intents) to a Flow.

To work with Intents, click the Intent button on the left-hand navigation pane of your Flow.


Adding new Intents

Adding new Intents is as easy as clicking the + Button in the bottom right corner of the Intent tab.
You can add ML Intent or the Rule Intent by clicking the respective button.

After clicking the button a card will open, enabling to write the name of the Intent, an optional confirmation sentence (for ML Intents), optional default replies, and as many example sentences / rules as you deem necessary.


Test Intents in the test tab

Notice the bottom navigation pane to switch between Edit and Test mode.

Click Test to enter the Intent testing environment.

Enter a test sentence and click the Test button. Cards with all registered Intents will now appear with corresponding confidence score. Now you can easily test all of your Intents by writing a sentence in the input field. This will now score your input sentence on all of your example sentences, which enables you to easily debug your Intents.

Editing Intents

To edit an Intent, simply click on the name of the Intent and it will expand, which enables you to change name, example sentences etc.

Default replies

You can add optional default replies to your Intents. You can write as many default replies as you want, send some optional data and even send responses from all the channels. To start writing your default replies just click the "ADD DEFAULT REPLIES" button in the intent editor panel


After you open the Default Replies panel you can write the responses you want, use the "default" tab to write default answers and data and the rest of the channel tabs to add channel responses then press "SAVE"


After you save it, it will only keep the changes that you are currently editing, to save the default replies in your intent, you have to press the "SAVE" button once again in your intent editor. When triggering the intent from the interaction panel in your flow editor, you should see all the responses that you implemented.

Tagging / Searching Intents

If you have a lot of Intents in a Flow, you can use a Tagging mechanism to add additional meta information to your intents. To do so, use the "Tags" section at the bottom of an Intent configuration.


You can search for Intents by using the search bar at the top. The search will also search within the Tag section of an Intent.


Disabling Intents

You can also disable Intents if you no longer wish to use them, but also don't want to delete them in case you will need them in the future. When an Intent is disabled, you will not be able to edit it, and it will not be triggered in the flow or in the Intent tester. You can easily disable and enable Intents by navigating to the Intents overview and clicking on the menu icon on the right side of an Intent. Here you will see the option to either enable or disable the Intent, depending on the current status of the Intent.

Intent up- and Download

You can upload and download intents from Cognigy. Quickly import intents, edit them with your favourite spreadsheet tool or developer scripts or quickly move intents between flows.



Uploading intents replaces existing intents

It is important to merge and de-duplicate any intents and example sentences prior to uploading. The upload overwrites your existing intents. Any unlocked changes will be lost.

We currently support two formats


Your CSV should be formatted as follows

  • No header
  • We auto detect various csv formats, if you have any issues use UTF-8 encoding, comma (,) as the delimiter and double quotes ( ") as your quote character and newline (\n) as your line terminator
  • You will need to populate the following three columns:
NameProperty typeValue
The intent name of type stringThe type of property, corresponding to Cognigy intent properties
"exampleSentence" || "defaultReply" || "confirmationSentence" || "rules"
The value of the field, e.g., an example sentence utterance "I want pizza", of type string

To illustrate:

rejectIntentexampleSentencethis sentence is invalid, and that is ok
Intent1exampleSentenceI want to go home
Intent1defaultReplyOk go home then
Intent1defaultReplyOk bye then
Intent1confirmationSentenceAre you sure you want to go home?
Intent2exampleSentenceI want to order a pizza with cheese
Intent2exampleSentenceI am hungry


The Cognigy Intent JSON format specifies your intents completely. Please refer to the following interface definition for the Cognigy JSON format:

interface IIntents {
    /* All sentences the system has learned throught the time */
    learnedSentences: ILearnedSentences[];

    /* All intents within this flow */
    intents: IIntent[];

    /* The input sentences that are rejected */
    rejectIntent?: string[];

interface IIntent {
    /* The name of the intent, e.g. 'orderPizza' */
    name: string;

    /* The type of the intent. It is undefined in MLIntents */
    type?: "ruleIntent" | undefined;

    /* Flag whether this intent is currenlty valid */
    currentlyValid?: boolean;

    /* An array of the rules for rule based intents (only for Rule intents) */
    rules?: string[];

    /* The confirmation sentence AI should use to ask for confirmation */
    confirmationSentence?: string;

    /* All example sentences for the intent */
    exampleSentences: IIntentExampleSentence[];

    /* The default reply related to this intent */
    defaultReply: IFlowIntentDefaultReply;

interface IIntentExampleSentence {
    /* The text of the example sentence */
    text: string;

interface IFlowIntentDefaultReply {
    /* An array of strings that will be picked randomly */
    text: string[];

    /* The data that will be send together with the text */
    data: any;