← CitasIA

Manual de instalación, uso y venta

De cero a vendiendo. Unos 139 minutos de lectura en total, aunque la instalación la vas a hacer una sola vez y el resto es referencia.

Marcá cada paso a medida que lo hacés: el avance queda guardado en este navegador. ¿Preferís preguntar en vez de leer? El agente de soporte sabe exactamente lo mismo y responde al momento.

Qué compraste y cómo se gana plata con esto

~5 min

Antes de instalar nada, conviene tener claro el modelo: vos instalás el sistema una vez y le vendés el acceso a negocios de tu zona. No vendés horas ni desarrollo: vendés un sistema que ya funciona.

  1. El modelo de negocio en una frase

    Una sola instalación tuya atiende a muchos negocios. Cada negocio entra con su marca, sus servicios, su equipo y su propio número de WhatsApp, y no ve nada de los demás. Vos cobrás una instalación inicial, una mensualidad, o las dos cosas.

  2. Qué cobrar

    Lo que decidas: le cobrás a cada negocio el precio que quieras por el servicio. Un punto de referencia útil es que el sistema le ahorra al negocio el tiempo de atender el teléfono y le recupera turnos que ya daba por perdidos. La conversación de venta más efectiva es mostrarle su propia tasa de ausencias.

  3. Qué NO incluye

    No incluye la cuenta de Supabase, ni la clave de Claude, ni el número de WhatsApp de cada cliente, ni lo que Meta cobra por mensaje. Esos son costos operativos: los de la infraestructura son tuyos y muy bajos; los de WhatsApp los paga cada negocio.

    Ojo con esto

    Decíselo a tu cliente ANTES de cerrar la venta. Que se entere después de que Meta le cobra por mensaje es la forma más rápida de perder la cuenta.

Qué te deja hacer la licencia

~4 min

Vale la pena tenerlo claro antes de salir a vender, porque define cómo podés cobrar y cómo no.

  1. La regla, en una línea

    Podés usar el software para operar tu propio servicio y cobrarles a los negocios que atendés. No podés vender, ceder ni distribuir el software ni su código a terceros.

  2. Lo que sí podés

    Instalarlo en tu infraestructura, personalizarlo sin límite (marca, colores, nombre y código), dar de alta todos los negocios que quieras, cobrarles lo que decidas, y publicar el demo con tu marca.

  3. Lo que no podés

    Venderle el software o el código a otra persona o empresa, entregárselo a un cliente para que lo instale por su cuenta, publicarlo en un repositorio público, o redistribuirlo como producto, plantilla o curso.

    Ojo con esto

    Distribuir el software a terceros termina la licencia de forma inmediata. Es la única condición con esa consecuencia, y existe para que los que compran no terminen compitiendo contra copias de lo que compraron.

  4. Los cinco agentes de nicho

    No hay un agente que se adapta: hay cinco, ya preparados de fábrica, uno por rubro — barbería, estética, consultorio dental, spa y veterinaria. El nicho se elige al dar de alta cada negocio y define cómo atiende: el de veterinaria pregunta qué animal es y por qué lo traen; el de barbería va directo al horario sin interrogar; el dental trata el dolor como urgencia. Podés probar los cinco en el demo.

    Ojo con esto

    El rubro no se cambia después desde Ajustes, a propósito: cambiarlo alteraría cómo el agente atiende a clientes que ya tienen turno. Si un negocio cambia de rubro, conviene darlo de alta de nuevo.

  5. Nicho y personalización no son lo mismo

    El nicho es el oficio y viene de fábrica: cómo se agenda en ese rubro y qué preguntas maneja. La personalización es lo tuyo y la cargás desde el panel para cada negocio: nombre del agente, tono, servicios con sus tiempos y precios, equipo, horarios y respuestas propias. En Ajustes ves las dos cosas: arriba el agente de nicho activo con lo que ya sabe, abajo los campos que completás vos.

  6. Las dos formas de recibir el producto

    Las dos formas se habilitan al cumplirse los 7 días de garantía, y valen lo mismo. Mientras tanto usás el producto desde tu espacio. «Espacio ya listo»: autorizás tu cuenta de GitHub, te creamos un repositorio privado tuyo con el producto adentro y lo publicás en Vercel con un clic — no tocás código ni abrís una terminal. «Carpeta de código»: descargás el ZIP y lo instalás donde quieras con el manual al lado. Podés usar las dos: el ZIP sigue disponible en tu página de acceso aunque hayas elegido el espacio listo.

    Ojo con esto

    GitHub te va a pedir el permiso «repo»: es el mínimo que permite crear un repositorio privado tuyo. Sin él sólo se podrían crear públicos, y el código no puede quedar público.

  7. Si querés devolverlo

    Tenés 7 días desde la compra para pedir la devolución del importe completo, por cualquier motivo y sin dar explicaciones. El pedido se hace desde Hotmart, que es quien cobró y quien devuelve. Es la garantía que Hotmart exige a todos sus productos: no se puede renunciar y nadie te la puede sacar.

    Ojo con esto

    Al pedir el reembolso perdés el acceso a las dos cosas: al espacio funcionando y al código. Por eso el código se habilita recién al cumplirse los 7 días — una vez descargado no hay forma de devolverlo, y escalonar la entrega es lo que permite que la garantía sea de verdad. Pasado el plazo, la compra es definitiva.

  8. Cómo se traduce en tu modelo de cobro

    Cobrás por el servicio: instalación, mensualidad, por uso, o como prefieras. Lo que no hacés es venderle una copia del sistema a un cliente. Si un negocio quiere "quedarse con el software", lo que corresponde es que se compre su propia licencia.

Instalación: de cero a funcionando

~45 min

Son tres piezas: una base de datos (Supabase), una clave de IA (Claude) y un hosting (Vercel u otro). Con calma, la primera vez lleva menos de una hora.

  1. 1. Crear el proyecto de Supabase

    Entrá a supabase.com, creá una cuenta y un proyecto nuevo. Guardá la contraseña de la base que te pide al crearlo: la vas a necesitar y no se puede recuperar después, sólo cambiar. El plan gratuito alcanza para arrancar.

  2. 2. Copiar las credenciales

    En el proyecto, andá a Project Settings → API. Vas a necesitar tres valores: la URL del proyecto, la clave anon (pública) y la clave service_role (secreta).

    Ojo con esto

    La clave service_role salta todas las reglas de seguridad. Nunca la pongas en el navegador, ni en un repositorio público, ni se la mandes a un cliente.

  3. 3. Correr las migraciones

    Copiá .env.example a .env.local y completá los valores. Después corré las migraciones, que crean las tablas.

    cp .env.example .env.local
    npm install
    npm run migrate

    Ojo con esto

    Si al abrir la app ves 'permission denied for table ...', es que faltó la migración 0003_grants.sql. Supabase da permisos automáticamente a lo que se crea desde su editor web, pero no a lo que se crea por conexión directa. Volvé a correr npm run migrate.

  4. 4. Generar las claves de seguridad

    Dos valores que se generan en tu máquina y van en .env.local. El primero cifra los tokens de WhatsApp y las claves de API guardadas; el segundo protege los endpoints programados.

    openssl rand -base64 32   # APP_ENCRYPTION_KEY
    openssl rand -hex 32      # CRON_SECRET

    Ojo con esto

    Si cambiás APP_ENCRYPTION_KEY después de haber conectado WhatsApp, los tokens guardados dejan de poder descifrarse y hay que volver a conectar cada número. Generala una vez y guardala bien.

  5. 5. Opcional: un plan más barato para tus clientes

    Tu instalación viene completa y no tenés que tocar nada. Si querés vender dos niveles de precio, levantá una SEGUNDA instalación con el modo reducido: apaga métricas, clientes, automatizaciones y lista de espera, y se la das a quien no necesita esa parte. Es el mismo código con una variable distinta.

    NEXT_PUBLIC_PRODUCT_MODE=reducido

    Ojo con esto

    En tu instalación principal dejá esa variable VACÍA. Si queda puesta por error, Métricas y Clientes devuelven 404 y parece que faltara medio producto — por eso el panel muestra un aviso arriba de todo cuando el modo reducido está activo, y lo dice también en el log al arrancar.

  6. 6. Levantarlo

    Con npm run dev lo probás en tu máquina. Para publicarlo, subilo a Vercel: importás el repositorio, pegás las mismas variables de entorno y listo.

    npm run dev
  7. 7. Programar las tareas automáticas

    Los recordatorios y las automatizaciones necesitan un cron. En Vercel ya viene configurado en vercel.json. En otro hosting, apuntá un cron externo a los dos endpoints cada 10 minutos.

    curl -H "Authorization: Bearer $CRON_SECRET" https://YOUR-DOMAIN/api/cron/reminders
    curl -H "Authorization: Bearer $CRON_SECRET" https://YOUR-DOMAIN/api/cron/automations

    Ojo con esto

    Sin el cron, la agenda funciona pero no sale ningún recordatorio. Es el error más común y el más difícil de notar, porque nada falla visiblemente.

Dar de alta tu primer negocio

~15 min

Con el sistema andando, cada cliente tuyo se da de alta en minutos. Podés hacerlo vos y entregarle el acceso listo.

  1. 1. Entrar al panel

    Abrí la app y pedí el link de acceso con tu correo. Llega un enlace, hacés clic y entrás. No hay contraseñas.

  2. 2. Crear el negocio

    Elegís nombre, rubro, zona horaria e idioma. El sistema carga solo un horario de lunes a sábado y tres servicios típicos del rubro, para que la agenda no nazca vacía. Todo se cambia después.

  3. 3. Ajustar servicios y equipo

    Cargá los servicios reales con su duración y precio, y las personas que atienden. Cada una tiene su propia agenda y el sistema impide que se le crucen dos citas.

    Ojo con esto

    En rubros con limpieza entre clientes (dental, spa) cargá el tiempo de limpieza en 'Limpieza después'. Si lo dejás en cero, el agente va a ofrecer turnos pegados uno tras otro.

  4. 4. Completar 'Sobre el negocio'

    Es el texto que el agente usa para responder dudas. Poné todo lo que un cliente podría preguntar: formas de pago, estacionamiento, si atienden niños, promociones vigentes. Cuanto más completo, menos veces el agente tiene que decir que no sabe.

  5. 5. Cargar la clave de Claude

    En Ajustes va la clave de API de Claude del negocio. Se guarda cifrada. Cada negocio usa la suya, así el consumo de IA lo paga quien lo usa.

  6. 6. Probarlo sin gastar nada

    Andá a 'Probar el agente'. Es el agente real contra la agenda real, con el envío simulado. Reservá, reagendá y cancelá desde ahí antes de conectar ningún número.

Conectar el WhatsApp de un cliente

~40 min

Es el paso que más intimida y el que más conviene entender bien. Hay dos caminos y podés elegir según cuánto apure el cliente.

  1. Antes de empezar: qué cobra Meta

    El sistema usa la API oficial de WhatsApp Business. Meta cobra por mensaje de plantilla enviado, según su tarifa vigente por país. Cuando el cliente final escribió en las últimas 24 horas, la ventana de servicio está abierta y el sistema manda texto libre, que no se cobra como plantilla. Ese costo lo paga el negocio, no vos.

    Ojo con esto

    Desde enero de 2026 Meta prohíbe los bots de IA de propósito general sin un foco definido. Este agente es específico de reservas de ese negocio, así que cumple. No lo reconviertas en un asistente genérico: es motivo de bloqueo del número.

  2. Camino A — Meta oficial (recomendado)

    Una vez para toda tu instalación: creás una cuenta de Meta Business, una App en developers.facebook.com con el producto WhatsApp, y configurás el Embedded Signup. Eso te da tres valores (META_APP_ID, META_APP_SECRET, META_CONFIG_ID) que ponés en el entorno. No se repite por cliente.

  3. Camino A — después, por cada cliente

    En el panel del negocio, WhatsApp → 'Conectar con Meta'. Se abre el popup de Meta, el dueño elige o crea su cuenta de WhatsApp Business, registra su número y lo verifica por SMS. Al cerrarse, queda conectado. No copiás ni pegás ningún token.

  4. Camino B — 360dialog (el rápido)

    Si no querés crear una App de Meta ni esperar la verificación del negocio, 360dialog es un proveedor autorizado: te da una API key por número. La pegás en el panel y quedás conectado en minutos. Cuesta un poco más por conversación.

  5. La URL del webhook

    Es una sola para toda tu instalación, no una por cliente. En la configuración del webhook de Meta poné esta URL y el mismo valor que tengas en META_VERIFY_TOKEN.

    https://YOUR-DOMAIN/api/whatsapp/webhook

    Ojo con esto

    El identificador del número viene en cada mensaje, y por eso el sistema sabe a qué negocio pertenece. No configures una URL distinta por cliente: no hace falta y complica todo.

  6. Las 7 plantillas

    Los mensajes que salen fuera de la ventana de 24 horas tienen que ser plantillas aprobadas por Meta. Son dos para los recordatorios y cinco para las automatizaciones. Los nombres exactos y los textos sugeridos están en el panel: WhatsApp y Automatizaciones. Copialos, mandalos a aprobar y esperá — normalmente tardan horas.

    cita_recordatorio_24h
    cita_recordatorio_2h
    encuesta_satisfaccion
    pedido_resena
    rescate_no_show
    turno_liberado
    alerta_cliente_disconforme

    Ojo con esto

    Los nombres tienen que coincidir exactamente. Si creás la plantilla con otro nombre, el envío falla en silencio y queda registrado como fallido en la base.

Publicarlo y salir a vender

~20 min

Ya tenés el producto andando. Ahora la parte que decide si esto te devuelve la inversión.

  1. Publicá tu propio demo

    El producto incluye las mismas vitrinas que probaste antes de comprar, en /demo. Sembrá el negocio de demostración, publicalo con tu marca y usalo como argumento de venta: que el cliente le escriba al agente y vea la cita aparecer.

    npm run seed:demo
  2. A quién venderle primero

    A los negocios donde el turno se pierde caro: consultorios dentales, estéticas y spas. Un no-show en una barbería cuesta el precio de un corte; en un consultorio cuesta la consulta entera y una hora de sillón vacío.

  3. El argumento que mejor funciona

    Preguntale cuánta gente le falta por semana. Casi todos lo saben de memoria y les duele. Después mostrale en el demo el panel de métricas con las ausencias recuperadas. El producto se vende solo cuando el número es de ellos.

  4. Cómo cobrar

    Lo más habitual es una instalación inicial más una mensualidad. La instalación cubre tu tiempo de alta y configuración; la mensualidad, el hosting y tu disponibilidad. Vos definís los montos.

  5. Qué prometer y qué no

    Prometé lo que el sistema hace: atiende WhatsApp, agenda sin choques, recuerda, mide y recupera ausencias. No prometas que Meta aprueba las plantillas en un plazo fijo ni que no habrá costos de mensajería: eso no depende de vos.

Cuando algo no anda

~10 min

Los tropiezos más comunes, con la causa real y no con el síntoma.

  1. 'permission denied for table ...'

    Faltó la migración de permisos. Supabase concede permisos automáticamente a las tablas creadas desde su editor web, pero no a las creadas por conexión directa. Corré npm run migrate de nuevo: la migración 0003 los declara explícitamente.

  2. El agente responde pero no reserva

    Casi siempre es que el negocio no tiene horarios de atención cargados, o el servicio no tiene ningún profesional que lo preste. Revisá Horarios y Equipo. El agente nunca inventa un turno: si el motor dice que no hay, no hay.

  3. No llegan los recordatorios

    Tres causas, en orden de frecuencia: el cron no está configurado; las plantillas no están aprobadas en Meta; o el nombre de la plantilla no coincide exactamente. Mirá la tabla de recordatorios: los fallidos guardan el motivo.

  4. Meta rechaza los envíos

    Si el error menciona la ventana de 24 horas, el mensaje salió como texto libre cuando debía ser plantilla. Si menciona el token, la conexión se venció o se revocó: reconectá el número desde el panel.

  5. El agente dice que no sabe algo del negocio

    Es lo correcto: está hecho para no inventar. Completá el campo 'Sobre el negocio' y las preguntas frecuentes en Ajustes con esa información, y deja de pasar.

  6. Dos clientes reservaron el mismo horario

    No puede pasar: la base de datos tiene una restricción que lo impide a nivel de motor, no sólo en la aplicación. Si ves dos citas superpuestas, van a ser de profesionales distintos o alguna está cancelada.