When customers type Roman Urdu, Hinglish or mixed Arabic
Translation is not the problem. Transliteration and code-switching are, and they break keyword rules quietly.
Code-switching is a customer writing one message in two languages — or in one language using another's alphabet — and it is the normal case in Pakistan, India, the Gulf and much of South-East Asia rather than an edge case. "bhai kitna price hai" is a price question containing one English word and no Urdu script.
Most advice on multilingual bots is about translation: publish your flow in two languages, let the customer choose. That solves a problem your customers do not have. They are not asking for Urdu; they are typing Urdu in Roman letters, and your keyword list does not contain it.
The three separate problems
| Problem | Example | What actually fixes it |
|---|---|---|
| Transliteration | "kitna" instead of کتنا | More keyword variants |
| Code-switching | "delivery kab ayegi" | Match on either half |
| Genuine second language | A message entirely in Arabic script | Separate flow or a knowledge base |
The first two are the common ones and both are fixable with the tools you already have, because keyword matching is plain text and does not care which alphabet you typed.
There is no correct spelling, so add several
Transliteration has no standard. The same word appears as "kitna", "kitne", "kitnay" and "kitna hai" from four different customers, and each is a different string to a keyword match. One spelling catches a quarter of the people who meant it.
| Intent | English | Roman Urdu / Hindi to add |
|---|---|---|
| Price | price, how much, cost, rate | kitna, kitne, kitnay, qeemat, keemat, rate kya |
| Order status | where is my order, tracking | kab ayega, kab tak, kidhar hai, order kahan |
| Availability | in stock, available | available hai, stock hai, mil jayega, hai kya |
| Yes / confirm | yes, confirm, ok | haan, han, ji, ji haan, theek hai, sahi |
| No / cancel | no, cancel | nahi, nahin, cancel karo, rehne do |
That fourth row matters more than it looks. If a confirmation flow only accepts "yes", every customer who types "ji" is invisible to it — and in cash-on-delivery markets that is a shipped parcel nobody confirmed.
The best source is your own inbox. Before writing any keyword list, search your existing conversations for the intent and copy the phrasings that actually appear. Twenty minutes of that beats any list published on a blog, including this one.
Buttons sidestep the problem entirely
The most reliable multilingual technique is not matching text at all. A question with buttons produces a tap, and a tap is the same regardless of what language the customer thinks in.
So in mixed-language markets, lean harder on Ask Customer a Question with buttons or lists, and use free text only where you genuinely need it — an order number, an address. Label the buttons in whichever language your customers read most comfortably, or in both: "Confirm karein / Confirm" fits.
There is a second benefit. A tap opens the 24-hour window, making everything afterwards free — so the accessible design is also the cheap one.
Where the knowledge base helps
Keyword lists have a ceiling. Once you are maintaining eighty phrases for one intent across two scripts, you have outgrown them.
The Answer from Knowledge Base step matches on meaning rather than characters, so it handles phrasings you never anticipated — including transliterated ones — as long as the answer exists in your material. Put specific keyword flows above it for the intents that need a specific outcome, and let it catch the long tail underneath.
Which language should the bot reply in?
Three workable answers, in order of how well they hold up:
- Reply in the language you sell in, warmly. Most customers writing Roman Urdu read English fine — they are typing in the way that is fastest on their keyboard, not asking to be answered in Urdu.
- Ask once, then remember. A first-message question offering "English / اردو", saved to a contact field, and branch on it thereafter. Costs one extra step per flow.
- Write bilingually in the same message. Effective for short transactional messages, clumsy for anything longer.
What does not work is guessing per message. A bot that switches language based on what it thinks it detected feels erratic, and it will be wrong on exactly the mixed-script messages that are most common.
Templates and language
Templates are approved per language, so a genuinely bilingual store needs each one submitted twice. That has a cost you should plan for: Meta caps templates at 250 per account for an unverified business portfolio, and 6,000 once verified, per its template documentation. Doubling every template halves your headroom.
Right-to-left languages add a practical wrinkle: check how the approved template renders on a real phone before you rely on it, particularly where a variable sits next to punctuation.
What to do first
- Search your inbox for the ten phrasings customers actually use for your top intent.
- Add every spelling variant to that keyword list.
- Make sure your confirmation flows accept "haan", "ji" and "theek hai" as well as "yes".
- Convert your busiest free-text question into buttons.
- Put a knowledge base underneath as the catch-all.
Step three alone is often worth more than everything else on this page, because it turns silently-lost confirmations into confirmed orders.
Frequently asked questions
Can a WhatsApp bot understand Roman Urdu or Hinglish?
Keyword matching is plain text, so it matches transliterated phrases if you add them — and you need several spellings, because transliteration has no standard. For phrasings you cannot anticipate, the knowledge base step matches meaning rather than characters.
What is the most reliable way to handle mixed languages?
Buttons. A tap is the same regardless of what language the customer thinks in, and it also opens the 24-hour window, which makes everything afterwards free.
Should my confirmation flow accept anything besides 'yes'?
Yes — 'haan', 'han', 'ji', 'ji haan' and 'theek hai' are all common. A flow that only accepts 'yes' silently loses confirmations, which in cash-on-delivery markets means shipping unconfirmed parcels.
Do I need separate templates for each language?
Yes, templates are approved per language. Plan for the quota: 250 templates per account on an unverified business portfolio, 6,000 once verified.