ElevenAgents para el sector sanitario: crea un agente de programación de citas entrantes
- Escrito por
- Nathan Pogue
- Publicado
- Última actualización
EscucharEscucha este artículo
El teléfono sigue siendo la puerta de entrada a la atención sanitaria, y está saturado. Mayo Clinic investigación y los datos del estudio de caso de Epic estudio de caso muestran que aproximadamente el 30 % de las citas se programan fuera del horario laboral habitual. Las llamadas que llegan al buzón de voz son citas que, silenciosamente, no llegan a producirse, mientras que el personal de recepción encargado de atenderlas está sobrecargado y rota con rapidez. Agentes de voz han superado la fase de demostración como la forma en que las clínicas cubren esa necesidad, y la programación de citas es el punto de partida más habitual: alto volumen, repetitiva, predecible y una parte significativa de la carga de trabajo de recepción que no requiere criterio clínico.
La programación de citas en la atención sanitaria también eleva el nivel de exigencia. Una franja horaria incorrecta o un motivo de consulta mal entendido no es solo una mala experiencia: es un incidente de seguridad y cumplimiento normativo. Un agente de programación en recepción necesita más que una voz agradable: verificación fiable de identidad, límites estrictos, una vía clara de escalado a una persona, las garantías de cumplimiento necesarias para gestionar información sanitaria protegida y la capacidad de completar, modificar o cancelar reservas en un sistema de programación real.
Esta guía crea exactamente eso con ElevenAgents: un agente accesible por teléfono, conectado a una HCE de ejemplo, que reserva, reprograma y cancela citas de principio a fin, y escala los casos cuando corresponde. Obtendrás el workflow, los límites, las pruebas y el análisis necesarios para que opere dentro de los límites establecidos, desplegado en infraestructura diseñada para una atención sanitaria regulada.
Aquí tienes una demostración del agente que crearás gestionando una llamada en directo de principio a fin:
Requisitos previos
Para empezar, necesitarás lo siguiente:
- Una cuenta de ElevenLabs, con acceso a la plataforma ElevenAgents y a nuestras voces.
- Una cuenta de Twilio y un número.
- Acceso a Twilio Verify.
- Un entorno sandbox o de desarrollo de HCE. En esta guía usaremos HAPI FHIR, una implementación de referencia de código abierto del formato HL7 FHIR, para validar registros de pacientes sintéticos.
- La aplicación de calendario de tu consulta. Para esta guía, usamos la integración nativa de ElevenLabs con Cal.com.
Opcional
Si no tienes acceso a datos de sandbox o vas a seguir la guía para fines de demostración, usaremos el servidor sandbox HAPI FHIR R4 y lo inicializaremos con un registro de paciente simulado que podrás utilizar durante la fase de verificación. Para ello, ejecuta el siguiente comando de API con datos simulados desde tu terminal:
Solo se confirma una coincidencia cuando la consulta devuelve exactamente un registro: cero resultados significa que no hay coincidencia, y más de uno significa que los parámetros de búsqueda no eran lo bastante específicos para continuar con seguridad.
Arquitectura
En esta guía crearás un agente de programación que funciona mediante un número de Twilio e integrado de forma nativa con tu ElevenAgent. Cuando se conecte la llamada entrante, el agente ayudará al paciente con las herramientas disponibles para recopilar datos de verificación y de la cita, tanto si la persona llama para reservar una consulta nueva como para reprogramar o cancelar una existente, y podrá transferir la llamada a una persona cuando sea necesario.

Con esta arquitectura y estas herramientas, un flujo de llamada satisfactorio incluirá los siguientes pasos:
- Inicio de llamada: un paciente llamará al número de Twilio asignado al agente, que le saludará y captará su intención.
- Validación de HCE: el agente validará los datos del paciente con su registro en la HCE.
- Verificación: el agente enviará una contraseña de un solo uso (OTP) al número de teléfono del paciente para la verificación final mediante su herramienta de SMS.
- Reserva o modificación: el agente actuará según la intención detectada en el calendario; para una cita nueva, recopilará los datos de reserva y comprobará la disponibilidad; para una reprogramación, buscará la cita existente y encontrará una nueva franja; para una cancelación, confirmará y eliminará la cita existente.
- Transferencia: si la reserva o modificación no tiene éxito, el paciente pide hablar con una persona o se detecta cualquier otra intención que el agente no puede gestionar, la llamada se transferirá a un agente humano.
- Confirmación y cierre: tras una reserva, reprogramación o cancelación correcta, el agente resumirá los detalles de la llamada y se despedirá cordialmente.
Prompt del sistema y ajustes del agente
El primer paso para crear un ElevenAgent eficaz está en su prompt del sistema. Siguiendo la guía de prompting de ElevenLabs, lo estructuramos en los bloques básicos recomendados para cualquier agente de producción —personalidad, objetivo, tono, herramientas y límites—, cada uno en su propia sección claramente identificada en lugar de en un único bloque continuo de instrucciones.
Para un agente de programación de citas sanitarias, esta estructura debe tener en cuenta quién está realmente al otro lado de la llamada: alguien que puede ser mayor, tener dolor, dificultades auditivas o simplemente estar preocupado por el motivo de su llamada. Las secciones de personalidad y tono establecen un ritmo cálido y pausado, y mantienen las respuestas cortas y conversacionales, con fechas, horas y números expresados como los diría una persona, en vez de leídos de una pantalla. La sección de objetivo describe el flujo como una secuencia ordenada: verificar la identidad y, según si la persona quiere reservar, reprogramar o cancelar, comprobar la disponibilidad y confirmar la franja, buscar y modificar la cita existente o confirmar la cita que se elimina. Las herramientas se documentan con las entradas exactas en formato hablado que esperan. Los límites recogen las reglas específicas de este ámbito: nunca mostrar más información sanitaria protegida de la que ya haya compartido quien llama, nunca inventar disponibilidad ni detalles de citas cuando falle una herramienta, rechazar preguntas clínicas y remitir a la persona a su propio profesional sanitario, y escalar inmediatamente si alguien describe síntomas urgentes o una emergencia médica. La verificación de identidad antes de cualquier acción sobre una cita es la única regla que se repite en vez de mencionarse una sola vez. Es la regla que el agente menos puede permitirse omitir.
A partir de aquí, puedes añadir configuraciones adicionales del agente, como el primer mensaje, distintos idiomas (asegúrate de que la herramienta del sistema de detección de idioma esté activada), el LLM que prefieras, un modelo conversacional de ElevenLabs de texto a voz y una voz de ElevenLabs.
Puedes encontrar un ejemplo de prompt del sistema aquí.

Límites
La sección de límites del prompt del sistema cubre reglas a nivel de instrucciones y el modelo le da mucho peso. Sin embargo, un prompt sigue siendo una capa no determinista y puede desviarse durante una llamada larga. ElevenAgents los respalda mediante una aplicación independiente en tiempo de ejecución a través de sus propios límites. Estos incluyen el límite de enfoque, que refuerza el prompt del sistema cuando las conversaciones se alargan; límites de manipulación, que detectan intentos de inyección de prompts antes de que el agente responda; y límites de contenido y personalizados, que evalúan cada respuesta en tiempo real y pueden bloquearla antes de que quien llama la escuche. Cada límite se configura con un modo de ejecución —streaming para una latencia casi nula o bloqueo para retener una respuesta hasta que la supere— y una estrategia de salida para cuando se activa: finalizar la llamada o reintentar con comentarios correctivos incorporados en el siguiente turno.
Para este agente, podemos definir límites personalizados para las reglas específicas de la atención sanitaria o la clínica: bloquear el diagnóstico de afecciones o la recomendación de tratamientos, bloquear preguntas de facturación, bloquear indicaciones sobre dosis de medicamentos y bloquear cualquier contenido que sustituya el consejo de un profesional sanitario cualificado. Para síntomas urgentes, configura la estrategia de salida para reintentar con comentarios que transfieran la llamada a una persona, de modo que el límite la derive al personal en vez de simplemente finalizarla.


Herramientas
Cada paso del flujo requerirá herramientas específicas de webhook e integración para realizar acciones concretas mientras se habla con el paciente.
Herramienta de verificación de HCE
Para verificar al paciente con su registro en la HCE, utilizaremos la acción de API FHIR GET /Patient. Añádela como una herramienta de webhook que apunte a tu URL base de HAPI FHIR, con family, given, identifier y birthdate configurados como parámetros completados por el LLM. La primera llamada a la herramienta de la fase de verificación accede a la ruta de API con el nombre y la fecha de nacimiento de quien llama en una única consulta:
Solo se confirma una coincidencia cuando la consulta devuelve exactamente un registro, y el agente solo podrá pasar a la fase de reserva si se cumple esta condición.
Puedes encontrar un ejemplo del JSON de la herramienta aquí.
Herramientas de verificación por SMS de Twilio
Una vez confirmada la coincidencia en la HCE, la fase de verificación pasa a un segundo factor: enviar por SMS al paciente un código de un solo uso y confirmarlo antes de hacer nada más. Para configurarlo hay que seguir tres pasos:
1. Crea herramientas de webhook para SMS. Configura dos herramientas, send_SMS_verification y check_SMS_verification, ambas dirigidas a tu servicio Twilio Verify. Cada una necesita el SID del servicio Verify (el valor VA... de los ajustes de tu servicio Verify) en la ruta de la URL y una cabecera de autenticación Basic creada con tu Account SID y Auth Token, almacenados como secreto.
2. Establece el destinatario con una variable del sistema. ElevenAgents proporciona variables del sistema que completan automáticamente system__caller_id con el número de teléfono de quien llama en cualquier llamada de voz, así que pasa {{system_caller_id}} como parámetro To en lugar de pedirle que lea un número en voz alta. En un entorno de producción integrado con una HCE activa, el código se enviaría al número de teléfono almacenado en el registro del paciente, no al identificador de quien llama.
3. Activa skip_turn. Añadir esta herramienta del sistema junto con las herramientas de webhook permite que el agente espere en silencio mientras quien llama encuentra el mensaje, en lugar de hablar durante la pausa.
Solo puede pasar a la fase de reserva quien supera tanto la consulta en la HCE como la comprobación del OTP.
Puedes encontrar ejemplos del JSON de ambas herramientas aquí y aquí.
Herramientas de integración de calendario
La fase de reserva debe comprobar la disponibilidad, reservar, reprogramar y cancelar en un calendario real. Configurar la integración de Cal.com requiere tres pasos:
1. Conecta la integración. En la pestaña Herramientas del agente, añade la integración de Cal.com y haz clic en Conectar.
2. Fija el tipo de evento. Cada herramienta de calendario recibe un ID de tipo de evento que indica a Cal.com para qué evento debe reservar. Establécelo como un parámetro fijo en las herramientas conectadas mediante el ID de tu panel de Cal.com.
3. Configura el correo electrónico del asistente. Las herramientas de reserva también necesitan un correo electrónico del asistente. Para fines de demostración, fíjalo como parámetro a tu propia dirección para que las confirmaciones lleguen a tu bandeja de entrada. En producción con una HCE real, lo completarías a partir del correo del registro del paciente, en lugar de usar uno codificado de forma fija.
A partir de ahí, el flujo de reserva depende de la intención captada en Saludo. Para una cita nueva, el agente llama a calcom_get_available_slots para consultar las franjas disponibles antes de ofrecer una y, después, a calcom_create_booking cuando quien llama confirma, siempre en ese orden, ya que comprobar primero la disponibilidad evita reservar dos veces una franja. Para una reprogramación o cancelación, primero localiza la cita existente con calcom_find_bookings_by_attendee, confirma la reserva concreta con quien llama y luego la elimina con calcom_cancel_booking o, para una reprogramación, reserva la nueva franja antes de cancelar la anterior.
Transferencia a una persona
Para transferir a una persona, podemos utilizar la herramienta del sistema transfer_to_number de ElevenLabs herramienta del sistema. Añádela como herramienta del sistema a nivel de agente para que esté disponible desde Saludo, Verificación o Reserva. En la regla de transferencia, añade el número de teléfono de destino en formato E.164 y una condición en lenguaje natural que describa cuándo debe activarse. El LLM decide cuándo y adónde transferir según esas condiciones y la descripción de la herramienta. Deja el tipo de transferencia como Conference, el valor predeterminado, ya que permite un mensaje de transferencia contextual que informe al operador humano de por qué recibe la llamada.
Estructurar el recorrido del paciente
Workflows son flujos de conversación visuales basados en grafos y construidos con unos pocos tipos de nodos: nodos de subagentes que añaden un prompt del sistema, herramientas y una base de conocimiento sobre el agente base orquestador para una fase de la llamada; nodos de herramientas de envío que garantizan la ejecución de una herramienta concreta y se ramifican según el éxito o el fallo; nodos de transferencia de agente y transferencia a número para las derivaciones; y un nodo final para cerrar la llamada. Los nodos se conectan mediante aristas, y las aristas de avance pueden incluir una condición de LLM: una regla en lenguaje natural que el modelo evalúa en tiempo real para decidir qué ruta tomar. Creamos el agente con cinco nodos de subagente —Saludo, Verificación, Reserva, Aviso de transferencia y Cierre—, cada uno limitado a sus propias herramientas, además de un único nodo de Transferencia de número de teléfono accesible desde Aviso de transferencia.
Saludo es el punto de entrada: responde la llamada, presenta la clínica y capta la intención del paciente antes de derivarla; no tiene herramientas propias, solo recopila el contexto suficiente para dirigirla correctamente.
Verificación incorpora la comprobación de doble factor anterior y utiliza la herramienta FHIR GET /Patient para confirmar que quien llama coincide con un registro de la HCE; después usa las herramientas send_SMS_verification y check_SMS_verification para enviar y comprobar un código de un solo uso antes de que pueda continuar. Solo avanza quien supera ambas comprobaciones; quien no lo consigue recibe una arista de avance hacia Aviso de transferencia.
Reserva es donde se encuentran las herramientas de calendario de la sección anterior, y la intención captada en Saludo determina la ruta: comprobar disponibilidad y reservar una cita nueva, buscar la reserva existente y volver a reservar antes de cancelar en caso de reprogramación, o confirmar y cancelar en caso de cancelación. Este nodo también permite pasar a Aviso de transferencia: si ninguna opción del calendario encaja, no se puede asociar a quien llama con una cita existente o prefiere hablar con el personal, la arista se dirige allí en lugar de bloquear la llamada.
Aviso de transferencia se sitúa entre el resto del workflow y la derivación propiamente dicha: es un breve subagente cuya única función es informar a quien llama de que se producirá una transferencia (por ejemplo, «Ahora te voy a conectar con alguien de nuestro equipo») antes de que la llamada salga del agente. Dirigir primero cada condición de transferencia a través de este nodo, en vez de activar transfer_to_number directamente desde Saludo, Verificación o Reserva, garantiza que quien llama siempre oiga ese mensaje en vez de ser transferido en silencio si la redacción varía según el subagente.
Transferencia de número de teléfono, creada con la herramienta transfer_to_number, es el nodo al que Aviso de transferencia siempre dirige el flujo. Sus reglas combinan un número de destino con las mismas condiciones procedentes de los pasos anteriores —una verificación fallida, una solicitud explícita o una reserva que no se puede completar— y ejecuta la derivación real una vez que quien llama ya ha sido informado.
Cierre solo se alcanza tras una reserva correcta: resume los detalles de la cita para quien llama y finaliza la llamada de forma cordial.
Puedes encontrar un ejemplo de plantilla JSON del workflow aquí.

Análisis y pruebas
La mayor parte del trabajo de un agente de voz para la atención sanitaria no está en el camino ideal, sino en todo lo que debe suceder correctamente cuando la llamada no sigue el guion. ElevenAgents está diseñado para pruebas y análisis integrados de forma nativa en la plataforma, lo que significa que los mismos criterios de evaluación que utilizas antes del lanzamiento puntúan cada llamada en producción, sin necesidad de configurar ni conciliar una herramienta independiente.
Criterios de éxito
Define criterios de éxito para recoger criterios de evaluación concretos que se ajusten a tus objetivos empresariales y operativos. En la pestaña Análisis, cada criterio es un prompt en lenguaje natural que un LLM ejecuta sobre la transcripción y devuelve success, failure o unknown con una justificación. Para este agente, podrían incluir criterios como:
patient_verified: "Marca como correcto si el agente confirmó la identidad de quien llama mediante la consulta en la HCE y el código de un solo uso por SMS antes de continuar con la reserva."appointment_booked: "Marca como correcto si se reservó la cita del paciente"appointment_changed: "Marca como correcto si el paciente pidió reprogramar o cancelar una cita existente y el agente completó ese cambio —actualizando o eliminando el evento de calendario— y confirmó el resultado a quien llamó."call_escalated_when_requested: "Marca como correcto si quien llama pidió hablar con una persona y el agente transfirió la llamada; marca como fallo si quien llama lo pidió y el agente no la transfirió."
Recopilación de datos
Puedes combinarlos con campos de recopilación de datos. Por ejemplo, añadiendo requested_action (reservar, reprogramar o cancelar), appointment_date o appointment_type, que se extraen como valores estructurados de texto, booleanos o numéricos de cada transcripción y se envían a sistemas posteriores mediante un webhook posterior a la llamada al sistema que utilices para hacer seguimiento de los resultados de las llamadas.

Simulaciones y pruebas
En la atención sanitaria, un agente debe ganarse la confianza antes de su primera llamada real: los modos de fallo deben aparecer en las pruebas, no delante de un paciente. La API de simulación de conversaciones simula escenarios realistas de llamadas, tanto de principio a fin como en segmentos específicos, y puntúa automáticamente los resultados utilizando los mismos criterios que se aplican en producción: las comprobaciones exactas de patient_verified y appointment_booked definidas anteriormente, no una rúbrica independiente solo para pruebas. Ejecuta simulaciones completas de toda la llamada o simulaciones parciales que comiencen a mitad de la conversación para validar un único punto de decisión; es la forma más rápida de iterar sobre un nodo sin volver a ejecutar todo el flujo.
Para este agente, eso implica crear guiones de escenarios que vayan más allá del camino ideal: una persona cuyo nombre no coincide con ningún registro de la HCE, alguien que se equivoca dos veces al introducir el OTP, un paciente que pide reprogramar en lugar de reservar y alguien que pide expresamente hablar con una persona a mitad de la verificación. Son escenarios claros y concretos que te dan cobertura para casos límite, uso de herramientas y lógica alternativa, en vez de confiar en que aparezcan en producción.
Conecta tu número de teléfono de Twilio
Con el agente creado, conectarlo a un número activo solo lleva unos minutos:
- En el panel de ElevenLabs, ve a Números de teléfono y haz clic en Importar número.
- Introduce una Etiqueta, el Número de teléfono y tu Account SID y Auth Token
- Una vez importado, asigna el número a tu agente desde el menú desplegable
- Llama al número para probarlo y, después, consulta el panel del historial de conversaciones para confirmar que las primeras llamadas se comportaron como esperabas.
Listo para pacientes reales
Hemos creado un agente de programación para pacientes que hace más que responder al teléfono: verifica la identidad con una HCE y un OTP de segundo factor antes de acceder a un registro, reserva, reprograma y cancela directamente en un calendario activo mediante la API de Cal.com y sabe cuándo dar un paso a un lado y transferir a quien llama a una persona. El workflow determinista, los límites en tiempo de ejecución y los criterios de evaluación proporcionan a los equipos la trazabilidad de auditoría y el patrón de pruebas repetible que requieren los despliegues en atención sanitaria.
El lanzamiento es donde este patrón demuestra su valor. Los criterios de evaluación definidos durante la creación se convierten en el umbral de lanzamiento: cuando el agente los supera de forma consistente y las métricas se han estabilizado, tienes la confianza necesaria para lanzarlo, en lugar de depender de una decisión subjetiva. Tras el lanzamiento, el aprendizaje pasa de las pruebas simuladas a las transcripciones de producción. Explicamos estas prácticas, desde los lanzamientos graduales hasta saber cuándo dejar de iterar, en un blog anterior.
Un paso clave hacia el cumplimiento de HIPAA es la gestión de datos. Activar el modo de retención cero elimina grabaciones de llamadas, transcripciones y metadatos que contienen PII en cuanto termina una llamada, cerrando la principal fuente de riesgo de cumplimiento normativo en un despliegue telefónico. Junto con un webhook posterior a la llamada, no se pierde visibilidad: cada resultado de reserva, resultado de verificación y puntuación de evaluación se envía a tu propio sistema en tiempo real al finalizar la llamada.
Ahora tienes una plantilla para situar la IA de voz agéntica en la puerta de entrada de tu clínica. La programación de citas es el punto de partida con mayor volumen, y el mismo patrón se extiende a la admisión de pacientes, renovaciones de recetas, facturación y seguimientos posteriores a la consulta; cada una es una llamada que ya no tiene por qué llegar al buzón de voz fuera del horario laboral. Nuestro equipo de ingeniería de despliegue colabora estrechamente con organizaciones sanitarias para convertir despliegues como este en funcionalidades concretas de producto. Si quieres incorporar un workflow orientado a pacientes a ElevenAgents con las garantías de cumplimiento que exige la atención sanitaria, prueba este enfoque y cuéntanos qué te parece.




