Documentación
Volver a confirio.app
Secciones de la documentación

Integración · Salas

Creá una sala y repartí los enlaces #

Las salas se crean desde tu backend con ConfirioServer y la API key. El enlace de moderación y el de participante tienen permisos distintos.

Crear una sala #

Este ejemplo sigue el flujo del SDK: activa la sala de espera, programa el inicio y genera un participantRef para asociar la conexión con un código de tu sistema. Configurá la key en la terminal y guardá el código como salas.mjs.

Terminal · configurar la API key
export CONFIRIO_API_KEY=TU_API_KEY
Backend · salas.mjs
import ConfirioServer from 'confirio-sdk/server';

const confirio = new ConfirioServer({ apiKey: process.env.CONFIRIO_API_KEY });

const room = await confirio.createRoom({
  name: 'Consulta',
  maxParticipants: 2,
  waitingRoom: true,
  startsAt: new Date(Date.now() + 15 * 60 * 1000)
});

const patientUrl = new URL(room.joinUrl);
patientUrl.hash = 'confirio.ref=turno-42';
console.log('Sala:', room.roomId);
console.log('Moderador:', room.hostUrl);
console.log('Participante:', patientUrl.toString());

Ejecutá el archivo con node salas.mjs.

En tu app, entregá room.hostUrl sólo a quien tiene que moderar. A los demás, pasales room.joinUrl (en el ejemplo, con el participantRef del turno). Protegé tus propios endpoints con el login y los permisos de tu producto.

Moderador y participante #

Con contraseña y sin sala de espera, la escribe cada persona que entra, también quien modera. Si además activás la sala de espera, nadie la escribe: quien modera entra con su enlace y a los demás los deja pasar. La longitud aceptada es de 4 a 64 caracteres. Con sala de espera, los participantes quedan esperando hasta que quien modera los deja pasar; quien modera entra directo.

participantRef #

Es un código opaco que elegís en tu sistema, por ejemplo el número del turno. Sirve para agrupar conexiones y reconexiones en los reportes; no verifica identidad ni da permisos. Usá de 1 a 64 caracteres entre letras, números, guion y guion bajo. No hace falta enviar nombre ni documento.

Hora de inicio #

startsAt acepta un objeto Date o una fecha ISO 8601 con offset, por ejemplo 2026-10-20T10:00:00-03:00. Sin ese campo, la sala queda disponible desde que se crea.

Con horario, quien modera puede entrar dentro de la ventana anticipada configurada para tu organización. El resto puede entrar a la hora indicada o antes si quien modera ya está adentro. Si también activaste sala de espera, queda pendiente de admisión.

Cuánto dura y cómo terminarla #

Una sala no se cierra porque quede vacía: mientras siga activa, el mismo enlace permite volver. La respuesta incluye expiresAt, calculado desde startsAt o desde la creación más la duración máxima configurada para tu organización. Si quien modera se desconecta, el margen de reconexión también depende de esa configuración. Una sala sin uso vence según el tiempo de disponibilidad sin uso configurado.

Para cerrarla desde tu backend, llamá await confirio.endRoom(roomId). Expulsa a quienes están adentro y evita nuevos ingresos. Esa operación cierra la sala; no es la medición de la duración. La conexión real empieza cuando alguien entra.

Los límites de duración, ingreso anticipado, reconexión y disponibilidad sin uso se ven en la configuración del cliente en el Panel.