Update Campaign Message
Updates one campaign message's sender or content. Read Get Email Campaign for messages[].id, then pass campaignId, messageId, and changes. Supports STANDARD, AUTOMATION, and AB_TEST campaigns while DRAFT or PAUSED; omitted fields are unchanged. Use this endpoint to set fromEmailUsername, fromName, and fromDomain on workflow emails. Use Update Email Campaign for workflowId and workflowStepId links.
Authorization
Authorization In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
When to send this message, as an ISO 8601 timestamp with a timezone offset. Null clears it.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/projects/string/email-campaigns/string/messages/string" \ -H "Content-Type: application/json" \ -d '{ "changes": {} }'{ "id": "string", "createdAt": "string", "updatedAt": "string", "projectId": "string", "emailCampaignId": "string", "label": "string", "fromName": "string", "fromEmailUsername": "string", "fromDomain": "string", "bcc": "string", "cc": "string", "replyTo": "string", "text": "string", "subjectHTML": "string", "previewTextHTML": "string", "bodyHTML": "string", "scheduledAt": "string", "sentAt": "string", "lastSuccessContactId": "string", "lastSuccessContactCreatedAt": "string", "bodyJSON": { "property1": null, "property2": null }, "previewTextJSON": { "property1": null, "property2": null }, "sendCount": 0, "subjectJSON": { "property1": null, "property2": null }, "theme": { "body": { "align": "left", "background": "string", "container": "string" }, "button": { "background": "string", "borderColor": "string", "borderSize": 0, "color": "string", "radius": 0 }, "link": { "color": "string" }, "template": "string", "typography": { "h1": { "color": "string", "fontSize": 0, "lineHeight": 0 }, "h2": { "color": "string", "fontSize": 0, "lineHeight": 0 }, "h3": { "color": "string", "fontSize": 0, "lineHeight": 0 }, "p": { "color": "string", "fontSize": 0, "lineHeight": 0 } } }}Get Email Stats
Aggregate delivery and engagement figures for one campaign: sent, delivered, opened, clicked, bounced, complained, and delivery-delayed. Each comes back as a raw `total`, a `unique` count that collapses repeat events from the same recipient, and a `rate`, so open rate is not just opens divided by sends. For the per-recipient breakdown behind these numbers use List Emails.
List Emails
The per-recipient send log for one campaign: who it went to, current status, and delivery timestamps. Paginated, and returns `total` alongside the rows so you can page without a second call. Filter by `status` to answer questions like "who bounced", or by `messageId` / `sendPhase` to isolate one side of an A/B test.