const { useState: useStateHow, useEffect: useEffectHow } = React; const STEPS = [ { n: '01', title: 'We train the agent on your business', detail: "We feed the AI everything — your menu, services, pricing, policies, FAQs, booking rules. The agent speaks with your brand's voice and only says what's true about your business.", visual: 'training', }, { n: '02', title: 'Your calls go to the AI', detail: 'Plug in your existing number or get a dedicated one. Every inbound call goes straight to the agent — no ringing, no hold music, instant answer.', visual: 'routing', }, { n: '03', title: 'AI handles the full conversation', detail: 'The agent greets, understands, and resolves — orders, bookings, FAQs, complaints — in a natural conversational tone. Urdu and English both supported.', visual: 'conversation', }, { n: '04', title: 'Complex calls transfer to a human', detail: "If the AI hits something it can't resolve, it smoothly transfers to your team — live, in real time. No awkward handoffs, no frustrated customers.", visual: 'handoff', }, { n: '05', title: 'Everything logs to your dashboard', detail: 'Every call recorded and transcribed. You see who called, what was discussed, what action was taken, and what needs follow-up. Full visibility, always.', visual: 'dashboard', }, ]; function How() { const isMobile = useMediaQuery('(max-width: 768px)'); const [active, setActive] = useStateHow(0); // Auto-advance useEffectHow(() => { const t = setInterval(() => setActive((a) => (a + 1) % STEPS.length), 4500); return () => clearInterval(t); }, []); return (
02 — HOW IT WORKS

Five steps. Forty-eight hours.
Live on your line.

STEP {String(active + 1).padStart(2, '0')} / 05
{/* Steps list */}
{STEPS.map((s, i) => ( ))}
{/* Visual */}
); } function StepVisual({ active, isMobile }) { const visuals = { 0: , 1: , 2: , 3: , 4: , }; return (
{visuals[active]}
); } function VLabel({ children }) { return
{children}
; } function VCard({ children, style }) { return
{children}
; } function TrainingVisual() { const items = [ { label: 'menu.pdf', size: '2.4 MB', status: 'parsed' }, { label: 'pricing.csv', size: '8 KB', status: 'parsed' }, { label: 'faqs.txt', size: '14 KB', status: 'parsed' }, { label: 'booking-rules.md', size: '6 KB', status: 'training' }, { label: 'brand-voice.md', size: '3 KB', status: 'queued' }, ]; return ( <> KNOWLEDGE BASE · 5 SOURCES
{items.map((it, i) => (
{it.label}
{it.size}
{it.status.toUpperCase()}
))}
▸ Embedding 248 chunks · ETA 38s
); } function RoutingVisual() { return ( <> CALL ROUTING · LIVE {/* Caller */} CALLER +92 312 456 7890 {/* Number */} YOUR NUMBER 021 1234 5678 {/* AI */} AI AxisAgent PICKUP < 0.4s {/* arrows */} {/* labels */} DIAL FORWARD {/* indicators */} RING RELAY {/* metrics */} UPTIME 99.99% PICKUP 0.38s CONCURRENT LANG UR/EN ); } function ConversationVisual() { const lines = [ { s: 'caller', t: 'Bhai, do family pizza aur coke chahiye', lang: 'UR' }, { s: 'agent', t: '✓ Two family pizzas + Coke. Toppings?', lang: 'EN' }, { s: 'caller', t: 'Pepperoni aur chicken tikka, please', lang: 'UR' }, { s: 'agent', t: 'Got it. Delivery to 24 Khayaban-e-Shahbaz?', lang: 'EN' }, { s: 'caller', t: 'Haan, wahi address.', lang: 'UR' }, { s: 'agent', t: 'Total: Rs 3,400. ETA 35 min.', lang: 'EN' }, ]; return ( <> LIVE CONVERSATION · BILINGUAL
{lines.map((l, i) => (
{l.s === 'agent' ? 'AI' : 'C'}
{l.t}
{l.lang} · {(i * 1.2 + 0.4).toFixed(1)}s
))}
{['INTENT: ORDER', 'EXTRACTED: 2 ITEMS', 'PAYMENT: COD', 'STATUS: CONFIRMED'].map((tag) => ( {tag} ))}
); } function HandoffVisual() { return ( <> SMART HANDOFF · ESCALATION DETECTED
⚠ COMPLEX REQUEST 00:42
"I want to dispute three months of charges and speak to your billing manager."
confidence: 0.34 · policy: ESCALATE
Sara Iqbal
BILLING · ON-CALL
Caller context, transcript so far, and detected intent are pre-loaded for Sara before pickup.
TRANSFERRING IN 2.1s · NO HOLD MUSIC
); } function DashboardVisual({ isMobile }) { const cols = '60px 1fr 90px 100px 60px'; const calls = [ { t: '14:02', from: '+92 333 ··· 8821', intent: 'Order', status: 'resolved', dur: '1:48' }, { t: '13:51', from: '+92 312 ··· 4567', intent: 'Booking', status: 'resolved', dur: '2:14' }, { t: '13:44', from: '+92 300 ··· 1102', intent: 'Complaint', status: 'transferred', dur: '0:54' }, { t: '13:30', from: '+92 345 ··· 9988', intent: 'FAQ', status: 'resolved', dur: '0:42' }, { t: '13:18', from: '+92 321 ··· 7733', intent: 'Order', status: 'resolved', dur: '2:01' }, ]; return ( <> DASHBOARD · TODAY
{[ { l: 'CALLS', v: '247', d: '+18%' }, { l: 'RESOLVED', v: '231', d: '93%' }, { l: 'TRANSFERS', v: '16', d: '7%' }, { l: 'AVG TIME', v: '1:42', d: '-12s' }, ].map((m, i) => (
{m.l}
{m.v}
{m.d}
))}
{['TIME','FROM','INTENT','STATUS','DUR'].map((h) => ( {h} ))}
{calls.map((c, i) => (
{c.t} {c.from} {c.intent} {c.status.toUpperCase()} {c.dur}
))}
); } window.How = How;