--- title: El modelo de agencia de automatización con IA: qué lo hace funcionar de verdad description: Construir el agente toma una tarde. Conectar el WhatsApp de tu cliente es lo que mata el margen. El modelo de negocio, la aritmética, y el paso de onboarding que decide si escala. date: 2026-08-11 author: Victor Villalobos locale: es source: https://www.zavu.dev/es/blog/ai-automation-agency tags: AI Agents, Agencias, Negocio, WhatsApp --- # El modelo de agencia de automatización con IA: qué lo hace funcionar de verdad Hay una versión del pitch de agencia de automatización con IA que es mayormente cierta, y otra que es mayormente humo, y lo que las separa es un paso poco glamoroso en el medio. La parte cierta: hoy puedes construir un agente de IA funcionando para un cliente en una tarde. Eso es genuinamente nuevo. Hace dos años ese mismo agente era un proyecto de dos meses. La parte que ningún curso incluye: después de construirlo, alguien tiene que conectar el WhatsApp de ese cliente, y ahí se va el cronograma. Verificación de Meta Business, un número que no esté ya en la app común, un webhook, aprobación de templates. Tres semanas de ping pong de correos con un cliente que perdió la contraseña de un Business Manager que le creó su agencia anterior. Construir en un día, hacer onboarding en tres semanas. Esa proporción es todo el negocio, y es la razón por la que tantas de estas agencias se estancan en cuatro clientes. ## Qué es realmente una agencia de automatización con IA Sácale el branding y es un integrador de sistemas para una categoría nueva de sistema. Tomas un proceso de negocio que hoy corre sobre una persona leyendo mensajes, y reemplazas la parte rutinaria con un agente que lee los mismos mensajes y llama a los mismos sistemas internos. El trabajo no es entrenar modelos. Es: - Descubrir qué proceso vale la pena automatizar, que es una conversación de negocio. - Escribir el prompt y las reglas, que se parece más a redactar una descripción de cargo que a programar. - Cablear las tools a los sistemas que el cliente ya tiene, que es integración normal. - Ponerlo en el canal que los clientes de tu cliente ya usan. - Quedarte para arreglarlo cuando llegue la realidad. Los dos últimos son donde las agencias ganan o pierden, y ninguno es glamoroso. ## Los tres modelos de ingreso No son excluyentes, y casi todas las agencias terminan corriendo dos. **Fee por proyecto.** Precio fijo por construir y lanzar un agente. Limpio, fácil de vender, y se acaba. El riesgo es el alcance: un agente cuyas tools tocan un ERP legado no es el mismo proyecto que uno que responde desde un PDF, y un solo precio para ambos es cómo pierdes un trimestre. **Retainer.** Mensual, cubriendo hosting, monitoreo, ajuste de prompts y cambios. Número más chico, mejor negocio. La versión honesta de esta línea es que los agentes necesitan mantenimiento: la política de devoluciones de tu cliente cambia, la API de un proveedor se mueve, los clientes empiezan a preguntar algo que nadie anticipó. **Reventa.** Tú tienes la cuenta de la plataforma, tu cliente te paga un monto mensual que incluye su consumo, y te quedas con la diferencia. Este es el que compone, y es el que tiene la trampa operativa: si no puedes ver el gasto por cliente, un broadcast desbocado de un cliente se come el margen de los otros nueve. Un ejemplo con la aritmética a la vista, en vez de un múltiplo prometido. Digamos que le cobras a un cliente USD 400 al mes por un agente de soporte en WhatsApp. Tus costos directos son el plan de la plataforma, los tokens del modelo y los cargos por mensaje de Meta. En Zavu, Pro son USD 20 al mes e incluye USD 20 de crédito de uso; WhatsApp se cobra a las tarifas de Meta pasadas a costo, sin fee de plataforma por conversación, y puedes correr el agente con tu propia key de OpenAI o Anthropic a costo. Para un cliente con unos miles de conversaciones al mes, el costo directo son decenas de dólares, no cientos. El número que decide si esa diferencia sobrevive no está en esa lista. Es cuántas horas gastaste en el onboarding. ## El muro del onboarding Este es el paso que decide si una agencia hace cuatro clientes o cuarenta. Para poner un agente en el WhatsApp de un cliente, el negocio del cliente tiene que estar conectado a una WhatsApp Business Account, y solo el cliente puede autorizar eso. Lo que significa, por la vía manual: 1. Le pides acceso a su Meta Business Manager. 2. No saben qué es eso, o el login es de una persona de marketing que ya no trabaja ahí. 3. Te agregan, con el rol equivocado. 4. El número que quieren ya está registrado en la app de WhatsApp en el teléfono de alguien. 5. La verificación de negocio pide documentos que nadie en la sala tiene. 6. En algún punto de todo esto pasan dos semanas, y no has facturado nada. Multiplica por cada cliente. Esto no es un problema de tecnología, es un problema de permisos, y es por eso que "te construimos el agente esta semana" se convierte calladamente en "lanzamos el mes que viene". ## El link que lo resuelve La solución es dejar de estar en el medio. Le mandas al cliente un link. Lo abre, autoriza con Meta en su propia cuenta, y el sender conectado aparece en tu proyecto. ```ts import Zavudev from "@zavudev/sdk" const zavu = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY }) const { invitation } = await zavu.invitations.create({ clientName: "Clinica Andes", clientEmail: "ops@clinicaandes.cl", connectionType: "whatsapp_waba", expiresInDays: 14, allowedPhoneCountries: ["CL"], }) // Le mandas invitation.url al cliente. Ese es todo tu onboarding. ``` Nunca tocas su Business Manager. Nunca te mandan una contraseña. Cuando terminan, la invitación pasa a `completed` y trae el `senderId` más `connectedAccount` con el número y el nombre verificado que quedó conectado, así tu sistema sabe que el cliente está vivo sin que nadie revise a mano. Suscríbete a `invitation.status_changed` y todo el pipeline se vuelve visible: `pending` al enviarlo, `in_progress` cuando empiezan, `completed` cuando funciona, `failed` cuando no. Ese último es el útil. `failed` trae un `failureReason` sobre el que puedes actuar en vez de adivinar: | `failureReason` | Qué pasó realmente | Qué decirle al cliente | |---|---|---| | `fb_cancelled` | Cerraron el diálogo de Meta | No se rompió nada, el link sigue sirviendo | | `fb_not_authorized` | Negaron un permiso | Tienen que aceptarlos todos | | `signup_abandoned` | Empezaron y no terminaron | Normalmente trabados en verificación de negocio | | `meta_no_pages` | No administran ninguna Página de Facebook | Solo para conexiones de Página, tienen que crear una | Una invitación fallida sigue usable, así que "prueba el link de nuevo" es una respuesta real y no una excusa. Dos cosas que conviene saber antes de montar un proceso sobre esto. **Una invitación conecta un canal**: para hacer onboarding de un cliente en WhatsApp y en su Página de Facebook, creas dos invitaciones, y cada una se completa en su propio sender. Y para Páginas de Facebook en particular, **una Página solo puede estar conectada a un proyecto de Zavu a la vez**, así que si heredas un cliente de otra agencia, conectar su Página te la trae a ti y desconecta la anterior. Ese es el comportamiento que quieres al ganar una cuenta y el que hay que advertir cuando un cliente está probando dos proveedores al mismo tiempo. ## Ver cada cliente por separado El modelo de reventa muere calladamente cuando no puedes responder "cuánto me costó el cliente siete el mes pasado". Las sub-cuentas son la primitiva para eso: una por cliente, cada una con sus propias API keys y con un tope de gasto. ```ts const { subAccount } = await zavu.subAccounts.create({ name: "Clinica Andes", externalId: "crm_8842", creditLimit: 25000, // en centavos, o sea USD 250 }) // La API key se devuelve una sola vez, al crearla. Guárdala ahora. ``` Tres cosas que te compra esto. **El tope se aplica, no es un aviso.** Cuando una sub-cuenta llega a su `creditLimit`, sus mensajes se bloquean. Un cliente que importa una lista de 40.000 filas y le da a enviar no puede gastarse tu margen, porque el techo es real. **El gasto es atribuible.** `zavu.subAccounts.getBalance(id)` devuelve el `totalSpent` de ese cliente junto al tope, que es lo que necesitas para facturar, y lo que necesitas para notar que el consumo del cliente tres se triplicó antes de la renovación y no después. **La facturación queda en un solo lugar.** Los cargos caen en el balance del equipo padre, así que recargas una vez y todos los clientes consumen de ahí. Tus clientes nunca ven una factura de la plataforma, que es justamente el punto de la reventa. Pon en `externalId` como sea que tu CRM llame a ese cliente y la conciliación deja de ser una planilla. Una restricción para diseñar alrededor: las API keys de sub-cuenta no pueden administrar sub-cuentas. Esas llamadas necesitan una key del padre y devuelven 403 en caso contrario, lo cual es correcto (la key de un cliente no debería poder enumerar a tus otros clientes) y conviene saberlo antes de arquitecturar un dashboard para clientes. ## Construir rápido para poder cotizar precio fijo El precio fijo solo funciona si la construcción es predecible. El flujo que la hace predecible es aquel donde no escribes el código. ```bash npx skills add zavudev/zavu-skills npx zavudev@latest login npx zavudev agents catalog ``` Las skills le enseñan esta API a tu coding agent, así deja de inventar endpoints y deja de ignorar la ventana de 24 horas. El catálogo lista agentes listos para soporte, captura de leads y reservas, y `npx zavudev agents pull ` te deja uno en tu repo como código editable que es tuyo, con prompt y tools ya escritos. Desde ahí cada cliente es un prompt sobre un punto de partida que ya funciona: > Toma este agente de reservas y adáptalo para una clínica dental. La disponibilidad viene del Google Calendar de nuestro cliente. Las confirmaciones salen en español. Nunca agendar dentro de las dos horas previas a un bloque. Deployalo y pruébalo con "¿tienen hora el jueves en la tarde?" Y después, antes de que toque a los clientes de tu cliente: ```bash npx zavudev agents test --agent --message "¿tienen hora el jueves en la tarde?" ``` Eso corre el agente real y devuelve lo que diría, sin entregar nada y sin cobrar nada. Para una agencia esto es el demo: puedes mostrarle a un cliente su agente respondiendo sus preguntas antes de que su WhatsApp esté siquiera conectado, lo que mueve la venta antes del onboarding. ## Qué cobrar No vamos a publicar una lista de precios para tu mercado, porque no lo conocemos. Pero la estructura que sobrevive es consistente: **Cobra por el proceso, no por el agente.** "Un agente de IA" no tiene precio ancla e invita a compararte con una herramienta de chatbot de USD 29. "Tu línea de recepción responde cada mensaje en menos de un minuto, siete días a la semana, y agenda directo en tu calendario" se compara contra lo que cuesta una recepcionista. **Separa construcción de operación.** Un fee único de construcción más un mensual que cubre consumo, monitoreo y cambios. Los agentes necesitan mantenimiento, y un modelo sin línea recurrente convierte cada arreglo en una discusión. **Mete el consumo en el mensual, con un tope que efectivamente aplicas.** Esa es toda la razón de ser de `creditLimit`. Puedes prometer "hasta 5.000 conversaciones incluidas" y cumplirlo. **Cobra menos por el segundo cliente que por el primero.** Tu primer agente en un vertical te cuesta el descubrimiento. La quinta clínica dental es un fork de la cuarta, y ahí vive el margen. Las agencias que componen lo hacen especializándose, no creciendo en amplitud. ## Límites honestos Dónde este modelo no funciona, dicho sin rodeos. **Si el proceso del cliente no está escrito en ninguna parte, no estás automatizando, estás consultando.** Cóbralo aparte o lo vas a hacer gratis. **Si el cliente no puede entrar a su propio Meta Business Manager, ningún link lo arregla.** La invitación te saca del medio, pero alguien del lado del cliente igual tiene que poder autorizar. Califica eso en la llamada de venta. **Una agencia de un agente es un freelancer con logo.** El modelo compone por repetición dentro de un vertical. Si cada cliente es de una industria distinta, cada construcción es la primera construcción. **Y el agente tiene que ser bueno de verdad.** Una agencia que entrega un agente seguro y equivocado pierde el cliente y la referencia. Los [modos de falla](/es/blog/how-to-build-an-ai-agent) son conocidos y en su mayoría prevenibles, y conocerlos es una parte real de lo que estás vendiendo. ## Para seguir leyendo - [Cómo crear un agente de IA](/es/blog/how-to-build-an-ai-agent): el flujo, desde el setup hasta las fallas en producción. - [Agente de IA vs chatbot](/es/blog/ai-agent-vs-chatbot): la conversación a tener con un cliente que pidió un chatbot. - [Qué es un agente de IA](/es/blog/what-is-an-ai-agent): la definición, para cuando un cliente pregunta qué está comprando. - [Evolution API vs la API oficial de WhatsApp](/es/blog/evolution-api-whatsapp): por qué la vía no oficial es un pasivo cuando un cliente te está pagando. - [Precio por mensaje de WhatsApp](/es/blog/whatsapp-per-message-pricing-explained): la línea de costo que estás marcando.