---
title: "Create Workspace Campaign"
method: POST
path: "/api/workspaces/{workspace_id}/campaigns"
---

# Create Workspace Campaign

`POST /api/workspaces/{workspace_id}/campaigns`

## Path parameters

- `workspace_id` string, required

## Request body

- CampaignWriteRequest
  - `name` string, required
  - `selectedKnowledgeBaseId` string, nullable
  - `description` string, nullable
  - `industry` string, nullable
  - `prompt` string, nullable
  - `useCaseGoals` string, nullable
  - `conclusion` string, nullable
  - `type` 'OUTBOUND' | 'INBOUND' | 'ONE_WAY'
  - `agentId` string, nullable
  - `escalationEnabled` boolean
  - `maxAttempts` integer, nullable
  - `escalationWindowDays` integer, nullable
  - `callsPerWeek` integer, nullable
  - `escalationCampaignId` string, nullable
  - `phoneNumber` string, nullable
  - `inboundNumber` string, nullable
  - `enableManagerTransfer` boolean
  - `scheduleEnabled` boolean
  - `callbackTasksEnabled` boolean
  - `scheduledCallRetryDelayHours` integer
  - `scheduledCallMaxRetryAttempts` integer
  - `startTime` string
  - `endTime` string
  - `integrations` string[]
  - `taskTypes` string[]
  - `concurrency` integer
  - `defaultTtsLanguage` string
  - `defaultTtsVoice` string
  - `defaultTtsPace` number
  - `defaultTtsPitch` number
  - `promptAiSessionId` string, nullable
  - `tasksSchedulerConfig` object, nullable
  - `humanAgents` CampaignHumanAgentWriteRequest[], nullable
    - `name` string, required
    - `phone` string, required

## Response `201`

Successful Response

- CampaignEnvelopeResponse
  - `campaign` CampaignResponse, required
    - `id` string, required
    - `workspaceId` string, required
    - `selectedKnowledgeBaseId` string, nullable
    - `agentId` string, nullable
    - `name` string, required
    - `description` string, nullable
    - `industry` string, nullable
    - `prompt` string, nullable
    - `useCaseGoals` string, nullable
    - `conclusion` string, nullable
    - `escalationEnabled` boolean
    - `maxAttempts` integer, nullable
    - `escalationWindowDays` integer, nullable
    - `callsPerWeek` integer, nullable
    - `escalationCampaignId` string, nullable
    - `type` string, required
    - `phoneNumber` string, nullable
    - `inboundNumber` string, nullable
    - `enableManagerTransfer` boolean
    - `scheduleEnabled` boolean
    - `callbackTasksEnabled` boolean
    - `scheduledCallRetryDelayHours` integer
    - `scheduledCallMaxRetryAttempts` integer
    - `startTime` string
    - `endTime` string
    - `integrations` string[]
    - `taskTypes` string[]
    - `concurrency` integer
    - `defaultTtsLanguage` string
    - `defaultTtsVoice` string
    - `defaultTtsPace` number
    - `defaultTtsPitch` number
    - `promptAiGenerationsUsed` integer
    - `tasksSchedulerConfig` object, nullable
    - `leadsPublishedAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `agent` AgentSummaryResponse
      - `id` string, required
      - `name` string, required
    - `escalationCampaign` AgentSummaryResponse
      - `id` string, required
      - `name` string, required
    - `humanAgents` HumanAgentResponse[]
      - `id` string, required
      - `campaignId` string, required
      - `name` string, required
      - `phone` string, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `_count` CampaignCountsResponse
      - `leads` integer
      - `campaignAgents` integer
      - `sourceEscalationLinks` integer
    - `leads` LeadSummaryResponse[], nullable
      - `id` string, required
      - `name` string, required
      - `phone` string, nullable
    - `sourceEscalationLinks` EscalationLinkResponse[], nullable
      - `id` string, required
      - `sourceCampaignId` string, required
      - `targetCampaignId` string, nullable
      - `escalationContactName` string, required
      - `escalationContactPhone` string, required
      - `status` string, required
      - `escalatedAt` string, date-time, nullable
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `sourceLead` LeadSummaryResponse
        - `id` string, required
        - `name` string, required
        - `phone` string, nullable
      - `targetLead` LeadSummaryResponse
        - `id` string, required
        - `name` string, required
        - `phone` string, nullable
  - `message` string, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-07-26** `e7248cb2f50b` — 2 warning, 4 info
  - removed the request property `taskObjectives`
  - removed the optional property `campaign/taskObjectives` from the response with the `201` status
  - added the new optional request property `tasksSchedulerConfig`
  - added the new optional request property `useCaseGoals`
  - …2 more

[Change history](https://skmtc.dev/outcallerai/apis/fastapi/changes/api/workspaces/:workspace_id/campaigns/post.md)

---

[API](https://skmtc.dev/outcallerai/apis/fastapi.md) · [All operations](https://skmtc.dev/outcallerai/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/outcallerai/fastapi/revisions/e7248cb2f50b/schema)
