Our Cape Town chatbot development methodology builds WhatsApp-native, multilingual bots optimised for South African conditions. WhatsApp-first architecture recognises that WhatsApp is the primary deployment channel: WhatsApp Business API integration (enterprise-grade WhatsApp access: programmatic message sending and receiving, template messages for outbound notifications, interactive messages (buttons, lists, quick replies) for structured conversations, and media support (images, documents, location) for rich interactions), conversation design for WhatsApp constraints (WhatsApp imposes specific design constraints: message length limits (no 2,000-word responses — concise, scannable messages), limited formatting (bold, italic, monospace — no rich HTML), no persistent UI elements (each message stands alone — no sidebar navigation or persistent menus), and session-based pricing (Meta charges per conversation — efficient conversation design reduces costs)), template message strategy (outbound notifications require pre-approved templates: order confirmations, delivery updates, appointment reminders, payment receipts, and status change notifications — each template crafted in English, Afrikaans, and (where applicable) isiXhosa, submitted for Meta approval, and optimised for engagement), and fallback channels (for users not on WhatsApp or preferring alternatives: USSD (Unstructured Supplementary Service Data — menu-based interaction on any phone, even feature phones — critical for reaching unbanked South Africans without smartphones), SMS (text-based chatbot interaction — limited but universally accessible), and web chat (for corporate website visitors — international tourists, B2B clients, and desktop users)). Multilingual NLU builds chatbots that understand South African language patterns: English NLU baseline (intent classification and entity extraction trained on South African English — understanding: South African vocabulary ("airtime" for prepaid mobile credit, "geyser" for water heater, "robot" for traffic light, "boot" for car trunk), South African abbreviations and slang ("ID" for identity document, "SARS" for the tax authority (not the disease), "loadshedding" as a single concept), and South African name patterns (first names, surnames, and the double-barrelled surnames common in South Africa)), Afrikaans NLU (trained on conversational Afrikaans data: understanding insurance and banking terminology in Afrikaans ("eis" for claim, "premie" for premium, "rekening" for account, "saldo" for balance), Cape Afrikaans expressions and vocabulary, and Afrikaans sentence structure (verb-second in main clauses, verb-final in subordinate clauses — affecting how the NLU parses user messages)), code-switching handling (the NLU detects and processes mixed-language input: "Ek wil my balance check" (Afrikaans "I want to" + English "balance check") correctly classified as a balance enquiry, "Can you help me met my claim?" (English + Afrikaans "with") correctly classified as a claims enquiry — without treating mixed-language input as noise or errors), and isiXhosa awareness (for deployments requiring isiXhosa: basic intent classification for common customer service intents, entity extraction for: names, numbers, dates, and reference codes, and immediate human escalation for complex isiXhosa interactions — acknowledging current NLU limitations while still providing isiXhosa users with better service than an English-only chatbot). Bandwidth-efficient chatbot design minimises data consumption: text-first responses (chatbot responses are text by default — images, documents, and rich media are sent only when specifically valuable (product photos, claim documents, location maps) — not decoratively), compressed media (when images are necessary (product photos, proof-of-delivery, claim documentation), they are compressed for mobile delivery: images at 80KB or less, documents optimised for mobile viewing, and location data as text addresses rather than map images where possible), and minimal round trips (conversation flows designed to collect information efficiently — asking for multiple data points in a single message rather than one-question-per-message flows that require more back-and-forth, consuming more data and testing user patience on slow connections).