An end-to-end product manager review of NAMA - an AI-native travel operating system for DMCs, tour operators, and travel agencies. I mapped friction points, trust gaps, and conversion blockers across 12 product surfaces, from landing page to post-onboarding dashboard, and prioritised recommendations by business impact.
NAMA is a B2B travel operating system built for a real and painful problem: travel agents spend hours building quotes manually, miss WhatsApp leads at night, and operate without real-time margin visibility. Its AI layer, EKLA, promises to compress a 3-hour quoting workflow into 5 minutes. That value proposition is credible. The product has genuine depth - M1–M19 modules, multi-channel lead capture, a full CRM, itinerary builder, bookings, and a P&L dashboard.
I conducted this review as independent product research to practice structured product thinking on a live B2B SaaS product. I went through the full user journey: landing page, sign-up, an 8-step onboarding flow, and every major product surface inside the app. What I found was a pattern: a sophisticated product consistently undermined by low-contrast text, inconsistent naming, data integrity gaps between views, and a series of trust-damaging moments that hit hardest at exactly the points where conversion is most at risk.
My review methodology: Desktop web audit on Chrome. Each screen evaluated against four criteria - (1) clarity of primary action, (2) trust signals, (3) data accuracy across views, and (4) friction-to-value ratio. Issues severity-scored as Critical (conversion/trust loss), Major (significant friction), or Minor (quick polish win).
NAMA positions itself as "the world-class AI-native B2B2C travel operating system for DMCs and tour operators." Its core loop is: enquiry arrives via WhatsApp or web form → EKLA AI triages and scores the lead → a margin-aware quote is drafted and sent → booking confirmed → P&L tracked live. The BYOK (Bring Your Own Key) model - where agencies connect their own Groq API key to power EKLA - is a smart architectural and pricing decision. It keeps NAMA's AI costs near-zero and creates a cost-comparison moat against traditional travel CRMs.
What's working well: Strong value proposition, WhatsApp-native workflow, live margin visibility, the sample data strategy during onboarding, and the EKLA four-persona framework (Sales / Pricing / Ops / Comms). These are genuine differentiators that most travel CRMs don't have.
NAMA landing page: strong dark-mode aesthetic with a bold hero headline. The page is long with no visible scroll cue, and the 'Watch it in action' CTA above the fold is a dead link.
Sign-up page: split-screen design combining persona selection, account creation, and plan selection all in one scrollable view. The plan labels (light gray on white) fail contrast minimums at the exact moment a user is choosing a paid tier.
The landing page has a modern dark-mode aesthetic that feels premium and product-led. The headline - "You're losing bookings to agents who respond faster" - is sharp and audience-aware. But several issues undermine the conversion journey for a visitor who has made it past the fold.
The most prominent CTA above the fold invites visitors to watch a demo. Clicking it leads nowhere - the button is a dead link. The "Watch 3-minute overview" CTA in the footer has the same problem. This is the highest-intent action a sceptical B2B buyer will take, and it fails silently. No 404, no placeholder, just nothing. Every B2B visitor who clicks this and gets no response has reduced confidence that the product is live and maintained.
The social proof section lists "Arjun Sharma, CEO Horizon Holidays" and "Priya Mehta, Head of Sales Wanderlust DMC" - with no photos, no LinkedIn profiles, no company websites. The company name marquee (Horizon Holidays, Wanderlust DMC, Elite Escapes) looks like default placeholder text. In B2B SaaS, where trust is everything, fake-looking social proof is worse than no social proof. A sceptical buyer actively looking for reasons to disqualify a vendor will find this immediately.
Key headings like "Under 5 minutes" and "Isn't Human" use a thin teal/green serif font against dark backgrounds. The combination of low font weight and insufficient contrast ratio fails WCAG AA standards and reduces legibility for users in bright environments or with visual impairments.
The homepage nav shows "Why NAMA / Modules / How It Works / BYOK Savings." The pricing page nav shifts to "Product / Pricing / BYOK Savings" - different structure, different items. A visitor bouncing between pages to compare plans experiences a disorienting navigation shift at exactly the moment they are evaluating a purchase decision.
"Watch it in action" (top) vs "Watch 3-minute overview" (bottom) vs "View demo" all label the same product demo video. Inconsistent labelling for the same destination creates cognitive load - visitors wonder whether they are clicking through to the same thing or three different resources.
NAMA's onboarding is genuinely ambitious: 8 steps that attempt to configure a complete workspace - business identity, invoice header, lead channels, AI key, data import, and team setup - before the user ever sees the dashboard. The live preview pattern used across steps 2–4 (showing the sidebar or invoice updating in real time as you configure) is excellent UX. But several critical issues cluster around the points where a user is most likely to abandon.
The "CHOOSE YOUR PLAN" labels, the "I AM A" field labels, and the sub-text under persona options all use light gray on white - likely failing WCAG AA (4.5:1) at the plan selection level. A user who cannot read the pricing text cannot make an informed business decision. This is the highest-stakes UI moment: the user is choosing a plan and about to enter payment information.
The signup form combines persona selection, personal info, company info, and plan selection all in one scrollable view. Asking users to pick a pricing plan before they have experienced the product is a standard conversion anti-pattern. Long-form signup increases drop-off, and combining identity decisions (who am I?) with financial decisions (which plan should I pay for?) in a single step multiplies cognitive load.
Step 02 / 08: Agency type selection. The live sidebar preview on the right is excellent UX. But circles (radio-button convention) are used for a multi-select interaction - a direct conflict with established UI patterns that will cause hesitation.
Step 2 instructs users to "Select all that apply" but uses circular icons - which by established convention signal radio buttons (single choice). This violates a fundamental UI mental model and will cause hesitation or incorrect selection for users who follow the visual cue over the text instruction.
In Step 4 (Lead Capture), WhatsApp and Email toggles are pre-toggled ON but both show "Connect in Settings" - meaning no actual connection happens here. The user is toggling preference for a channel they cannot actually connect at this step. This creates a lie-by-design moment: the user feels like they are configuring something that is actually deferred. When they reach the dashboard and EKLA is inactive because no channels are connected, the completion state is misleading.
Step 03 / 08: Invoice header setup. The live invoice preview on the right is a best-practice 'show don't tell' pattern. Missing: a logo upload field and brand colour picker - the two things any agency owner expects in an invoice header screen.
Step 04 / 08: Lead Capture. WhatsApp and Email toggles are pre-toggled ON but both say 'Connect in Settings' - meaning nothing is actually connected here. The live Query Inbox preview shows EKLA intent scoring that the user won't see until channels are actually connected.
Step 05 / 08: EKLA Activation. Users must leave the app to create a Groq account and generate an API key mid-setup. Non-technical users - the core target audience of travel agency owners - will abandon here. Note 'Use without AI' is buried as a secondary option.
Step 5 requires users to leave the app, navigate to console.groq.com, create an account, and generate an API key - all mid-setup. For non-technical users (the majority of travel agency owners), this is an escape room, not an onboarding. Requiring tab-switching during a linear 8-step flow is one of the highest friction moments possible. Every user who doesn't know what an API key is will abandon here.
Step 06 / 08: Data Import. 'Start with sample data (RECOMMENDED)' is the right default - it lets users click around immediately. The pipeline preview showing 142 enquiries gives a realistic sense of the product's depth. Gap: the CSV 'auto-map columns' promise has no documented failure state or sample template.
The final onboarding screen - the moment of maximum positive reinforcement in any SaaS product - shows a "Request failed" error toast in the bottom-right corner. The completion checklist simultaneously shows "EKLA Not activated" and "Lead channels None connected yet." Something failed during setup, but the user has no idea what, whether it matters, or how to fix it. The completion screen is the worst possible place for a silent error. Users who reach this point with broken state will either churn immediately or underuse the product because they believe it to be broken.
Step 08 / 08 Completion screen. The 'Request failed' toast is visible in the bottom-right corner - a critical error on the highest-stakes screen in the onboarding flow. EKLA shows 'Not activated' and Lead channels show 'None connected yet', both grey and incomplete.
What to build after fixing the blockers: A post-onboarding "first win" flow - a guided "create your first quote in 60 seconds" sequence (demo lead → EKLA draft → PDF preview). One complete loop through the core value delivery is the activation event that determines 30-day retention. Right now, completing onboarding dumps the user into a cold dashboard with 142 demo leads and no clear next step.
Dashboard: 'What needs your attention' widget renders twice (visible here - two separate instances stacked). The Revenue card shows a loading skeleton that never resolves despite all other sections loading. Sidebar shows Leads: 47 while the KPI card on the main view shows 'Total Leads: 2'.
The dashboard has the right information architecture: "What needs your attention" prioritisation widget at top, KPI cards for net margin and quotes, an agent leaderboard, and P&L visualisations. The action-oriented design philosophy is correct for a B2B sales tool. But three data integrity failures make it feel broken rather than trustworthy.
The priority widget renders two instances on the same dashboard view. This is a component mounting bug that immediately signals to any technical buyer that the product is in early development. First impressions of the core workspace set expectations for every subsequent interaction.
The Revenue stat card never resolves - it shows an indefinite loading skeleton even with sample data present across other parts of the dashboard. The P&L visibility use case is one of NAMA's core value propositions. A revenue widget that never loads is a direct contradiction of the product's primary promise.
Dashboard design principle: Every KPI card must be able to show three states - loading (≤5s), data present, and error with retry. The absence of an error state in any UI component is not simplicity; it is a hidden failure mode waiting to manifest in front of your highest-value customers.
Quotations module: the page header says 'Quotes' while the page title says 'Quotations'. The table has only status-based filters (Draft / Sent / Accepted / Expired) with no date range filter. Horizontal scroll appears on a table with a single record, obscuring the Actions column.
The Quotations module filters by status only (Draft / Sent / Accepted / Expired). An agency handling 50+ quotes per month needs to filter by time period. There is no date range filter, no quote versioning (when a client asks to change the hotel, agents duplicate the quote and lose the negotiation trail), and no one-click "Set follow-up reminder" on sent quotes. The most common drop-off in travel sales - a sent quote with no response - has no product support here. This is exactly where EKLA Comms should surface proactively: "No response on this quote in 48 hours. Want me to send a follow-up?"
Inconsistent entity naming across a single screen signals either a rushed implementation or a lack of a naming convention. In a product where naming consistency is a core trust signal for enterprise buyers, this matters beyond the superficial.
The Fulfillment Readiness section in Bookings shows a permanent loading spinner despite other data being present on the page. This follows the same pattern as the Revenue widget - a data pipeline failure with no error state and no user escape hatch. For a booking-stage view, where operational readiness is the core user need, an indefinitely loading status widget is a functional failure.
When a quote is accepted, what happens next? The workflow between Quotations → Bookings is the most critical handoff in the travel sales pipeline. It is not visible from either module. Does accepting a quote auto-create a booking? Does the agent manually move it? This handoff ambiguity means agents will either miss it or develop workarounds that pollute the data model.
Holiday Packages Catalogue: visually the strongest module in the product. Package cards show destination, pricing, inclusions, seat availability, and next departure at a glance. The sidebar at left shows 14+ top-level navigation categories with a scrollbar - the most congested navigation structure in the product.
The sidebar contains over 14 main menu items plus sub-items, filling the entire vertical height and requiring a scrollbar within the navigation itself. Excessive top-level navigation items increase time-to-task and prevent users from building a mental map of the system. This is particularly damaging during the first-week experience, when users are still orienting.
Communications module: the strongest UI in the product. Template library with lifecycle tagging (New Lead, Quote, Booking, Pre-Trip), AI tone selection, and a live WhatsApp preview. The 'Draft with AI' integration is well-placed at the point of action. High information density may overwhelm new users arriving from onboarding.
The Communications module shows high visual polish and strong potential for AI-assisted workflows - "Draft with AI" and "Tone" selection are well-placed features that align with EKLA Comms' positioning. The main risk here is information density for new users arriving from a long onboarding flow. The simultaneous visibility of multiple nav items, dense metric cards, and AI drafting tools may overwhelm before it delights. A focused empty state for new users ("Your first message thread will appear here") would ease the cold start problem.
Holiday Package Bookings: clean tabular view with booking IDs, customer names, package, departure, pax, amount, and payment status. 47 total bookings visible with ₹18.4L revenue this month - but this figure conflicts with the Dashboard's Revenue widget which shows a permanent loading state and never displays this same number.
Leads module: sidebar shows 47 leads, KPI card shows 'Total Leads: 2'. Five blurred loading-skeleton rows appear above the two visible lead records on a fully-loaded page. The conversion funnel at bottom shows 0 wins despite the pipeline showing Qualified and Contacted stages active.
The Leads module is the most ambitious screen I reviewed in NAMA. Multiple views (List, Pipeline, Kanban), multi-dimensional filtering (stage + source + temperature), EKLA intent scoring, and a conversion funnel at the bottom - this is the feature depth that justifies a B2B subscription. But it has the most severe data integrity problem in the product.
The sidebar badge shows 47 leads. The KPI card in the Leads module says "Total Leads: 2." The table shows 2 visible leads plus blurred loading rows. These three data points are simultaneously visible on the same screen and all disagree. For a CRM product, data accuracy is the product. A user who cannot trust the basic count of their lead pipeline cannot trust any metric in the system. This surfaces the second major badge/count inconsistency I found (the first is in Dashboard; similar mismatches exist across Quotations and other modules).
Approximately 5 blurred gray rows appear above the two visible lead records. These are a loading skeleton state, but they persist on a fully-loaded page - not a mid-fetch state. For a data table, a loading skeleton that never resolves is functionally identical to a blank row. It implies data exists that cannot be loaded, without any explanation of why.
The data consistency theme: I found the same sidebar/page count mismatch across Dashboard, Quotations, and Leads. Badge counts contradicting page-level stats is not three separate bugs - it is a systemic issue in how real-time counts are aggregated and cached. A single root-cause fix in the data pipeline will resolve all of them. Prioritise this above any UI work.
Beyond the feature-level issues, I found a set of bugs that cut across surfaces and indicate systemic issues that will harm trust with any user who encounters them. These are not edge cases - several appear on primary navigation paths.
Sidebar shows numbers that don't match page-level KPIs in Dashboard, Leads, and Quotations simultaneously. Requires a shared data pipeline source, not individual fixes.
Revenue (Dashboard), Fulfillment Readiness (Bookings), Map Leads ("Loading…" indefinitely), and Gift Cards all show loading states that never resolve.
A developer comment or placeholder text is visible in the Query Inbox UI subtitle. Any enterprise buyer doing a thorough product eval will catch this immediately.
Core operational workflows produce silent errors. Error 422 (Unprocessable Entity) suggests a validation failure that is surfaced as a generic error without actionable messaging.
The theme toggle updates content areas but leaves the navbar unchanged - a visual inconsistency that makes the dark mode feel half-implemented and reduces trust in the feature.
The Itineraries content area shows an empty state while the section header is populated - two conflicting data states visible simultaneously on the same screen.
Recommendation: Implement a "data health audit" checkpoint before any major release. Automated smoke tests should assert: (a) all sidebar badge counts match their corresponding page-level KPI counts, (b) every stat card resolves within 5 seconds on sample data, (c) no developer text or placeholder copy is visible in the production build. This is a CI/CD pipeline gate, not a manual QA task.
Having mapped issues across all 12 surfaces, I prioritised by business impact rather than implementation effort. These five recommendations address root causes rather than symptoms.
| Priority | Issue | Surface | Impact |
|---|---|---|---|
| P0 - Fix now | Request failed toast on completion screen; data badge mismatches | Onboarding / All | Trust loss at highest-intent moment; corrupts all pipeline KPIs |
| P0 - Fix now | Dead demo video CTA on landing page | Landing Page | Blocks conversion at peak-interest moment |
| P1 - This sprint | Revenue & Fulfillment widgets permanently loading | Dashboard / Bookings | Directly contradicts product's core P&L visibility promise |
| P1 - This sprint | Groq API key required mid-onboarding (no trial fallback) | Onboarding Step 5 | Blocks non-technical users from experiencing EKLA |
| P2 - Next sprint | Fake-looking testimonials and placeholder company names | Landing Page | Active trust destruction for evaluating B2B buyers |
| P2 - Next sprint | Quote-to-Booking conversion trigger missing | Quotations / Bookings | Disconnected pipeline; agents lose deals at handoff |
| P3 - Backlog | Sidebar navigation >14 top-level items with no grouping | All app surfaces | High cognitive load; slow time-to-task for new users |
| P3 - Backlog | Navigation structure inconsistency between pages | Landing Page / Pricing | Disorientation during purchase evaluation |
Complete issue register with severity scores, the surfaces reviewed, and the PM lens applied to each evaluation.
| Surface | Primary User Goal | Key Findings |
|---|---|---|
| Landing Page | Evaluate NAMA and sign up or book a demo | Dead demo CTA, placeholder testimonials, nav inconsistency, low contrast headings |
| Login / Sign-up | Create an account and choose a plan | Critical contrast failure on plan labels; high-friction single-screen signup form |
| Onboarding Step 2 | Select agency type / persona | Circle icons signal single-select for a multi-select interaction |
| Onboarding Step 3 | Set up invoice header | No logo upload, low contrast helper text, non-interactive progress bar |
| Onboarding Step 4 | Configure lead channels | Active-looking toggles that do not connect anything; no Facebook Lead Ads option |
| Onboarding Step 5 | Activate EKLA AI | Critical: requires leaving app to get Groq API key with no trial fallback |
| Onboarding Step 8 | Complete setup and enter the app | Critical: "Request failed" toast on completion; EKLA and channels shown as incomplete |
| Dashboard | See pipeline health and urgent actions | Double-rendered widget; Revenue permanently loading; badge count mismatch |
| Quotations | Manage and track all quotes | No date filter, no versioning, naming inconsistency ("Quotations" vs "Quotes") |
| Bookings | Track confirmed bookings and fulfillment | Fulfillment Readiness permanently loading; no Quote-to-Booking conversion trigger |
| Leads | Manage and nurture the sales pipeline | KPI count (2) contradicts sidebar count (47); loading skeleton rows on a loaded page |
| Holiday Packages | Manage inventory and publish packages | 14+ sidebar items with no grouping; passive onboarding state; non-contextual EKLA placement |
| Severity | Definition | Count Found | Examples |
|---|---|---|---|
| Critical | Directly causes conversion loss, trust loss, or renders a core workflow unusable | 5 issues | Dead demo CTA, "Request failed" on completion, data count mismatch, Revenue widget stuck, Groq key required mid-onboarding |
| Major | Significant friction that increases drop-off, reduces task completion, or contradicts product claims | 12 issues | High-friction signup form, circle icon for multi-select, non-functional lead channel toggles, 14+ sidebar items, no Quote-to-Booking conversion |
| Minor | Polish and quick wins that, if fixed, improve professionalism and legibility without major engineering effort | 13+ issues | Inconsistent CTA labelling, naming inconsistencies, low-contrast helper text, FAQ affordance, progress bar thickness |
| EKLA Persona | Current Placement | Gap Identified | Recommendation |
|---|---|---|---|
| EKLA Sales (Closer) | Lead panel intent scoring; "Ask EKLA" button | Reactive only; no proactive follow-up nudge on stale SENT quotes | Auto-surface "Quote hasn't had a response in 48h - want me to follow up?" on SENT quote records |
| EKLA Pricing (Strategist) | Quote builder (margin-aware drafting) | No visible margin comparison across quote versions; no pricing trend insight | Surface "Your margin on this destination is 3% below your average - adjust?" during quote creation |
| EKLA Ops (Operator) | Itinerary creation workflow | Pipeline handoff between Quotations and Bookings is manual with no EKLA assist | Add "Convert to Booking with EKLA" as a one-tap action on accepted quotes |
| EKLA Comms (Communicator) | Communications module (draft with AI, tone selection) | No Facebook Lead Ads integration despite high Meta lead volume in target market (Indian travel agencies) | Add Facebook Lead Ads as a lead channel option; EKLA Comms should auto-qualify and respond to Meta leads |