VocalDocscontracts 1.65.0

Export a Campaign's enrollments

POST /v1/campaigns/{campaign_id}/exports

PropertyValue
Operationexport_campaign
GroupCampaigns
Scopecampaigns:read
Route classcontrol
IdempotencyIdempotency-Key accepted: a retry with the same key replays the first answer
AuditAudited campaigns.campaign.export (mutation)
Released in1.65.0
Phase 0 hostServed (the hosted api pins 1.65.0)

Creates a campaign.export job that writes the enrollments of a Campaign to a file of ids, statuses, dispositions, attempts and Call and Outcome ids, never Contact details, and answers 202 with the job and its Location (1.65.0; section 7.4). In PHI mode only an auditor Member may export (forbidden with auditor_required); an Audit event.

Request

Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the campaigns:read scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.

curl -X POST "$VOCAL_API/v1/campaigns/cmp_.../exports" \
  -H "Authorization: Bearer $VOCAL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Parameters

NameInTypeRequiredDescription
campaign_idpathCampaignIdyesThe id of a Campaign: cmp_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.
idempotency-keyheaderstringnoA client-chosen key, kept 24 hours per Organization, environment and route. A replay returns the stored response.

Request body

Content type application/json, required: CampaignExportRequest.

FieldTypeRequiredDescription
formatone of "csv", "jsonl"nocsv when omitted.

Responses

StatusContent typeShapeError codes
202application/jsonJob
400application/jsonErrorEnvelopeinvalid_request
401application/jsonErrorEnvelopeunauthenticated
403application/jsonErrorEnvelopeforbidden, org_suspended
404application/jsonErrorEnvelopenot_found
409application/jsonErrorEnvelopeidempotency_in_progress, idempotency_key_reused
429application/jsonErrorEnveloperate_limited
500application/jsonErrorEnvelopeinternal_error

Fields of the 202 answer

The shape is Job.

FieldTypeRequiredDescription
created_atTimestampyes
created_byActorRefyes
errorJobError or nullyesWhy the job failed, a code and a message; null otherwise.
finished_atTimestamp or nullyes
has_result_filebooleanyesTrue when the result is a file, fetched through POST /v1/jobs/{job_id}/result-url.
idJobIdyes
object"job"yes
progressJobProgressyes
resourceJobResource or nullyes
resultJobResult or nullyesA small result inline once succeeded, typed by the job type (WebhookReplayJobResult for webhook.replay, from 1.53.0 KnowledgeEvaluationJobResult for knowledge.evaluation, from 1.55.0 PromptEvalRunJobResult for prompt.evaluation and agent.conversation_test, from 1.56.0 AnalysisJobResult for call.analyze); null before.
started_atTimestamp or nullyes
statusJobStatusyes
typeJobTypeyes