// ─── STATS BAR ──────────────────────────────────────────────────────────────── function StatsBar() { const stats = [ { val: '94%', label: 'des appels captés', icon: }, { val: '3h', label: 'récupérées / jour', icon: }, { val: '15min', label: 'pour démarrer', icon: }, { val: '24/7', label: 'sans interruption', icon: }, ]; return (
{stats.map(({val,label,icon},i)=>(
{icon}

{val}

{label}

))}
); } window.StatsBar = StatsBar; // ─── PAIN ───────────────────────────────────────────────────────────────────── const PROBLEMS = [ { Icon: Ico.Phone, title: "Des appels qui s'évaporent", stat: "Chaque appel raté, c'est un client offert à la concurrence", desc: "Pendant une révision ou en heure de pointe, personne ne peut décrocher. Le client raccroche. Il retente peut-être — ou appelle directement le garage d'à côté." }, { Icon: Ico.Zap, title: "Un atelier sans cesse interrompu", stat: "Un technicien dérangé perd le fil à chaque fois", desc: "Demande de devis, question sur les horaires, relance pour un rappel… Des appels utiles, certes — mais qui cassent le rythme de l'atelier plusieurs fois par heure." }, { Icon: Ico.Calendar, title: "Des demandes qui tombent à l'eau", stat: "Un devis non suivi, c'est un client silencieusement perdu", desc: "Post-it, notes papier, mémos vocaux : les demandes captées à la volée finissent trop souvent sans suite. Sans mauvaise volonté — juste faute de temps pour les retraiter." }, { Icon: Ico.Clock, title: "Le téléphone s'arrête, pas vos clients", stat: "Un appel en soirée peut valoir plusieurs centaines d'euros", desc: "Le garage ferme à 18h. Les clients, eux, appellent aussi le soir, le week-end, entre deux réunions. Personne pour décrocher. L'opportunité disparaît sans laisser de trace." }, ]; function Pain() { return (
{PROBLEMS.map(({Icon,title,stat,desc},i)=>(
{e.currentTarget.style.transform='translateY(-4px)';e.currentTarget.style.boxShadow='0 20px 50px rgba(0,0,0,0.3),0 0 0 1px rgba(30,115,216,0.25)';}} onMouseLeave={e=>{e.currentTarget.style.transform='translateY(0)';e.currentTarget.style.boxShadow='0 8px 32px rgba(0,0,0,0.2)';}}>

{title}

{desc}

{stat}
))}
); } window.Pain = Pain; // ─── SOLUTION OVERVIEW ──────────────────────────────────────────────────────── function Solution() { const items = [ { Icon: Ico.Phone, text: 'Décroche chaque appel, 24h/24' }, { Icon: Ico.Filter, text: 'Filtre les demandes répétitives' }, { Icon: Ico.Calendar, text: 'Prend les rendez-vous automatiquement' }, { Icon: Ico.Chart, text: 'Résume chaque appel pour votre équipe' }, { Icon: Ico.Shield, text: "Protège votre planning et l'atelier" }, { Icon: Ico.Link, text: 'Se connecte à votre agenda existant' }, ]; return (
{/* Left copy */}
La solution Omnira

Une couche vocale utile,
simple et rassurante.

Omnira ne remplace pas votre accueil. Il l'épargne pour ce qui compte vraiment — les cas complexes, les clients fidèles, les situations qui demandent votre jugement.

{items.map(({Icon,text})=>(
{text}
))}
Voir comment ça marche
{/* Right — visual diagram */}
{/* Call flow diagram */}

Flux d'un appel entrant

{[ { label: 'Appel entrant', sub: 'Client appelle le garage', color: B.border, tc: B.tMuted, icon: }, { label: 'Agent Omnira décroche', sub: 'Immédiatement, sans attente', color: B.blue+'22', tc: B.blue, icon: , active: true }, { label: 'Qualification', sub: 'Motif, infos, type de demande', color: B.cyan+'18', tc: B.cyan, icon: }, { label: 'Traitement automatique', sub: 'RDV, FAQ, hors-horaires', color: B.lcyan+'18', tc: B.lcyan, icon: }, { label: 'Résumé envoyé', sub: 'Votre équipe reçoit l\'essentiel', color: B.bgL, tc: B.tMain, icon: }, ].map(({label,sub,color,tc,icon,active},i,arr)=>(
{icon}

{label}

{sub}

{active &&
IA
}
{i < arr.length-1 &&
} ))}
); } window.Solution = Solution;