Semantic Intent Classifier
OpenDialog's Semantic Intent Classifier provides a quick and easy way to enable natural language input within your bot, allowing you to interpret user utterances without training phrases.
Interpreting a user’s utterance is an important part of conversation design. It ensures your bot can understand what a user has said in natural language, understand whether it is a question about ‘Policy’ or ‘Making a claim’, and accurately match an intent. Conversations are non-linear and context-driven, meaning effective intent management and matching is integral to great conversation design.
Try the OpenDialog digital concierge

The basics
Section titled “The basics”Semantic intent classification is an incredibly versatile and performant tool, allowing you to build and manage complex conversations with ease.
As a conversation designer, a Semantic Intent Classifier provides many benefits:
- Build complex conversations easier, quicker and more efficiently
- Use a range of LLM (Large Language Model) engines
- Create an intent hierarchy using Intents, and sub-intents
- See more accurate intent matching with intent instructions specific to your use case
- Harness additional prompts to provide background/key business or operational information
- Re-use across multiple scenarios
- More cost-effective than regular LLM classification via training phrases
In action
Section titled “In action”Flexibility in conversation design
Build a hierarchy within your Intents, add Intent instructions, provide additional prompt information to support Intent selection, and harness the power of an LLM to support Intent matching.
Testable independently from a conversation
You can configure and test your Semantic Intent Classifier using our test panel at every step, allowing you to debug, monitor token usage, review matched intents, inspect LLM logic, and see results quickly.
Where to find
Section titled “Where to find”To create a Semantic Intent Classifier, first, add it as a Language Service from the Workspace Dashboard.

I've created my Language Service, what do I do next?
All language services need to work in unison with an Interpreter.
If you have configured a Language Service that is ready to use within a conversation, you must create an Interpreter for the Language Service within a scenario.
To create an Interpreter:
- Select the scenario in which you wish to use the Language Service
- In the sidebar click ‘Interpret’
- Select ‘Add new Interpreter’
- Add a unique Interpreter name
- Under the Interpreter Type, select ‘Language Service’
- Select the ‘Semantic Intent Classifier’ Language Service you created
- Click ‘Save configuration’
I've set up an Interpreter, what do I do next?
Great! Once you have your Language Service and interpreter set up, it can be added within the conversation designer at the intent level.
To add your Semantic Intent Classifier to your conversation:
- Use the sidebar and navigate to ‘Design’
- Click on ‘Conversation’
- Using the conversation design interface in the middle panel
- Click through the correct conversation, scene, and turn until you get to the intent level
- Select the correct ‘USER’ intent you wish to add it to
- Within the right-hand sidebar, select the correct Interpreter
- The panel will update slightly, and show a new field ‘Select intent’
- Select the intent, or sub intent you wish you use
Structure
Section titled “Structure”A Semantic Intent Classifier Language Service has 4 main components:
- Language Service configuration - This is where you configure the Language Service, give it a name and description and select an LLM engine. When returning to the Language Setting configuration after creation, you can also review which scenarios it is currently used in.
- Intent and sub-intent configuration - This is where you can create and manage both your intents/sub intents, and provide instructions. You can also search for intents you have created using the keyword search will find related search queries either within the intent name or instruction and begin to test matched intent.
- Prompt configuration - OpenDialog also provides additional prompt options as part of the Semantic Intent Classifier. Here you can specify additional information pertinent to your use case (such as background/key business or operational information). Any additional prompt information you provide is embedded within the non-editable prompt template, alongside the Intents and descriptions you have created. You can also create custom output attributes to extract data from the user utterance.
- Test panel - Present within intent creation, and prompt configuration, the test panel amalgamates all input data across your intents and prompt as you enter it, and provides a clear view of the inputs (what is sent to the LLM) and outputs (what was received back from the LLM).
How to use
Section titled “How to use”Overview
Section titled “Overview”Vocabulary
Section titled “Vocabulary”Intent
Within a Semantic intent classifier, an intent can be a singular, or categorised collection of intents (sub intents) that provide structure and organisation in your conversation.
Sub intent
A more granular intent exists within a categorised collection of intents. For example, an intent could be ‘About us’. However, further developing the intent to be more specific by adding sub intents such as ‘Company’, ‘People’, ‘History’ will provide more granular intents within the ‘About us’ intent.
Prompt
A question or statement that provides instructions to an AI system to generate a response.
Setting up your Semantic Intent Classifier
Section titled “Setting up your Semantic Intent Classifier”To get started, create a Semantic Intent Classifier Language Service.

Name and description
Section titled “Name and description”When creating your Semantic Intent Classifier, it’s important to give it a unique name and description that helps you identify it easily.
Engine configuration
Section titled “Engine configuration”You can choose from the following LLM engines when you create a Semantic Intent Classifier:
- OpenAI
- Azure
- Google Gemini
- Custom configuration
When using OpenAI
Section titled “When using OpenAI”- Selecting ‘OpenDialog managed’ means you will use a service directly managed by OpenDialog, and will not need to provide any credentials. You will be able to select a model from a pre-defined dropdown list.
- Unselecting ‘OpenDialog managed’ means you will need to provide your OpenAI API Key, OpenAI Organisation and specify a model name.
When using Azure
Section titled “When using Azure”- OpenDialog does not provide a managed service, therefore you will need to provide your Azure OpenAI API Key, Azure OpenAI Resource Name and Azure OpenAI Deployment Name.
When using Google Gemini
- OpenDialog does not provide a managed service, therefore you will need to provide your Location and Project ID, as well as select the model you want to use. In addition, you will also have to provide JSON credentials which can be gathered directly from Google, and then either copied and pasted or uploaded into OpenDialog.
When using a custom configuration
Create service
Section titled “Create service”When you have configured your Language Service, you can click ‘Create service’ to continue. This will take you to the Intent and Sub-Intent creation section.
Editing your language service
Section titled “Editing your language service”You can make changes to your Language Service (such as changing the name, description or the engine you are using) by navigating to:
- Workspace dashboard
- Select ‘Manage Language Services’
- Select the Language Service you wish to edit
- Using the side-bar, navigate to ‘Settings’
Creating an intent
Section titled “Creating an intent”With your Language Service configured, you can begin creating Intents and sub-intents.

To create an intent you must specify:
- A unique intent name - to help you categorise and manage your intents. It should be unique across intents and sub-intents
- Intent classification instruction - used by the LLM to classify and make an accurate match
You can create an Intent and sub intents simultaneously by clicking ’+ Add sub Intent’ during initial intent creation, and add as many as required.
Managing and editing your intents
Section titled “Managing and editing your intents”Every intent you create will be represented in a list, from latest to first created, and provide tools to let you manage your intents with ease.

From the list view you can:
- Add sub-intents - using the plus button
- Edit - using the pencil button
- Delete - using the trash can button
Any changes to intents are confirmed by clicking the ’✓’ button.
Test panel
Section titled “Test panel”A persistent test panel is present in both the intent creation screen, and prompt screen, so you can test and iterate your Semantic Intent Classifier throughout set-up, and more collectively as a whole.
Tell me more about the test panel
Prompt configuration
Section titled “Prompt configuration”OpenDialog also allows you to provide additional prompt information alongside your intents and their classification instructions. Within your prompt, you can also include {attributes}, define their values, and include custom output attributes.

Prompt template (read-only)
Section titled “Prompt template (read-only)”By default, the prompt template is sent to the LLM alongside your intents and classification instructions and cannot be edited directly.
The LLM requires a specific prompt format for your Semantic Intent Classifier to work as expected:
- Task: The task we want the LLM to complete
- Additional prompt information: Any additional data the LLM should know and consider (any ‘Additional prompt information’ you supply using the fields below is inserted here)
- Goal: What success looks like in terms of task completion
While this is not editable, including this field provides an easy way to understand the steps the LLM will take to complete the task.
Additional prompt information
Section titled “Additional prompt information”Additional prompt information allows you to configure and provide further information pertinent to the LLM, such as specific background/key business or operational information.
You can also specify attributes within your prompt. To add an attribute to your prompt, type the curly brace symbol { and enter the name of the attribute you want to include.
Learn more about adding and creating attributes
Custom output attributes
Section titled “Custom output attributes”The prompt configuration area also allows you to create Custom output attributes, which can be used to extract data from the user utterance or create conditions to redirect your conversation. The extracted output attributes will be stored in the user context if matched for use later in the conversation.
Add from Language Services interpreter
Section titled “Add from Language Services interpreter”After configuring your Language Service, Intents and Prompt, it’s time to add an Interpreter to link your Language Service to a scenario.

Create interpreter
Section titled “Create interpreter”Creating a new Interpreter from a Language Service requires some basic configuration:
- Name: You must enter a unique name for your Interpreter
- Settings: You must choose the Language Service you want to connect the Interpreter with
Once both these are completed, you can save and complete this configuration by clicking ‘Save configuration’. All Interpreters you create will be displayed on the Interpreters landing page.
The Semantic Intent Classifier testing panel
Section titled “The Semantic Intent Classifier testing panel”Throughout the entire Semantic Intent Classifier creation process, you can test and iterate using the test panel in the sidebar.
The test panel is made up of:
Section titled “The test panel is made up of:”→ Inputs
Section titled “→ Inputs”This area shows the information sent to the LLM:
- Attributes and values: Gathered from additional prompt information
- User utterance: What might be sent by the user within a conversation
Outputs →
Section titled “Outputs →”This area shows the information received from the LLM based on the input data.
Success/Failure
Section titled “Success/Failure”Indicates whether the test worked successfully, or in the case of failure, will indicate the cause of failure and some guidance on how best to make changes.
Matched intents
Section titled “Matched intents”If you have set up Intents/sub intents, any matched intents will show as part of a test, showing the sub intent that has been matched first. Sub-intents are more granular and specific and therefore should be a more accurate match.
Attributes
Section titled “Attributes”Displays any attributes output by the LLM within the test. You may also see additional output attributes that were not specified during configuration, for example, in the case of success, error or failure.
Inspect
Section titled “Inspect”The expandable inspect area shows the compiled system prompt and more specific information about the test in JSON format such as token usage.
Using a Semantic Intent Classifier in your scenario
Section titled “Using a Semantic Intent Classifier in your scenario”Before you can add a Semantic Intent Classifier, ensure you have completed this checklist:
- I have created a Semantic Intent Classifier Language Service
- I have added Intents with classification instructions
- (Optional) I have configured my prompt settings
- I have created an Interpreter from a Language Service
If this list is complete, you are ready to go.
How to add a Semantic Intent Classifier in your scenario
Section titled “How to add a Semantic Intent Classifier in your scenario”Your Semantic Intent Classifier must be added to a USER intent within the conversation designer, by navigating through the corresponding conversation, scene, turn and intent where you wish to add it.

Frequently asked questions
Section titled “Frequently asked questions”What is a ‘sub-intent’ and what does it mean?
Section titled “What is a ‘sub-intent’ and what does it mean?”Think of intents and sub-intents the same way you would think of the class hierarchy between ‘parent’ and ‘child’; It simplifies complex information into organised categories.
An Intent supports your sub-intent, and sub-intents can be much more granular and specific, the result being more accurate intent matching.
How is this different to Intent Classification?
Section titled “How is this different to Intent Classification?”Creating an accurate Intent Classifier requires training phrases which contain entities. While Intent Classification is still a valuable and powerful tool, it can be complex and span a variety of phrases that require a lot of testing. Semantic Intent Classification utilises the power of an LLM within your conversation design which conducts a similar (but not the same) task as training phrase creation, but easier, quicker and more efficiently.
How do I use a Semantic Intent Classifier in my scenario?
Section titled “How do I use a Semantic Intent Classifier in my scenario?”Using the conversation designer pane:
- Navigate into the conversation, scene and turn where you want to add your Semantic Intent Classifier
- Either click on or create a
USERintent - In the right-hand sidebar, select the interpreter created for your Semantic Intent Classifier
- Select the Intent or sub-intent you want to use
How are intents compared and matched?
Section titled “How are intents compared and matched?”If both an intent and sub-intent are matched, then the conversation engine will prioritise the sub-intent over the intent.
Learn more about conversation engine prioritisation
Why is my Semantic Intent Classifier not picking up my intents?
Section titled “Why is my Semantic Intent Classifier not picking up my intents?”How your intent is configured could be considered ‘catch-all’ - and not contain specific enough information to be matched correctly. Try adding more granular instructions to your intents.
Can I reuse the same Semantic Intent Classifier in more than one scenario?
Section titled “Can I reuse the same Semantic Intent Classifier in more than one scenario?”Yes, you can - As the Semantic Intent Classifier lives at the Language Service level (outside of a scenario) it can be integrated with an Interpreter and added to any Scenario you create.
Can I add more than one Semantic Intent Classifier to a Scenario?
Section titled “Can I add more than one Semantic Intent Classifier to a Scenario?”Yes, you can - however, Semantic Intent Classification provides an exceptional breadth of scope and flexibility, meaning you probably won’t need to.
If you are looking to provide users with a variety of source types or information, consider using our RAG service.
Can I switch the LLM engine of my Semantic Intent Classifier after I have completed configuring it?
Section titled “Can I switch the LLM engine of my Semantic Intent Classifier after I have completed configuring it?”Yes, you can. OpenDialog provides different LLM engines you can use:
- OpenAI (available as an OpenDialog Managed service)
- Azure
- Google Gemini
