Skip to main content
El recurso Calls es de solo lectura. Los registros provienen de Speech Analytics.
Requiere permisos calls:read y el header X-Workspace-Id. Puedes autenticar con X-API-Key (recomendado para integraciones) o con token Bearer si tu entorno lo soporta.

Listar llamadas

Lista paginada con filtros opcionales.
import { createClient } from '@getsupervisor/agents-studio-sdk';

const client = createClient({
  baseUrl: process.env.API_BASE_URL!,
  workspaceId: process.env.WORKSPACE_ID!,
  apiKey: process.env.API_KEY!,
});

const page1 = await client.calls.list({
  page: 1,
  limit: 20,
  sort: '-startedAt',
  agentId: '00000000-0000-4000-8000-000000000301',
  recordedAfter: '2025-01-01T00:00:00.000Z',
  recordedBefore: '2025-02-01T00:00:00.000Z',
  durationBucket: 'short',
  goalStatus: 'achieved',
  query: 'texto',
});

console.log(page1.data.length, page1.meta.total);

if (page1.meta.hasNext) {
  const page2 = await page1.next();
  console.log('Siguiente página:', page2?.meta.page);
}

Stream incremental

Obtiene llamadas en orden ascendente por startedAt a partir de un cursor temporal (after). La respuesta incluye meta.nextAfter para continuar la sincronización.
import { createClient } from '@getsupervisor/agents-studio-sdk';

const client = createClient({
  baseUrl: process.env.API_BASE_URL!,
  workspaceId: process.env.WORKSPACE_ID!,
  apiKey: process.env.API_KEY!,
});

let after: string | null = '2025-01-01T00:00:00.000Z';

while (after) {
  const page = await client.calls.stream({
    after,
    limit: 50,
    durationBucket: 'short',
    goalStatus: 'achieved',
  });

  for (const call of page.data) {
    console.log(call.id, call.startedAt);
  }

  after = page.meta.nextAfter;
}

Obtener llamada por id

import client from '../client';

const call = await client.calls.get('00000000-0000-4000-8000-000000000001');
console.log(call.title, call.startedAt);