Home · Blog · Intent recognition in a chatbot: when buttons and keywords are not enough

Intent recognition in a chatbot: when buttons and keywords are not enough

· Command CHBT · AI, Flows

Intent recognition in CHBT is the AI intent trigger. In the Intent description field you write the meaning in plain words, for example “The customer wants to book an appointment”, and for each customer message the AI answers “yes” or “no”; on “yes” the flow starts from the chosen step. The check does not spend AI credits and is available on all plans. Limits: one description is one intent, the AI sees only the current message without the chat history, and each check is a pause before the reply, so frequent cases are better left to keywords.

What an intent is

An intent is what a person wants, regardless of the words. “Book me for tomorrow”, “any free time on Friday?” and “I’d like to come in for a manicure” are three different phrases with one intent: to book. A chatbot with intent recognition reacts to meaning, not to a specific word.

Five to seven intents are usually enough: book, price, address and opening hours, a question about an order, a complaint, ask for a person.

How AI intent works in CHBT

It is one of the flow triggers, alongside Keywords and Command (/start). The trigger has one field — Intent description. When the customer writes a message, the AI receives the description and the customer’s text and answers only “yes” or “no”: whether the message matches the intent. “Yes” — the flow starts from the step chosen in Starting step.

Important details:

  • the AI does not check button presses — they are not a person’s phrases;
  • on plans with AI, voice messages are first transcribed to text (1 AI credit), so the intent is recognised in voice too; not on the Free plan;
  • one description is one “yes or no” question, so each intent needs its own trigger;
  • if the AI did not answer within 15 seconds or something failed, the trigger is considered not fired, and the bot checks the next triggers — the customer will not be left without a reply because of a model error.

How to set up

  1. Open the flow that should respond to the intent, for example “Booking”.
  2. Add trigger → in When to start choose AI intent.
  3. In Intent description write the meaning in one or two sentences. An example from the editor’s hint: The customer wants to book an appointment.
  4. In Starting step choose the first step — for example, choosing a service with buttons.
  5. Repeat for other intents, each in its own flow or as its own trigger with a different starting step.

The AI intent trigger combines well with keywords in the same flow: exact words like “booking”, “book” fire instantly, and the AI picks up everything said differently.

How to write an intent description

  • Talk about the person and their goal. “The customer wants to book a haircut or colouring” is clearer than “booking”.
  • List what is included. “The customer asks about the price, the cost of services or the price list” — this way the AI will not miss “how much is dyeing”.
  • Say what is not included if confusion is likely. “The customer wants a refund for an order. Not a delivery question and not an exchange”.
  • Do not mix two intents in one description. “Wants to book or ask the price” will start one flow for two different questions.
  • Write in plain words. Neither keywords nor regular expressions are needed here.

How much does it cost

Checking an intent does not spend AI credits. It uses a separate service model that is enough to answer “yes” or “no”; nothing is deducted from the bot’s balance for it.

If the bot has the “AI in Russia” mode on — for schools, kindergartens and everyone who needs texts not to leave the country — intents are recognised by a Yandex model in Yandex Cloud, also without spending credits.

Credits are spent by what comes after recognition: an AI agent reply, an AI sales assistant turn, a voice message transcription. In detail about prices — in the article on the cost of AI in a chatbot.

Check order and speed

AI intent is checked together with the other triggers in the general order: flows — in creation order, within a flow — by the trigger list. The first matching one replies.

Each intent check is a call to the AI, not an instant word comparison. If a bot has ten AI intent triggers and the message fits only the last one, ten checks will run in a row before the reply, and the customer will notice a pause. Hence two rules:

  • put frequent and precise cases on Keywords — they fire immediately and the AI is never reached;
  • keep the number of intents small — five to seven is enough for most bots; the rest is better left to an AI agent in Any message.

Where AI makes mistakes

  • Short messages. “Yes”, “ok”, “and on Saturday?” without context are interpreted uncertainly: the AI sees only this phrase, not the whole chat.
  • Similar intents. The AI may confuse “reschedule a booking” and “book” if the descriptions are alike. Spell out the difference right in the description.
  • An answer in the middle of a questionnaire. The intent is also checked when the customer answers another flow’s question — just like keywords. If to the question “What are you interested in?” the customer writes “I want to book”, the booking flow will start. Most often that is exactly what you want, but keep it in mind when writing questionnaire questions.
  • Several intents in one message. “How much is it and can I come on Saturday?” will start only the first matching one.

Intents and buttons together

Intent recognition does not replace buttons — it covers their weak spot. A convenient setup for most bots:

  1. A greeting with a menu of three to five buttons: “Book”, “Prices”, “Address”, “Ask a question”.
  2. Each button with the Goes to a flow step action leads to its own branch of the same flow — without AI.
  3. The same flow has AI intent triggers describing the same meaning, and in Starting step each has the first step of the right branch selected.
  4. A customer who pressed a button gets where they need to go right away. A customer who wrote in their own words — gets to the same place, through the AI.

This way the bot is equally clear to those who like to tap and to those who write “can I come tomorrow at seven?”. The branches are shared: you edit the booking text once, and it is the same for those who pressed the button and those who wrote. The buttons remain a hint: the person sees what the bot can help with and asks questions it has no answer to less often.

If the customer types text while the bot waits for a menu button press, the Any message of that same flow replies, if there is one — for example, an AI agent. The menu does not break: the person can press a button with the next message.

AI intent or AI agent

AI intentAI agent
What it doeschooses which flow to startanswers the question itself from the knowledge base
Reply to the customeryour steps come next: buttons, data collection, paymenttext written by the model
Creditsdoes not spend themspends them for every reply
Planthe trigger is available on all plansfrom Basic

They work best together: intents lead to flows where precision matters — booking, payment, refunds — while an AI agent in Any message answers everything else. How to set up an agent — on the AI agent page.

Example: a beauty salon on five intents

FlowIntent description
BookingThe customer wants to book a service or asks about free time
ReschedulingThe customer wants to reschedule or cancel an existing booking
PricesThe customer asks the price, the cost of a service or the price list
AddressThe customer asks the address, directions, parking or opening hours
ComplaintThe customer is unhappy with a service or a stylist or wants a refund

The “Complaint” flow immediately hands the conversation to an operator and sets the complaint tag; the “Rescheduling” flow was created before “Booking” — it is checked first, and “reschedule my booking” will not end up as a new booking. Everything that fits none of the descriptions is caught by Any message with an AI agent on the salon’s knowledge base.

How to test

  1. Open the flow with the trigger and click Check flow. The AI works for real in the test chat.
  2. Write ten different wordings of one intent — from obvious to unexpected.
  3. Write five phrases that should not fire: neighbouring intents and unrelated questions.
  4. If the AI misses wordings, broaden the description; if it fires on extra ones — add what is not included.
  5. Test overlaps with other flows from a messenger: the test chat checks only the current flow’s triggers.

After launch, look into Conversations a week later: messages marked Bot didn’t reply will show which intents are missing.

More on the blog