v1Resources/Review Invites/postRun a campaign lifecycle action

Run a campaign lifecycle action

Runs one lifecycle action on a campaign. publish launches it — if autoSend is on this starts sending real emails or texts immediately, and it's gated per channel: a campaign that includes EMAIL needs a verified sending domain for the client, and one that includes SMS needs a carrier-verified number for the location. Either gate failing returns an explanatory 422; provisioning a domain or phone number is a UI-only step, not something this API can do on your behalf. stop halts an active campaign. clone duplicates it as a new draft. autoSend turns automatic sending on or off for new recipients — pass on. archive archives a stopped campaign; on a still-active one this is a no-op, not an error — the response is {id, skipped: true} instead of the full campaign, so check for skipped rather than assuming data is always a Campaign. unarchive restores an archived campaign.

post/api/v1/review-invites/campaigns/{id}/action
review-invite:write
Query parameters
idstringrequired
The campaign to act on. Required.
Request body
opstring (publish | stop | clone | autoSend | archive | unarchive)required
apiDocs.resources.review-invites.action.paramsOp
onbooleanoptional
apiDocs.resources.review-invites.action.paramsOn
Response
dataobjectoptional
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
404The resource wasn't found, or doesn't belong to your agency.
422The request is missing a required parameter or is otherwise malformed.
429Too many requests. Retry after the number of seconds in the Retry-After header.
post/api/v1/review-invites/campaigns/{id}/action
Your API key
id *
Request body*
{
  "data": {
    "id": "cm_campaign_1",
    "agencyId": "cm_agency_1",
    "locationId": "cm_loc_1",
    "clientLocationId": "cm_loc_1",
    "name": "Spring Checkup Follow-up (copy)",
    "campaignType": "email_sms",
    "channels": "EMAIL",
    "status": "draft",
    "fromEmail": null,
    "replyToEmail": null,
    "emailSubject": "How was your visit?",
    "emailBody": null,
    "smsBody": null,
    "smsReviewSite": null,
    "reviewSites": null,
    "screeningEnabled": false,
    "landingTitle": null,
    "landingContent": null,
    "hideAddress": false,
    "hideBusinessName": false,
    "followups": null,
    "stopFollowupOnClick": false,
    "scheduleAt": null,
    "timezone": null,
    "autoSend": false,
    "staticUrl": null,
    "launchedAt": null,
    "emailHtml": null,
    "thankYouEnabled": false,
    "thankYouSubject": null,
    "thankYouBody": null,
    "thankYouDelayHours": 12,
    "funnelThreshold": 4,
    "funnelStyle": null,
    "lowRankContent": null,
    "hideFeedbackBox": false,
    "ratingMechanism": null,
    "askName": true,
    "askFeedback": true,
    "archivedAt": null,
    "hideImage": false,
    "clientId": "cm_client_1",
    "createdAt": "2026-01-21T10:05:00.000Z",
    "updatedAt": "2026-01-21T10:05:00.000Z",
    "createdByUserId": null,
    "createdByType": "user",
    "archived": false
  }
}