Una campaign representa una ejecución masiva basada en un CSV.
El procesamiento es asíncrono y el estado progresa (por ejemplo)
PENDING → PROCESSING → COMPLETED.
Requiere permisos campaigns:read para consultas y
campaigns:write para creación, además del header
X-Workspace-Id.
Listar campañas
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.campaigns.list({
page: 1,
limit: 20,
sort: '-createdAt',
// filter: 'and(eq(status,"PROCESSING"))',
});
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);
}
curl -sS "$API_BASE_URL/v1/campaigns?page=1&limit=20&sort=-createdAt" \
-H "X-API-Key: $API_KEY" \
-H "X-Workspace-Id: $WORKSPACE_ID"
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 campaign = await client.campaigns.get(
'00000000-0000-4000-8000-000000000001',
);
console.log(campaign.name, campaign.status);
curl -sS "$API_BASE_URL/v1/campaigns/00000000-0000-4000-8000-000000000001" \
-H "X-API-Key: $API_KEY" \
-H "X-Workspace-Id: $WORKSPACE_ID"
Listar ejecuciones (por fila)
Expone progreso fila por fila del CSV procesado.
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 executions = await client.campaigns.listExecutions(
'00000000-0000-4000-8000-000000000001',
{ page: 1, limit: 50 },
);
for (const row of executions.data) {
console.log(row.rowNumber, row.status, row.errorMessage);
}
curl -sS "$API_BASE_URL/v1/campaigns/00000000-0000-4000-8000-000000000001/executions?page=1&limit=50" \
-H "X-API-Key: $API_KEY" \
-H "X-Workspace-Id: $WORKSPACE_ID"
Crear campaña (CSV)
Crea una campaña para una versión específica del agente.
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 campaign = await client.campaigns.create(
'00000000-0000-4000-8000-000000000101',
'00000000-0000-4000-8000-000000000201',
{
name: 'Campaña outbound noviembre',
objective: 'Validar rendimiento de script de retención',
// En entornos browser: File/Blob.
// En entornos Node: usa FormData directamente si no tienes File.
file: new Blob(['name,phone\nAda,+5215555555555\n'], {
type: 'text/csv',
}),
},
);
console.log(campaign.campaignId, campaign.status);
curl -sS -X POST \
"$API_BASE_URL/v1/agents/00000000-0000-4000-8000-000000000101/versions/00000000-0000-4000-8000-000000000201/campaigns" \
-H "X-API-Key: $API_KEY" \
-H "X-Workspace-Id: $WORKSPACE_ID" \
-F "name=Campaña outbound noviembre" \
-F "objective=Validar rendimiento de script de retención" \
-F "file=@./input.csv"