Eventos en vivo
Escucha los eventos del workspace en tiempo real por SSE, sin montar un webhook.
met.events es el feed de lo que pasa en tu workspace: runs que terminan, mensajes que entran por un canal, contactos que se crean. Puedes leerlo en vivo por Server-Sent Events (SSE) o consultar el historial reciente. Requiere el scope events:read.
Escuchar en vivo con stream()
met.events.stream() abre una suscripción SSE efímera que te emite cada evento apenas ocurre. Es la misma fuente de met listen en la CLI: perfecta para el dev-loop y para tiempo real sin montar un endpoint.
const met = new Met(key, { workspaceId });
for await (const ev of met.events.stream()) {
console.log(ev.type, ev.data);
}
Cada ev es un { id, type, created, livemode, data } — los mismos tipos del catálogo de webhooks salientes.
Filtrar por tipo
Pasa types para recibir solo lo que te interesa:
for await (const ev of met.events.stream({ types: ['run.completed', 'contact.message.received'] })) {
if (ev.type === 'run.completed') console.log('run listo:', ev.data);
}
Cortar el stream
Rompe el for await (con break) o pasa un AbortSignal para cerrarlo desde afuera:
const ac = new AbortController();
setTimeout(() => ac.abort(), 30_000); // corta a los 30s
for await (const ev of met.events.stream({ signal: ac.signal })) {
console.log(ev.type);
}
Algunos tipos útiles del catálogo: run.completed, run.failed, contact.message.received, contact.created, task.completed, conversation.handoff.
stream()vs. webhooks salientes.met.events.streames efímero: no reintenta y solo llega mientras tu proceso está conectado. Sirve para desarrollo y tiempo real. Para entrega garantizada cross-instancia (que el evento llegue aunque tu servicio esté caído y se reintente), monta un webhook persistente — ver Webhooks.
Consultar el historial
Cuando no necesitas tiempo real, lee lo ya ocurrido:
const eventos = await met.events.list(); // últimos eventos (default 50)
const actividad = await met.events.activity(); // actividad del workspace (default 50)
const deItem = await met.events.itemActivity(1234); // actividad de un item puntual
Ambos list() y activity() aceptan { limit } para ajustar cuántos registros traer.