Skip to content
POST/{organizationId}/{mandateId}/crm/mailings/{mailingId}

Update mailing

Updates a mailing

Required permissions:

  • mandate.read

  • mailing.insert

Path Parameters

mailingIdstringrequired
organizationIdstringrequired
mandateIdstringrequired

Request Body required

Content-Type: application/json

namestringrequired

minLength: 1

maxLength: 100

descriptionstringrequired

maxLength: 140

typestringrequired

Options:

emailletter
contactTypestring | nullrequired

Options:

memberaddresscustomersponsorcontributoremployeesupplier
scheduledAtdate-time | nullrequired

maxItems: 10

sendToAlternativeCommunicationsbooleanrequired
onlySendToMissingEmailAddressesbooleanrequired
templateContentsDefaultbooleanrequired
draftbooleanoptional

Default: true

Authentication: X-API-Key

Request

POST/{organizationId}/{mandateId}/crm/mailings/{mailingId}
curl --request POST 'https://cloud.campai.com/api/{organizationId}/{mandateId}/crm/mailings/{mailingId}' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "string",
  "description": "string",
  "type": "email",
  "contactType": "member",
  "letter": {
    "sendColorPostal": true,
    "sendWithCheaperMethod": true
  },
  "scheduledAt": "2026-06-15T22:30:00Z",
  "tags": [
    "string"
  ],
  "templateAttachment": {},
  "sendToAlternativeCommunications": true,
  "onlySendToMissingEmailAddresses": true,
  "templateContentsDefault": true,
  "templateContents": {},
  "recipients": {
    "segments": [
      "string"
    ],
    "sharedSegmentsFilter": {
      "organizations": [
        "000000000000000000000001"
      ],
      "scope": "shared",
      "sharedSegment": "string"
    }
  },
  "email": {
    "tracking": true,
    "unsubscribe": true,
    "subject": "string",
    "previewText": "string",
    "replyTo": "string"
  }
}'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

ObjectId as string

Response

200
{
  "_id": "000000000000000000000001"
}

400Invalid input data

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

400
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401Authorization not provided

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

401
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403Insufficient access

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

500Internal server error

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}