Campaigns
Update a campaign
Changed onEdit a draft campaign: its sender, its steps or whether it stops on reply. steps replaces every step, so send them all, as read from GET /v1/campaigns/:campaignId. Recipients and whether they are people or companies can't change.<br/><Warning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.</Warning>
patch/v1/campaigns/{campaignId}
Request
- Base URLhttps://api.folk.app
- URLhttps://api.folk.app/v1/campaigns/{campaignId}
- AuthHTTP bearer
Path parameters
campaignIdstring required
The ID of the campaign.
Headers
Idempotency-Keystring
A unique key, such as a UUID, that makes retrying this request safe: a retry with the same key and body returns the original response without running the operation again. Keys are kept for 24 hours after the request completes.
Example:8e03978e-40d5-43e8-bc93-6894a57f9324
Request body
Example request
{
"steps": [
{
"subject": "Quick question, {{firstName}}",
"body": "<p>Hi {{firstName}},</p><p>{{signature}}</p>"
}
]
}Response
The campaign, with its steps.
Example response
{
"data": {
"id": "cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b",
"name": "Q3 outreach",
"status": "draft",
"groupId": "grp_bc984b3f-0386-434d-82d7-a91eb6badd71",
"entityType": "person",
"steps": [
{
"position": 1,
"sender": {
"id": "snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a",
"email": "john.doe@example.com",
"displayName": "John Doe"
},
"subject": "Quick question, {{firstName}}",
"body": "<p>Hi {{firstName}},</p><p>{{signature}}</p>",
"cc": [],
"bcc": [],
"delayDays": 0,
"sameThread": false,
"status": "draft",
"messageCount": 0,
"sentCount": 0,
"notSentCount": 0
},
{
"position": 2,
"sender": {
"id": "snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a",
"email": "john.doe@example.com",
"displayName": "John Doe"
},
"subject": "",
"body": "<p>Following up on my last email, {{firstName}}.</p><p>{{signature}}</p>",
"cc": [],
"bcc": [],
"delayDays": 3,
"sameThread": true,
"status": "draft",
"messageCount": 0,
"sentCount": 0,
"notSentCount": 0
}
],
"stopOnReply": true,
"recipientCount": 12,
"createdBy": "usr_bc984b3f-0386-434d-82d7-a91eb6badd71",
"createdAt": "2025-07-17T09:00:00.000Z",
"updatedAt": "2025-07-17T09:00:00.000Z",
"scheduledAt": null,
"startedAt": null,
"finishedAt": null,
"error": null
},
"deprecations": [
"This field is deprecated"
]
}Changes
- info
endpoint added
- info