# MCP tool reference

1 callable tools.

Use tools/call at https://mcp.schedulerzero.com/mcp with the exact tool name and arguments below. The /tools/ paths in this view are documentation identifiers, not HTTP endpoints. Request execution is disabled for this reference.

Inputs are shown for personal API keys (bound) and for OAuth/delegated agents. Output schemas describe MCP structuredContent: native objects pass through; arrays, scalars and null use a data wrapper. Text content retains the native JSON result.

[Connect a client](/mcp/connect) · [Authentication and authorization](/authentication) · [Generated auth guide](/auth.md) · [Download tool catalog](/mcp-catalog.json) · [Agent documentation](/llms.txt)

## launch_campaign

Launch a draft campaign: preview binds the exact version and input hash, commit activates the campaign in-request and returns an already-succeeded operation handle.

Use to start sending for a draft campaign after inspect_campaign and validate_campaign pass.

Never launch without a preview token, and never reuse one after the campaign changed or the token expired.

Use the native preview first and pass its confirmation token unchanged to commit. A token does not bypass current permissions or Workspace checks.

Scopes: campaign:launch

Risk: costly; confirmation: preview_token; idempotency: required.

### Input schema (personal API key)

```json
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "preview"
          ]
        },
        "workspaceId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "campaignId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        }
      },
      "required": [
        "action",
        "workspaceId",
        "campaignId"
      ],
      "patternProperties": {
        "^(?!(?:action|workspaceId|campaignId)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "action",
          "workspaceId",
          "campaignId"
        ]
      }
    },
    {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "commit"
          ]
        },
        "workspaceId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "campaignId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "confirmationToken": {
          "type": "string"
        }
      },
      "required": [
        "action",
        "workspaceId",
        "campaignId",
        "confirmationToken"
      ],
      "patternProperties": {
        "^(?!(?:action|workspaceId|campaignId|confirmationToken)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "action",
          "workspaceId",
          "campaignId",
          "confirmationToken"
        ]
      }
    }
  ]
}
```

### Input schema (OAuth / delegated agent)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "format": "uuid",
      "description": "Target Workspace UUID. Call list_workspaces to enumerate the Workspaces this credential may access, then pass the chosen id here."
    }
  },
  "required": [
    "workspaceId"
  ],
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "workspaceId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "action": {
          "type": "string",
          "enum": [
            "preview"
          ]
        },
        "campaignId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        }
      },
      "required": [
        "action",
        "workspaceId",
        "campaignId"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId)$)[\\s\\S]*?(?:^(?!(?:action|workspaceId|campaignId)$)[\\s\\S]*$)": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "action",
              "workspaceId",
              "campaignId"
            ]
          },
          {
            "enum": [
              "workspaceId"
            ]
          }
        ]
      }
    },
    {
      "type": "object",
      "properties": {
        "workspaceId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "action": {
          "type": "string",
          "enum": [
            "commit"
          ]
        },
        "campaignId": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "confirmationToken": {
          "type": "string"
        }
      },
      "required": [
        "action",
        "workspaceId",
        "campaignId",
        "confirmationToken"
      ],
      "patternProperties": {
        "^(?!(?:workspaceId)$)[\\s\\S]*?(?:^(?!(?:action|workspaceId|campaignId|confirmationToken)$)[\\s\\S]*$)": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "action",
              "workspaceId",
              "campaignId",
              "confirmationToken"
            ]
          },
          {
            "enum": [
              "workspaceId"
            ]
          }
        ]
      }
    }
  ]
}
```

### Output schema (structuredContent)

```json
{
  "$defs": {
    "Description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "NonEmptyString": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "OpaqueId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "Money": {
      "type": "object",
      "properties": {
        "amountMinor": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "currency": {
          "type": "string",
          "enum": [
            "AED",
            "AFN",
            "ALL",
            "AMD",
            "AOA",
            "ARS",
            "AUD",
            "AWG",
            "AZN",
            "BAM",
            "BBD",
            "BDT",
            "BHD",
            "BIF",
            "BMD",
            "BND",
            "BOB",
            "BOV",
            "BRL",
            "BSD",
            "BTN",
            "BWP",
            "BYN",
            "BZD",
            "CAD",
            "CDF",
            "CHE",
            "CHF",
            "CHW",
            "CLF",
            "CLP",
            "CNY",
            "COP",
            "COU",
            "CRC",
            "CUP",
            "CVE",
            "CZK",
            "DJF",
            "DKK",
            "DOP",
            "DZD",
            "EGP",
            "ERN",
            "ETB",
            "EUR",
            "FJD",
            "FKP",
            "GBP",
            "GEL",
            "GHS",
            "GIP",
            "GMD",
            "GNF",
            "GTQ",
            "GYD",
            "HKD",
            "HNL",
            "HTG",
            "HUF",
            "IDR",
            "ILS",
            "INR",
            "IQD",
            "IRR",
            "ISK",
            "JMD",
            "JOD",
            "JPY",
            "KES",
            "KGS",
            "KHR",
            "KMF",
            "KPW",
            "KRW",
            "KWD",
            "KYD",
            "KZT",
            "LAK",
            "LBP",
            "LKR",
            "LRD",
            "LSL",
            "LYD",
            "MAD",
            "MDL",
            "MGA",
            "MKD",
            "MMK",
            "MNT",
            "MOP",
            "MRU",
            "MUR",
            "MVR",
            "MWK",
            "MXN",
            "MXV",
            "MYR",
            "MZN",
            "NAD",
            "NGN",
            "NIO",
            "NOK",
            "NPR",
            "NZD",
            "OMR",
            "PAB",
            "PEN",
            "PGK",
            "PHP",
            "PKR",
            "PLN",
            "PYG",
            "QAR",
            "RON",
            "RSD",
            "RUB",
            "RWF",
            "SAR",
            "SBD",
            "SCR",
            "SDG",
            "SEK",
            "SGD",
            "SHP",
            "SLE",
            "SOS",
            "SRD",
            "SSP",
            "STN",
            "SVC",
            "SYP",
            "SZL",
            "THB",
            "TJS",
            "TMT",
            "TND",
            "TOP",
            "TRY",
            "TTD",
            "TWD",
            "TZS",
            "UAH",
            "UGX",
            "USD",
            "USN",
            "UYI",
            "UYU",
            "UYW",
            "UZS",
            "VED",
            "VES",
            "VND",
            "VUV",
            "WST",
            "XAD",
            "XAF",
            "XAG",
            "XAU",
            "XBA",
            "XBB",
            "XBC",
            "XBD",
            "XCD",
            "XCG",
            "XDR",
            "XOF",
            "XPD",
            "XPF",
            "XPT",
            "XSU",
            "XTS",
            "XUA",
            "XXX",
            "YER",
            "ZAR",
            "ZMW",
            "ZWG"
          ]
        }
      },
      "required": [
        "amountMinor",
        "currency"
      ],
      "patternProperties": {
        "^(?!(?:amountMinor|currency)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "amountMinor",
          "currency"
        ]
      }
    },
    "ShortText": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    },
    "HttpUrl": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
    },
    "HttpResourcePath": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^\\/[A-Za-z0-9._~!$&'()*+,;=:@/%-]*$"
    }
  },
  "type": "object",
  "anyOf": [
    {
      "allOf": [
        {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "campaignId": {
                  "type": "string",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                  "format": "uuid"
                },
                "campaignVersion": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "preview": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "$ref": "#/$defs/Description"
                    },
                    "affected": {
                      "type": "object",
                      "properties": {
                        "resourceCounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "$ref": "#/$defs/NonEmptyString"
                              },
                              "count": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "type",
                              "count"
                            ],
                            "patternProperties": {
                              "^(?!(?:type|count)$)[\\s\\S]*$": false
                            },
                            "additionalProperties": true,
                            "propertyNames": {
                              "type": "string",
                              "enum": [
                                "type",
                                "count"
                              ]
                            }
                          },
                          "maxItems": 64
                        },
                        "resourceIds": {
                          "type": "array",
                          "items": {
                            "$ref": "#/$defs/OpaqueId"
                          },
                          "maxItems": 256
                        }
                      },
                      "required": [
                        "resourceCounts",
                        "resourceIds"
                      ],
                      "patternProperties": {
                        "^(?!(?:resourceCounts|resourceIds)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "resourceCounts",
                          "resourceIds"
                        ]
                      }
                    },
                    "costEstimate": {
                      "type": "object",
                      "properties": {
                        "min": {
                          "$ref": "#/$defs/Money"
                        },
                        "max": {
                          "$ref": "#/$defs/Money"
                        }
                      },
                      "required": [
                        "min",
                        "max"
                      ],
                      "patternProperties": {
                        "^(?!(?:min|max)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "min",
                          "max"
                        ]
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      },
                      "maxItems": 32
                    },
                    "irreversibleFacts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/$defs/ShortText"
                      },
                      "maxItems": 32
                    },
                    "inputHash": {
                      "$ref": "#/$defs/OpaqueId"
                    },
                    "previewVersion": {
                      "$ref": "#/$defs/NonEmptyString"
                    },
                    "expiresAt": {
                      "$ref": "#/$defs/UtcDateTimeEncoded"
                    }
                  },
                  "required": [
                    "summary",
                    "affected",
                    "warnings",
                    "irreversibleFacts",
                    "inputHash",
                    "previewVersion",
                    "expiresAt"
                  ],
                  "patternProperties": {
                    "^(?!(?:summary|affected|costEstimate|warnings|irreversibleFacts|inputHash|previewVersion|expiresAt)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "affected",
                      "costEstimate",
                      "warnings",
                      "irreversibleFacts",
                      "inputHash",
                      "previewVersion",
                      "expiresAt"
                    ]
                  }
                },
                "confirmationToken": {
                  "$ref": "#/$defs/OpaqueId"
                }
              },
              "required": [
                "campaignId",
                "campaignVersion",
                "preview",
                "confirmationToken"
              ],
              "patternProperties": {
                "^(?!(?:campaignId|campaignVersion|preview|confirmationToken)$)[\\s\\S]*$": false
              },
              "additionalProperties": true,
              "propertyNames": {
                "type": "string",
                "enum": [
                  "campaignId",
                  "campaignVersion",
                  "preview",
                  "confirmationToken"
                ]
              }
            },
            {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                  "format": "uuid"
                },
                "statusUrl": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/HttpUrl"
                    },
                    {
                      "$ref": "#/$defs/HttpResourcePath"
                    }
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "queued",
                    "running",
                    "waiting_for_user",
                    "succeeded",
                    "partially_succeeded",
                    "failed",
                    "canceled",
                    "canceling"
                  ]
                },
                "acceptedAt": {
                  "$ref": "#/$defs/UtcDateTimeEncoded"
                },
                "progress": {
                  "type": "object",
                  "properties": {
                    "completed": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "total": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "message": {
                      "$ref": "#/$defs/NonEmptyString"
                    }
                  },
                  "required": [
                    "completed"
                  ],
                  "patternProperties": {
                    "^(?!(?:completed|total|message)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "completed",
                      "total",
                      "message"
                    ]
                  }
                },
                "canCancel": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "statusUrl",
                "state",
                "acceptedAt",
                "canCancel"
              ],
              "patternProperties": {
                "^(?!(?:id|statusUrl|state|acceptedAt|progress|canCancel)$)[\\s\\S]*$": false
              },
              "additionalProperties": true,
              "propertyNames": {
                "type": "string",
                "enum": [
                  "id",
                  "statusUrl",
                  "state",
                  "acceptedAt",
                  "progress",
                  "canCancel"
                ]
              }
            }
          ]
        },
        {
          "type": "object"
        }
      ]
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "allOf": [
            {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "campaignId": {
                      "type": "string",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                      "format": "uuid"
                    },
                    "campaignVersion": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "preview": {
                      "type": "object",
                      "properties": {
                        "summary": {
                          "$ref": "#/$defs/Description"
                        },
                        "affected": {
                          "type": "object",
                          "properties": {
                            "resourceCounts": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "type": {
                                    "$ref": "#/$defs/NonEmptyString"
                                  },
                                  "count": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "type",
                                  "count"
                                ],
                                "patternProperties": {
                                  "^(?!(?:type|count)$)[\\s\\S]*$": false
                                },
                                "additionalProperties": true,
                                "propertyNames": {
                                  "type": "string",
                                  "enum": [
                                    "type",
                                    "count"
                                  ]
                                }
                              },
                              "maxItems": 64
                            },
                            "resourceIds": {
                              "type": "array",
                              "items": {
                                "$ref": "#/$defs/OpaqueId"
                              },
                              "maxItems": 256
                            }
                          },
                          "required": [
                            "resourceCounts",
                            "resourceIds"
                          ],
                          "patternProperties": {
                            "^(?!(?:resourceCounts|resourceIds)$)[\\s\\S]*$": false
                          },
                          "additionalProperties": true,
                          "propertyNames": {
                            "type": "string",
                            "enum": [
                              "resourceCounts",
                              "resourceIds"
                            ]
                          }
                        },
                        "costEstimate": {
                          "type": "object",
                          "properties": {
                            "min": {
                              "$ref": "#/$defs/Money"
                            },
                            "max": {
                              "$ref": "#/$defs/Money"
                            }
                          },
                          "required": [
                            "min",
                            "max"
                          ],
                          "patternProperties": {
                            "^(?!(?:min|max)$)[\\s\\S]*$": false
                          },
                          "additionalProperties": true,
                          "propertyNames": {
                            "type": "string",
                            "enum": [
                              "min",
                              "max"
                            ]
                          }
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "$ref": "#/$defs/ShortText"
                          },
                          "maxItems": 32
                        },
                        "irreversibleFacts": {
                          "type": "array",
                          "items": {
                            "$ref": "#/$defs/ShortText"
                          },
                          "maxItems": 32
                        },
                        "inputHash": {
                          "$ref": "#/$defs/OpaqueId"
                        },
                        "previewVersion": {
                          "$ref": "#/$defs/NonEmptyString"
                        },
                        "expiresAt": {
                          "$ref": "#/$defs/UtcDateTimeEncoded"
                        }
                      },
                      "required": [
                        "summary",
                        "affected",
                        "warnings",
                        "irreversibleFacts",
                        "inputHash",
                        "previewVersion",
                        "expiresAt"
                      ],
                      "patternProperties": {
                        "^(?!(?:summary|affected|costEstimate|warnings|irreversibleFacts|inputHash|previewVersion|expiresAt)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "summary",
                          "affected",
                          "costEstimate",
                          "warnings",
                          "irreversibleFacts",
                          "inputHash",
                          "previewVersion",
                          "expiresAt"
                        ]
                      }
                    },
                    "confirmationToken": {
                      "$ref": "#/$defs/OpaqueId"
                    }
                  },
                  "required": [
                    "campaignId",
                    "campaignVersion",
                    "preview",
                    "confirmationToken"
                  ],
                  "patternProperties": {
                    "^(?!(?:campaignId|campaignVersion|preview|confirmationToken)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "campaignId",
                      "campaignVersion",
                      "preview",
                      "confirmationToken"
                    ]
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
                      "format": "uuid"
                    },
                    "statusUrl": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/HttpUrl"
                        },
                        {
                          "$ref": "#/$defs/HttpResourcePath"
                        }
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "queued",
                        "running",
                        "waiting_for_user",
                        "succeeded",
                        "partially_succeeded",
                        "failed",
                        "canceled",
                        "canceling"
                      ]
                    },
                    "acceptedAt": {
                      "$ref": "#/$defs/UtcDateTimeEncoded"
                    },
                    "progress": {
                      "type": "object",
                      "properties": {
                        "completed": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "total": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "message": {
                          "$ref": "#/$defs/NonEmptyString"
                        }
                      },
                      "required": [
                        "completed"
                      ],
                      "patternProperties": {
                        "^(?!(?:completed|total|message)$)[\\s\\S]*$": false
                      },
                      "additionalProperties": true,
                      "propertyNames": {
                        "type": "string",
                        "enum": [
                          "completed",
                          "total",
                          "message"
                        ]
                      }
                    },
                    "canCancel": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "statusUrl",
                    "state",
                    "acceptedAt",
                    "canCancel"
                  ],
                  "patternProperties": {
                    "^(?!(?:id|statusUrl|state|acceptedAt|progress|canCancel)$)[\\s\\S]*$": false
                  },
                  "additionalProperties": true,
                  "propertyNames": {
                    "type": "string",
                    "enum": [
                      "id",
                      "statusUrl",
                      "state",
                      "acceptedAt",
                      "progress",
                      "canCancel"
                    ]
                  }
                }
              ]
            },
            {
              "not": {
                "type": "object"
              }
            }
          ]
        }
      },
      "required": [
        "data"
      ],
      "additionalProperties": false
    }
  ]
}
```

### Underlying API operations

- `campaigns.previewLaunch`: `POST /v1/workspaces/:workspaceId/campaigns/:campaignId/launch-preview`
- `campaigns.launch`: `POST /v1/workspaces/:workspaceId/campaigns/:campaignId/launch`

