Update an existing campaign by ID
https://lumail.io/api/v1/campaigns/{campaignId}
Update an existing campaign's metadata and content. Only campaigns with DRAFT status can be updated. For scheduled campaigns, cancel the schedule first.
| Parameter | Type | Description |
|---|---|---|
campaignId | string | Required. The unique campaign ID |
| Field | Type | Description |
|---|---|---|
name | string | Internal name for the campaign |
subject | string | Email subject line |
preview | string | Preview text shown in email clients |
content | object | Email content in TipTap JSON format |
contentType | string | Content type: MAILY, PLATE, or MARKDOWN |
senderId | string | Email sender ID |
replyTo | string | Reply-to email address |
All fields are optional. Only provided fields will be updated.
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the operation was successful |
campaign | object | The updated campaign object |
campaign.id | string | Unique identifier for the campaign |
campaign.campaignId |
| string |
| Same as id (for consistency) |
campaign.name | string | Name of the campaign |
campaign.subject | string | Email subject line |
campaign.preview | string or null | Preview text for the email |
campaign.status | string | Campaign status (DRAFT) |
campaign.contentType | string | Content type: MAILY, PLATE, or MARKDOWN |
campaign.content | object | Email content in TipTap JSON format |
campaign.replyTo | string or null | Reply-to email address |
campaign.senderId | string | Email sender ID |
campaign.recipientCount | number | Number of recipients |
campaign.createdAt | string | ISO timestamp when the campaign was created |
campaign.updatedAt | string | ISO timestamp when the campaign was last updated |
campaignId | string | Campaign ID at the root level for convenience |
senderId, the sender must exist and belong to your organization.Use this API endpoint to: