/* global React, Icon, BrandMark */ const { useState, useEffect, useRef } = React; /* ============ NAV ============ */ function Nav({ onOpenMenu }) { const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 12); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return ( ); } /* ============ HERO ============ */ function Hero() { const conversation = [ { from: "user", text: "Hola, ¿tienen turno para mañana?" }, { from: "bot", text: "¡Hola! Sí, tenemos disponible mañana a las 10:00 y a las 15:30. ¿Cuál te queda mejor?" }, { from: "user", text: "Las 10 está perfecto, gracias!" }, ]; const [shown, setShown] = useState(0); const [typing, setTyping] = useState(false); useEffect(() => { let t; if (shown < conversation.length) { const isBot = conversation[shown].from === "bot"; if (isBot) { setTyping(true); t = setTimeout(() => { setTyping(false); setShown(s => s + 1); }, 1400); } else { t = setTimeout(() => setShown(s => s + 1), 1100); } } else { t = setTimeout(() => { setShown(0); }, 4500); } return () => clearTimeout(t); }, [shown]); return (
Automatización con inteligencia artificial

Tu negocio se atiende solo. Vos recuperás tu tiempo.

Creamos agentes de IA que responden a clientes, generan pedidos y gestionan tareas repetitivas, las 24 horas del día.

Ver cómo funciona Casos reales
+2 hs
recuperadas por día en atención al cliente
24/7
respuestas automáticas sin intervención humana
1 semana
tiempo estimado de implementación
Turno confirmado Mañana · 10:00
Recordatorio enviado WhatsApp · automático
agente.butia.ai · WhatsApp
{conversation.slice(0, shown).map((m, i) => (
{m.from === "bot" && (
ButIÁ Agent
)} {m.text}
))} {typing && (
ButIÁ Agent
)}
whatsapp calendar recordatorio
); } /* ============ PROBLEMA ============ */ function Problema() { const items = [ { ic: , t: "Responder mensajes repetidos", d: "“¿Tienen turno para mañana?”, “¿Cuánto cuesta?”, “¿Están abiertos?” — todo el día, todos los días.", stat: "≈ 90 min/día en un negocio promedio" }, { ic: , t: "Cargar pedidos manualmente", d: "Cada pedido que llega por WhatsApp hay que transcribirlo a mano en el sistema o en una planilla.", stat: "≈ 45 min/día en comercios con volumen medio" }, { ic: , t: "Recordatorios y seguimientos", d: "Avisar turnos, confirmar asistencia, enviar facturas o presupuestos — tareas que se hacen una por una.", stat: "≈ 30 min/día que se pueden eliminar por completo" }, ]; return (
El problema

¿Cuánto tiempo perdés en esto?

Las tareas chicas se acumulan. Si sumás los minutos de cada día, son horas que no estás dedicando a lo que de verdad importa en tu negocio.

{items.map((it, i) => (
{it.ic}

{it.t}

{it.d}

{it.stat}
))}
); } /* ============ RUBROS ============ */ function Rubros() { const items = [ { tag: "Clínicas y salud", t: "El profesional atiende al paciente, no al teléfono.", d: "Agente que responde consultas frecuentes, agenda turnos y envía recordatorios automáticos por WhatsApp.", save: "2 a 3 horas diarias", kind: "de administración" }, { tag: "Comercios", t: "Pedidos que se cargan solos.", d: "El agente recibe pedidos por WhatsApp, los registra automáticamente y responde preguntas de stock y precios sin que nadie mire el teléfono.", save: "1 a 2 horas diarias", kind: "en toma de pedidos" }, { tag: "Servicios", t: "Plomería, electricidad, estética y más.", d: "Captura solicitudes, agenda visitas o citas, y envía presupuestos automáticos según las respuestas del cliente a un formulario conversacional.", save: "45 min a 1 h 30 min", kind: "por día" }, ]; return (
Rubros

¿En qué tipo de negocio aplicamos esto?

Trabajamos con negocios chicos y medianos que reciben muchos mensajes y quieren dejar de gastar el día en tareas repetidas.

{items.map((it, i) => (
{it.tag}

{it.t}

{it.d}

Ahorro estimado {it.save} {it.kind}
))}
); } /* ============ CASOS EN PRODUCCIÓN ============ */ function Casos() { const items = [ { tag: "Sector automotriz", t: "Asesor virtual para concesionaria.", d: "Atiende consultas sobre vehículos disponibles, precios y opciones de financiación. Califica al interesado, coordina test drives y deja al vendedor solo con los leads que vale la pena llamar.", stat: { num: "24/7", lbl: "primer contacto resuelto" }, stack: ["whatsapp", "catálogo", "agenda"], feature: true, }, { tag: "Venta y distribución", t: "Tomador de pedidos a domicilio.", d: "Recibe pedidos por WhatsApp, calcula el total según cantidad y zona de entrega, confirma horario y registra todo en una planilla lista para el repartidor.", stat: { num: "~80%", lbl: "pedidos sin intervención" }, stack: ["whatsapp", "sheets", "ruteo"], }, { tag: "Atención ciudadana", t: "Mesa de entrada para organismo público.", d: "Responde consultas frecuentes, deriva trámites al área correspondiente y registra reclamos vecinales con datos estructurados, evitando que se pierdan en una bandeja de entrada.", stat: { num: "Piloto", lbl: "validación con usuarios reales" }, stack: ["whatsapp", "tickets", "derivación"], status: "En fase de testeo", }, { tag: "ONG / Tercer sector", t: "Banco de préstamo de artículos ortopédicos.", d: "Web institucional y sistema de stock para una organización social que presta sillas de ruedas, muletas, andadores y otros equipos. El equipo registra préstamos y devoluciones directamente en la web, y el inventario queda siempre al día sin planillas paralelas, con visualización en tiempo real.", stat: { num: "100%", lbl: "trazabilidad de cada préstamo" }, stack: ["web", "inventario", "préstamos"], link: { href: "https://rotarylascano.org", label: "rotarylascano.org" }, }, ]; return (
En producción

Agentes que ya están funcionando.

Una muestra de proyectos en operación. Mantenemos en reserva los nombres de los clientes, pero el alcance es real.

{items.map((c, i) => (
{c.tag} {c.status && {c.status}}

{c.t}

{c.d}

{c.stack.map(s => ( {s} ))}
{c.stat.num} {c.stat.lbl} {c.link && ( {c.link.label} )}
))}
); } /* ============ SERVICIOS ============ */ function Services() { const items = [ { n: "01", ic: , t: "Agente de atención al cliente", d: "Responde preguntas frecuentes, filtra consultas y escala solo lo que realmente necesita atención humana." }, { n: "02", ic: , t: "Flujos de automatización", d: "Conectamos WhatsApp, email, formularios y tu sistema de gestión para que todo fluya sin intervención manual." }, { n: "03", ic: , t: "Apps y webs con IA integrada", d: "Desarrollamos herramientas digitales a medida, desde paneles internos hasta sitios con asistentes inteligentes." }, ]; return (
Servicios

Qué construimos para vos.

Empezamos por lo que más duele y crecemos desde ahí. Sin paquetes infinitos: tres frentes claros que cubren la mayoría de las necesidades.

{items.map((c) => (
{c.n}
{c.ic}

{c.t}

{c.d}

))}
); } /* ============ PROCESS ============ */ function Process() { const steps = [ { n: "01", ic: , t: "Diagnóstico", d: "Entendemos tu flujo actual y dónde se pierde el tiempo." }, { n: "02", ic: , t: "Propuesta", d: "Te mostramos qué automatizar y cómo, con plazos claros." }, { n: "03", ic: , t: "Implementación", d: "Construimos en aproximadamente una semana, con visibilidad total." }, { n: "04", ic: , t: "Soporte", d: "Te acompañamos los primeros 30 días para ajustar y mejorar." }, ]; return (
Proceso

De idea a agente productivo en cuatro pasos.

Trabajamos cerca, de forma simple. Una conversación inicial alcanza para arrancar.

{steps.map(s => (
{s.ic}
{s.n}

{s.t}

{s.d}

))}
); } /* ============ CTA ============ */ function Cta() { return (
Hablemos

¿Cuántas horas estás perdiendo esta semana?

Una llamada de 20 minutos alcanza para saberlo. Sin compromiso.

o escribinos al +598 98 73 73 72
); } /* ============ FOOTER ============ */ function Footer() { return ( ); } /* ============ MOBILE MENU ============ */ function MobileMenu({ open, onClose }) { return ( ); } /* ============ ROOT ============ */ function App() { const [menuOpen, setMenuOpen] = useState(false); useEffect(() => { const els = document.querySelectorAll(".reveal"); if (!("IntersectionObserver" in window)) { els.forEach(e => e.classList.add("visible")); return; } const io = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add("visible"); io.unobserve(e.target); } }); }, { threshold: 0.12 }); els.forEach(e => io.observe(e)); return () => io.disconnect(); }, []); return ( <>