Saltar al contenido
Todos los proyectos
HackathonAskOnce4 min de lectura

AskOnce: un agente de IA que reemplaza la llamada de descubrimiento de las agencias

Las agencias pasan la primera hora de cada proyecto preguntando cosas que la web del cliente ya responde. AskOnce es un agente de onboarding con IA que lee esa web primero, pregunta solo lo que falta por chat, voz o teléfono y escribe el brief. Hecho en solitario en el TUM.ai Makeathon, 3er lugar en el reto de HappyRobot.

Sesión de cliente en AskOnce: a la izquierda, el chat con el agente de IA de la agencia; a la derecha, el brief llenándose solo

El problema

Las agencias pierden la primera hora de cada proyecto en una llamada de descubrimiento: las mismas preguntas sobre el negocio, el público y el presupuesto, que en su mayoría ya responde la web del propio cliente. Si alguna vez contrataste una agencia web o a un diseñador freelance, conoces el ritual. Una o dos horas de "cuéntame de tu negocio", "quiénes son tus clientes", "tienes colores de marca" antes de que alguien te dé un precio.

Los formularios no lo resuelven. Un cuestionario largo hace las mismas preguntas obvias por escrito, el cliente lo abandona a la mitad y alguien en la agencia tiene que perseguirlo.

Qué construí

AskOnce es un agente de onboarding con IA que se encarga de la mitad aburrida de esa llamada. Lo construí solo, en un fin de semana, en el TUM.ai Makeathon de Múnich, para el reto de HappyRobot, que pedía agentes de IA capaces de hacer cosas reales (llamadas y emails incluidos), no solo chatear.

Qué hace

  • Editor de workflows. La agencia arma su cuestionario una vez: preguntas, nombre del agente, tono. El cliente recibe un enlace.
  • Lee la web primero. Antes de preguntar nada, AskOnce analiza la web del cliente y completa lo que puede, así el agente solo pregunta lo que falta.
  • Chat o voz. El cliente responde escribiendo o hablando, y el brief se va armando en pantalla mientras tanto.
  • Brief y decisión. Al final la agencia recibe un PDF con su marca y dos botones: aceptar (sale un email con un enlace para agendar) o rechazar (sale un email amable).
  • Llamada de seguimiento. Si el cliente abandona a mitad de camino, el botón Call now del dashboard hace que el agente lo llame, pregunte solo lo que quedó sin responder y guarde las respuestas en el brief.
El video demo del fin de semana, poco menos de tres minutos: el editor de workflows, la sesión del cliente y la llamada de seguimiento, narrado con una voz de ElevenLabs
Sesión de cliente en AskOnce con el chat a la izquierda y el brief en vivo a la derecha
La sesión del cliente. El agente ya conoce el negocio por su web y solo pregunta objetivos, público, plazos y presupuesto. Recreada desde el código con datos de ejemplo, porque las sesiones en la app real escriben en la base de datos
Diálogo que pregunta si llamar al cliente y lista lo que hará el agente
El diálogo de Call now: retomar donde quedó la sesión, preguntar solo lo que falta y actualizar el brief después. Recreado desde el componente con datos de ejemplo; no hice llamadas reales para este post
Landing de AskOnce con el titular "Ask once. Know everything."
La landing que sigue en línea. El texto es del fin de semana del hackathon: léelo como un pitch, no como resultados

Por qué estas herramientas

Gemini se encarga de leer y escribir: analiza la web del cliente para que el agente nunca pregunte lo que ya es público, lleva el chat y redacta el brief final. Al principio mandaba cada mensaje del chat por un workflow de HappyRobot, pero cada respuesta implicaba iniciar una ejecución, esperar a que terminara y sacar la respuesta de sus nodos. Llamar a Gemini directamente hizo el chat rápido y dejó mucho menos que pudiera fallar delante del jurado.

HappyRobot hace aquello para lo que está pensado: llamadas telefónicas reales y los flujos de email de aceptar o rechazar. Antes de marcar, una función de Supabase le pasa al agente dos listas, lo que ya sabemos y lo que falta, así un cliente que respondió cinco de siete preguntas en la web no tiene que escuchar las siete otra vez. Después de la llamada, un paso de extracción saca las respuestas de la transcripción y las suma al brief.

ElevenLabs le da a cada workflow su propio agente de voz. Cada agencia tiene preguntas y tono distintos, así que AskOnce crea un agente de ElevenLabs aparte en cuanto se guarda un workflow, con esas preguntas dentro de su prompt.

Supabase guarda los datos y corre las funciones del lado del servidor, para que las API keys nunca lleguen al navegador. Lovable generó la UI en React: 206 de los 243 commits son de su bot. En un hackathon es lo sensato. Mi parte fue la conexión entre las tres plataformas.

Lo difícil

La voz necesitó tres intentos. El reconocimiento de voz del navegador solo funcionaba en Chrome y sonaba como un GPS, después vino una llamada de navegador con HappyRobot y al final ElevenLabs, que fue la que se quedó. Aun así, el domingo por la mañana cambié algo que funcionaba, rompí el arranque y tuve que volver a la versión anterior dos veces.

La llamada telefónica fue peor. Unas horas antes del jurado, todas las llamadas fallaban en un segundo porque el número de salida había perdido su SIP trunk (la conexión entre la plataforma de llamadas y la red telefónica). Dos números de reemplazo fallaron igual. Lo que al final funcionó fue el número que otro equipo ya estaba usando, y quedó en el changelog como limitación conocida.

En qué se convirtió

En la ceremonia de cierre la diapositiva decía "2nd & 3rd Place Happy Robot", y AskOnce fue tercero. Una placa y 100 euros.

Javier sosteniendo la placa de 3er lugar en el escenario de la premiación del Makeathon
Tercer lugar en el reto de HappyRobot, en el escenario de la ceremonia de cierre

La web sigue en línea. La landing y el login cargan, y el código es público en GitHub. No mantuve los flujos de llamadas ni los agentes de voz después del fin de semana, así que tómalo como una demo de hackathon, no como un producto en el que puedas registrarte.

Javier en el auditorio con la placa de 3er lugar sobre la mesa
De vuelta en los asientos después de la premiación. La placa dice 2026 Makeathon, 3rd place, HappyRobot

La landing generada todavía dice "120+ agencies onboarded". Ese número nunca fue real: es texto de relleno que no alcancé a cambiar, y es lo primero que borraría.

El nombre del equipo sobrevivió al proyecto. En septiembre, con el mismo nombre, AskOnce ganó el 2º lugar en el reto "Best Route" de BMW Motorrad en Zúrich con algo totalmente distinto: un planificador de rutas en moto que puntúa las carreteras por lo divertidas que son, no por lo rápidas.