Reviewed by LeadPilot Editorial
Intent Detection and Slot Filling: How Conversational AI Understands What Users Want
A clear breakdown of intent detection and slot filling in conversational AI, how they work together, common approaches, and how to test them.
What Intent Detection and Slot Filling Actually Mean
Intent detection and slot filling are the two core tasks that let a conversational system turn a free-form sentence into something a program can act on. Intent detection answers the question "what does this person want to do?" Slot filling answers the follow-up question "what specific details do I need to do it?"
Take the sentence: "Can you book a scope call for next Tuesday afternoon?" Intent detection classifies this as a booking request. Slot filling then extracts the pieces of information the system needs to actually complete that booking: the action (book), the meeting type (scope call), and the time (next Tuesday afternoon). Without intent detection, a system doesn't know which process to run. Without slot filling, it knows the process but not the parameters needed to execute it.
This distinction matters for anyone evaluating or building a conversational interface — whether that's a customer support bot, a voice assistant, or a website chat agent — because the two tasks fail in different ways and are usually diagnosed with different checks.
How the Two Tasks Work Together
In most conversational AI architectures, intent detection and slot filling run as a joint or sequential pipeline:
- Input: The raw user utterance is received as text (or transcribed from speech).
- Intent classification: The system assigns the utterance to one of a predefined set of intents (e.g.,
schedule_meeting,request_refund,ask_pricing,out_of_scope). - Slot extraction: The system identifies and labels the specific spans of text that correspond to required parameters for that intent (dates, names, product names, quantities, locations).
- Dialogue state update: The extracted intent and slots are merged into the system's running memory of the conversation so it can ask for anything still missing.
- Action or response: Once all required slots are filled, the system executes the action (book a call, look up an order, answer a question) or responds with the next clarifying question.
A simple way to picture this is a table structure that the system populates turn by turn:
| Turn | Utterance | Detected Intent | Slots Filled |
|---|---|---|---|
| 1 | "I want to talk to someone about pricing" | ask_pricing | none |
| 2 | "We're a team of about 25 people" | ask_pricing | team_size: 25 |
| 3 | "Yes, book me in for Thursday" | schedule_meeting | day: Thursday |
Notice that the intent can change mid-conversation (from asking about pricing to requesting a booking), while slots accumulate or reset depending on whether the new intent reuses the same parameters. Good slot-filling design has to account for this shift rather than assuming one intent per conversation.
Why Intent Detection Alone Is Not Enough
A system that only does intent classification can tell you that someone wants to book a meeting, but it still has to ask a string of separate questions to get the date, time, and meeting type — often repeating questions the user already answered in their original message. This produces the stilted, form-like back-and-forth that frustrates users: "What do you need help with?" → "I want to cancel my subscription that starts next month" → "Okay, what do you need help with?"
Slot filling is what prevents this. By extracting entities directly from the original sentence, the system can skip questions it already has answers to and only ask about what's genuinely missing. This is the mechanical difference between a system that feels like it's following a script and one that feels like it's actually parsing what was said.
Common Approaches to Building These Systems
The following is an author-proposed way of grouping how teams commonly build intent detection and slot filling, useful as a framework for evaluating a system rather than a fixed industry standard:
Rule-based / pattern matching Early systems used regular expressions and keyword lists to match utterances to intents and pull out slots. This is fast to build and fully predictable but breaks whenever a user phrases something in a way the rules didn't anticipate. It is still useful for narrow, high-precision tasks (e.g., matching an exact order number format) but tends to scale poorly as the range of phrasing grows.
Separate statistical models A more scalable approach trains one classifier for intent (treating it as a standard text classification problem) and a separate sequence-labeling model for slots (often using a tagging scheme where each word is labeled as the beginning, inside, or outside of a slot span). This separates concerns but means the two models don't share context, which can cause mismatches — e.g., the slot model extracting a date even though the intent model classified the utterance as unrelated to scheduling.
Joint models Some conversational AI systems train intent classification and slot filling together in a single model, sharing the same underlying representation of the sentence. Joint modeling allows the system to use the detected intent to inform which slots are even relevant, and to use slot patterns to help disambiguate intent. If you're comparing systems, it's worth testing whether a given tool behaves more like separately-trained components or a jointly-trained one — the mid-conversation intent switch test later in this article is one way to probe that.
A Practical Example (Hypothetical)
To make the mechanics concrete, consider a hypothetical website chat exchange:
Visitor: "Can you launch a five-page site before our conference? It's in six weeks."
A joint intent/slot system processing this sentence would need to:
- Classify the intent as something like
feasibility_checkortimeline_inquiry - Extract slots:
project_scope: five-page site,deadline: six weeks - Cross-reference those slots against known constraints (e.g., a published turnaround time) to generate a grounded answer
- Decide, based on intent plus filled slots, whether the next step is to ask a clarifying question or offer a specific next action
This is a hypothetical illustration of the mechanics, not a reported outcome from any specific deployment — the point is to show how intent and slots combine to drive a decision rather than just a reply.
A Reader-Run Test: How to Evaluate Whether a System Is Doing This Well
If you're assessing a conversational AI tool — whether you're building one internally or evaluating a vendor — these are practical checks you can run yourself against the live interface:
- Ambiguous phrasing test: Give the system a sentence where the intent is implied rather than stated directly (e.g., "our event is coming up fast and we still don't have a site"). Does it correctly infer the scheduling/urgency intent, or does it default to a generic response?
- Slot carry-over test: Provide multiple pieces of information in one sentence. Check whether the system asks for details it was already given, which indicates slot extraction isn't being merged properly into dialogue state.
- Out-of-scope test: Ask something the system has no data for. If it says it doesn't know rather than fabricating an answer, that's a sign its responses are scoped to a defined knowledge boundary instead of free-generating.
- Mid-conversation intent switch test: Start with one request, then pivot to a different one. Confirm the system updates its classified intent rather than continuing to pursue the original one.
These tests don't require technical access to a system's internals — they can be run by anyone typing into the interface and observing whether responses track logically with what was actually said. Treat the results as a decision input: if a tool fails the slot carry-over or intent switch test repeatedly, that's a reason to question it before relying on it for visitor-facing conversations, not a guarantee of how it will behave in every case.
Where This Shows Up in Website Chat Agents
Intent detection and slot filling are the underlying mechanics behind any chat agent built to qualify a visitor rather than simply reply to messages. When a website agent asks about a detail only when that detail changes the next step — rather than running through a fixed list of questions regardless of what's already been said — it's relying on this combination of classification and extraction working together.
LeadPilot's agent is built around an answer-first, qualify-second structure: it draws answers from a business's approved website content, and asks a qualifying question only when the answer would change the next step offered to the visitor (for example, whether to recommend a booking link or flag the conversation for follow-up). The product scores conversations on dimensions like intent and timeline as the conversation progresses, which is a visible, product-level expression of the same intent-detection-plus-slot-filling mechanics described above — the agent is classifying what the visitor wants and extracting the specific details that determine what happens next.
If you're evaluating whether a chat agent for your own site handles this well, the tests above — ambiguous phrasing, slot carry-over, out-of-scope handling, and mid-conversation intent switches — are a reasonable starting checklist to run against any tool before relying on it for visitor-facing conversations.
Frequently Asked Questions
Is slot filling the same as entity extraction? They overlap but aren't identical. Entity extraction is a general task of pulling named things (people, dates, places) out of text regardless of context. Slot filling is entity extraction applied specifically within the frame of a known intent — it only extracts the entities relevant to completing that particular intent's required parameters.
Can a system have multiple intents in a single message? Yes, and this is one of the harder edge cases in conversational AI design. A sentence like "cancel my subscription and also update my billing address" contains two intents. Systems handle this differently — some classify only the dominant intent and treat the rest as a follow-up, while more advanced systems attempt multi-intent classification directly. If you're evaluating a system, test this explicitly, since it's a plausible failure point worth checking rather than assuming is handled.
What happens when a required slot is never filled? Well-designed dialogue systems ask a targeted clarifying question rather than failing silently or guessing. If a system fabricates a value for a missing slot instead of asking, that's worth flagging as a risk if you're evaluating a tool for tasks where wrong assumptions are costly.
Related reading
Put your website conversations to work
Build a LeadPilot agent from your website and review it before you publish.
Start Free