Widgets
Update Popup
Update, publish, or unpublish a saved popup
PATCH
Update Popup
Update a saved popup. Only the fields you send change.
Set
Unpublish a popup without deleting it:
status to published to make the popup live, or draft to stop it
showing while keeping the popup, its stats, and its embed script. The
trigger, targeting, schedule, frequency, and visual objects are merged
key by key, so patching one key keeps the rest.
Request
string
Internal popup name.
string
draft or published.string[]
Replacement list targeting. Pass an empty array to capture into every list.
string[]
Replacement tag IDs. Pass an empty array to clear tags.
string
skip, merge, or overwrite.string
What happens when a contact who unsubscribed from all email submits this popup
again.
reactivate resubscribes them and restores the popup’s lists.
double_opt_in sends your double opt-in confirmation email first and
resubscribes them once they confirm. Turning on double_opt_in needs a double
opt-in confirmation email and a sender profile; otherwise the request returns
400. If the email or sender is removed later, returning unsubscribed
contacts stay unsubscribed until you fix it. When workspace double opt-in is
on, contacts always confirm first. duplicateStrategy never changes
subscription status.boolean
Run a Cloudflare Turnstile check before each signup, invisibly for most
visitors. Signups that fail it must confirm by email before they are
subscribed. Turning it on needs a double opt-in confirmation email and a
sender profile, otherwise the request returns
400. See Bot protection
frame. Omit to keep the current setting.string
New text for the popup’s first heading block. Fails when the popup has no
heading block; edit
blocks instead.string
New text for the popup’s first paragraph block. Fails when the popup has no
paragraph block; edit
blocks instead.string
Submit button label.
string
Success screen message.
string
HTTP or HTTPS success redirect. Pass an empty string to switch back to the
confirmation message.
string
modal, slide-in, floating-bar, or fullscreen.string
center, left, right, top, or bottom.object
Partial trigger patch, merged into the current trigger.
object
Partial targeting patch, merged into the current targeting.
object
Partial schedule patch, merged into the current schedule.
object
Partial frequency patch, merged into the current frequency.
object
Partial visual patch, merged into the current visual. The
image style
requires an https imageUrl - the image panel is painted as a background, so
a missing or blocked image would leave an empty column beside your content.object
Scratch-to-reveal reward, merged key by key. When
enabled is true the
popup opens on a scratch card. The visitor scratches it, or taps Tap to
reveal, to see the public teaser, clicks Claim, enters their email, and
then sees the private value and optional code. See Scratch to reveal
rewards.{ "enabled": true, "value": "10% off your first order", "code": "WELCOME10", "heading": "Try your luck", "subheading": "...", "teaserEyebrow": "You've got a", "teaser": "Mystery discount", "claimText": "Claim", "coverText": "Scratch here", "coverStyle": "gold" | "silver" | "rose-gold" | "holographic" | "accent" | "custom", "coverColor": "#rrggbb", "coverTextColor": "#rrggbb" | null, "coverPattern": "sheen" | "sparkle" | "plain", "coverImageUrl": "https://..." | null, "prizeBackgroundColor": "#rrggbb" | null, "prizeTextColor": "#rrggbb" | null, "cardRadius": 0-32 }value (up to 120 characters) is required while enabled. code allows
letters, numbers, hyphens and underscores, up to 64 characters. While
enabled, the popup cannot redirect after submission (send redirectUrl: ""),
cannot use the floating-bar presentation, and no form field may write a
discount custom attribute. coverImageUrl must be https.object
Theme overrides merged into the current theme.
object[]
Complete replacement for the popup’s content blocks. Read the current blocks
with Get Popup first. The popup must keep
exactly one required email field and one submit button. See Content
blocks below.
Content blocks
Blocks render in array order. Every block needs anid that is unique across
the entire block tree and a kind.
Content blocks may also set sectionId to "success" or "error" to render
inside that screen. Input blocks use kind: "form-field" and follow the same
shape as saved forms.
Properties outside a kind’s list are rejected with a named error rather than
dropped, so a typo is reported instead of saving an empty block.
Use
kind: "group" to lay out related children as a vertical stack, an
equal-column row, a fixed-column grid, or an image overlay. Responsive
rows and grids collapse to one column on small screens; groups may nest up to
three levels. Overlay needs exactly one direct image child and supports
overlayColor, overlayShade (0-100), and overlayPosition (top, center,
or bottom). gap spaces the foreground children without moving the
background image. Nested images only enable Overlay for their subgroup; zero
or multiple direct images fall back to Stack. IDs remain unique across the
full tree. A group and all descendants must use the same sectionId when they
belong to a success or error screen. form-step, success-screen, and
error-state blocks remain at the root. See the saved form layout group
example for the full
shape.
A custom-html block carries its markup in html - not content - and sizes
its frame with height in pixels: