// IndustrySwitcher.jsx — pestañas que reescriben el chat según industria const IndustrySwitcher = () => { const industries = [ { key: 'clinicas', label: 'Clínica', icon: 'stethoscope', brand: 'Clínica Dental Sonrisa', script: [ { who: 'them', text: '¡Hola! Soy el asistente de Clínica Dental Sonrisa 🦷' }, { who: 'us', text: 'Tengo dolor de muela ¿hay cita hoy?' }, { who: 'them', text: 'Sí. Dra. Vargas tiene 4pm o 6pm. ¿Cuál preferís?' }, { who: 'us', text: '4pm' }, { who: 'them', text: 'Reservada ✓ Te llegó WhatsApp con dirección + recordatorio.' }, ], }, { key: 'restaurantes', label: 'Restaurante', icon: 'utensils-crossed', brand: 'Sazón Tica · Cartago', script: [ { who: 'them', text: '¡Pura vida! Soy el asistente de Sazón Tica 🍴' }, { who: 'us', text: 'Mesa para 4 hoy 8pm' }, { who: 'them', text: 'Tengo terraza o salón. ¿Preferencia?' }, { who: 'us', text: 'Terraza' }, { who: 'them', text: 'Listo ✓ Mesa T-3, 8pm. Cancelación libre hasta las 6pm.' }, ], }, { key: 'servicios', label: 'Servicios', icon: 'briefcase', brand: 'Estudio Legal Soto', script: [ { who: 'them', text: 'Hola, soy el asistente del Estudio Legal Soto.' }, { who: 'us', text: 'Necesito asesoría laboral, ¿costo?' }, { who: 'them', text: 'Consulta inicial: ₡35,000 (1h). Si contratás, se descuenta. ¿Agendamos?' }, { who: 'us', text: 'Sí, mañana en la tarde' }, { who: 'them', text: 'Mañana 3pm con Lic. Soto ✓ Te envío Zoom + factura proforma.' }, ], }, { key: 'comercios', label: 'Comercio', icon: 'shopping-bag', brand: 'Boutique NaturaFy', script: [ { who: 'them', text: '¡Hola! Asistente de NaturaFy 🛍️ ¿Buscás algo?' }, { who: 'us', text: '¿Tienen el sérum de vitamina C en stock?' }, { who: 'them', text: '¡Sí! ₡18,500. Te lo aparto o lo llevamos hoy. ¿SINPE o tarjeta?' }, { who: 'us', text: 'SINPE, envío a Curridabat' }, { who: 'them', text: 'Total ₡21,500 (envío ₡3,000). Te paso el SINPE ahora 📲' }, ], }, ]; const [active, setActive] = React.useState('clinicas'); const current = industries.find(i => i.key === active); const [shown, setShown] = React.useState([]); React.useEffect(() => { setShown([]); let cancelled = false; const play = async () => { for (let i = 0; i < current.script.length; i++) { await new Promise(r => setTimeout(r, i === 0 ? 200 : 1000)); if (cancelled) return; setShown(s => [...s, current.script[i]]); } }; play(); return () => { cancelled = true; }; }, [active]); return (
Demo por industria

Tocá una industria · mirá cómo cambia el bot.

No es un chatbot genérico. Cada landing trae su propio script, su tono y sus integraciones. Probá las 4.

{industries.map(it => ( ))}
{current.brand}

{active === 'clinicas' && 'Citas que se agendan solas, recordatorios automáticos.'} {active === 'restaurantes'&& 'Reservas sin llamadas, mesas siempre confirmadas.'} {active === 'servicios' && 'Cotizaciones rápidas, leads que llegan calientes.'} {active === 'comercios' && 'Catálogo en línea, pagos por SINPE en segundos.'}

    {active === 'clinicas' && <>
  • Sincroniza con Google Calendar
  • Recordatorio 24h antes por WhatsApp
  • Reagendar sin llamar a recepción
  • } {active === 'restaurantes' && <>
  • Reservas + menú digital + delivery
  • Avisos de mesa lista en tiempo real
  • Cero overbooking, cero llamadas
  • } {active === 'servicios' && <>
  • Califica leads antes de tu agenda
  • Envía Zoom + factura proforma solo
  • Integra con tu CRM o Notion
  • } {active === 'comercios' && <>
  • Stock en vivo, sin sobreventas
  • Pagos SINPE / tarjeta integrados
  • Recupera carritos abandonados
  • }
Hablar de mi {active}
9:41
{current.brand}
en línea · 24/7
{shown.map((b, i) => (
{b.text}
))} {shown.length < current.script.length && (
)}
Escribir mensaje…
); }; window.IndustrySwitcher = IndustrySwitcher;