v1Resources/Review Invites/patchUpdate a campaign

Update a campaign

Edits a campaign's configuration. Pass only the fields you want to change. To change lifecycle status (publish, stop, clone, archive, unarchive) use the action endpoint instead of setting status directly here.

patch/api/v1/review-invites/campaigns/{id}
review-invite:write
Query parameters
idstringrequired
The campaign to update. Required.
Request body
namestringoptional
The campaign's display name.
locationIdstringoptional
The location this campaign sends invites for. Required on create.
campaignTypestringoptional
The channel mix, e.g. email, sms, email_sms.
channelsstringoptional
Which channels the campaign sends on: EMAIL, SMS, or SMS_AND_EMAIL. Email requirements (a from address, a verified sending domain) only apply when EMAIL is included; an SMS-only campaign instead needs a carrier-verified number for its location.
fromEmailstringoptional
The sending "from" email address. Requires a verified sending domain to actually send.
replyToEmailstringoptional
The reply-to email address.
emailSubjectstringoptional
The email's subject line.
emailBodyobjectoptional
The email body, as the rich-text JSON the campaign builder's editor produces.
emailHtmlstringoptional
Rendered HTML fallback of the email body.
smsBodystringoptional
The SMS message text.
smsReviewSitestringoptional
Which review site the SMS link points to.
reviewSitesobjectoptional
The review site(s) offered to happy customers, as the builder's JSON shape.
screeningEnabledbooleanoptional
Whether to screen customers by star rating before directing them to a public review site.
landingTitlestringoptional
Title shown on the campaign's landing page.
landingContentstringoptional
Body content shown on the campaign's landing page.
hideAddressbooleanoptional
Hide the business address on the landing page.
hideBusinessNamebooleanoptional
Hide the business name on the landing page.
hideImagebooleanoptional
Hide the business image on the landing page.
followupsobjectoptional
Follow-up reminder schedule, as the builder's JSON shape.
stopFollowupOnClickbooleanoptional
Stop sending follow-ups once the recipient clicks through.
scheduleAtstringoptional
ISO datetime to schedule the campaign launch for. Leave empty to send immediately on publish.
timezonestringoptional
IANA timezone for scheduling, e.g. America/New_York.
autoSendbooleanoptional
Whether new recipients are sent to automatically once the campaign is launched.
staticUrlstringoptional
A static/QR review-request URL slug for this campaign, if used instead of or alongside email/SMS sends.
thankYouEnabledbooleanoptional
Whether to show a thank-you follow-up after a positive review.
thankYouSubjectstringoptional
Thank-you email subject.
thankYouBodystringoptional
Thank-you email body.
thankYouDelayHoursnumberoptional
Hours to wait before sending the thank-you follow-up.
funnelThresholdnumberoptional
Star-rating threshold that routes a respondent to the public review site vs. private feedback.
funnelStyleobjectoptional
Funnel presentation style, as the builder's JSON shape.
lowRankContentstringoptional
Content shown to respondents who rate below funnelThreshold.
hideFeedbackBoxbooleanoptional
Hide the free-text feedback box on the landing page.
collectModestringoptional
How feedback is collected on the landing page.
ratingMechanismobjectoptional
The star/rating widget configuration, as the builder's JSON shape.
askNamebooleanoptional
Ask the respondent for their name.
askFeedbackbooleanoptional
Ask the respondent for free-text feedback.
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.
429Too many requests. Retry after the number of seconds in the Retry-After header.
patch/api/v1/review-invites/campaigns/{id}
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 (updated)",
    "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": true,
    "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-20T09:00:00.000Z",
    "updatedAt": "2026-01-21T10:00:00.000Z",
    "createdByUserId": null,
    "createdByType": "user",
    "archived": false
  }
}