> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# UpdateCampaignInput

> Fields to change on a campaign. Omitted fields are left unchanged. `segmentIds`, `excludedSegmentIds`, `emailVariants`, `smsVariants`, and `tags` replace the whole list.

<ResponseField name="clearFollowUp" type="Boolean">
  If true, disables the follow-up email.
</ResponseField>

<ResponseField name="clearFromAddress" type="Boolean">
  If true, reverts From to the store default.
</ResponseField>

<ResponseField name="clearReplyToAddress" type="Boolean">
  If true, reverts Reply-To to the store default.
</ResponseField>

<ResponseField name="clearSchedule" type="Boolean">
  If true, removes the campaign's schedule. Cannot be combined with other schedule fields.
</ResponseField>

<ResponseField name="emailPreviewText" type="String">
  Replace the preview text on every email variant.
</ResponseField>

<ResponseField name="emailSubject" type="String">
  Replace the subject line on every email variant.
</ResponseField>

<ResponseField name="emailVariants" type={<a href="/docs/api-reference/v3/reference/marketing/campaign-email-variant-input">[CampaignEmailVariantInput!]</a>}>
  Replace the email arms. One arm is a single send; two or more is an A/B split. Each `templateId` is an existing template.

  <Expandable title="fields" lazyRender>
    <ResponseField name="abTestWeight" type="Float!" required>
      Share of recipients for this arm, 0 through 1. A single arm uses 1; split tests must sum to 1.
    </ResponseField>

    <ResponseField name="templateId" type="ID!" required>
      An existing email template to send. Branded ids and 24-char legacy ids are accepted.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="excludedSegmentIds" type="[ID!]">
  Replace the excluded audience with these segments.
</ResponseField>

<ResponseField name="followUp" type={<a href="/docs/api-reference/v3/reference/marketing/campaign-follow-up-input">CampaignFollowUpInput</a>}>
  Set follow-up email settings. Email campaigns only. Cannot be combined with `clearFollowUp`.

  <Expandable title="fields" lazyRender>
    <ResponseField name="delayMs" type="Float">
      Delay after the original send, in milliseconds. At least one day when enabled.
    </ResponseField>

    <ResponseField name="enabled" type="Boolean!" required>
      Whether a follow-up email should send after this campaign.
    </ResponseField>

    <ResponseField name="engagementPeriod" type={<a href="/docs/api-reference/v3/reference/marketing/campaign-follow-up-engagement-period">CampaignFollowUpEngagementPeriod</a>}>
      How long after the original send to look for engagement. Required when enabled.
    </ResponseField>

    <ResponseField name="subjectLine" type="String">
      Subject line for the follow-up. Required when enabled.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="fromAddressId" type="ID">
  From mailbox from `emailAddresses`. Email campaigns only. Cannot be combined with `clearFromAddress`.
</ResponseField>

<ResponseField name="name" type="String">
  The merchant-facing name of the campaign.
</ResponseField>

<ResponseField name="replyToAddressId" type="ID">
  Reply-To mailbox from `emailAddresses`. Email campaigns only. Cannot be combined with `clearReplyToAddress`.
</ResponseField>

<ResponseField name="scheduledAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime</a>}>
  When to start sending, as one UTC instant. Clears a local-time schedule. Use `clearSchedule` to unschedule.
</ResponseField>

<ResponseField name="scheduledAtTimeZone" type="String">
  IANA time zone for displaying `scheduledAt`. Requires `scheduledAt`. Omit to leave the current display zone unchanged.
</ResponseField>

<ResponseField name="scheduledLocalFallbackTimeZone" type="String">
  IANA time zone used when a recipient has none. Must be paired with `scheduledLocalTime`.
</ResponseField>

<ResponseField name="scheduledLocalTime" type="String">
  Send at this wall-clock time in each recipient's time zone, as `YYYY-MM-DDTHH:mm:ss`. Must be paired with `scheduledLocalFallbackTimeZone`. Clears `scheduledAt`.
</ResponseField>

<ResponseField name="segmentIds" type="[ID!]">
  Replace the included audience with these segments.
</ResponseField>

<ResponseField name="smsContent" type="String">
  Replace the body on every SMS variant.
</ResponseField>

<ResponseField name="smsVariants" type={<a href="/docs/api-reference/v3/reference/marketing/campaign-sms-variant-input">[CampaignSmsVariantInput!]</a>}>
  Replace the SMS arms. One arm is a single send; two or more is an A/B split. Each `templateId` is an existing template.

  <Expandable title="fields" lazyRender>
    <ResponseField name="abTestWeight" type="Float!" required>
      Share of recipients for this arm, 0 through 1. A single arm uses 1; split tests must sum to 1.
    </ResponseField>

    <ResponseField name="templateId" type="ID!" required>
      An existing SMS template to send. Branded ids and 24-char legacy ids are accepted.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="tags" type="[String!]">
  Replace campaign tags with these names, in order. Names must already exist. Pass an empty list to clear.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.