Skip to main content
POST
Submit Saved Popup
Saved popup embeds submit here automatically. The popup’s stored content controls lists, tags, duplicate handling, resubscribe behavior, custom fields, and redirect behavior.
This endpoint returns 410 Gone while the workspace is connected to Webflow. Previously deployed popup scripts are no-ops; configure native Webflow form capture instead.

Request

string
required
The saved popup ID.
string
required
The subscriber’s email address.
string
The subscriber’s first name, when the popup includes that field.
string
The subscriber’s last name, when the popup includes that field.
string
The subscriber’s phone number when the popup includes that field. It is normalized onto the base subscriber profile without changing SMS consent.
string
Value for a custom popup field, stored as a subscriber custom attribute.
string
Honeypot field. Leave it empty.
string
Signed bot-protection token. The hosted popup script adds it automatically; custom integrations can omit it. See Bot protection.
string
Cloudflare Turnstile token that the hosted popup script adds when bot protection is on. Custom integrations cannot obtain one; see Bot protection.

Bot protection

The hosted popup script sends a signed sequenzyToken with each submission. It proves the signup came from a page that loaded your Sequenzy popup, so Sequenzy can tell it apart from scripts that post directly to this endpoint.
  • You do not need to send a token from your own HTML or server code.
  • Submissions without a valid token may be asked to confirm by email before they become active subscribers.
  • When Sequenzy support turns on strict protection for your workspace after a bot attack, submissions without a token, or with a token issued for a different popup, return the normal success response without subscribing anyone. Strict protection is only turned on when your signups all arrive through hosted embed scripts and popups. The native HTML and fetch snippets from the form code dialog do not send a token.

Bot protection toggle

When the popup has botProtection on, the hosted popup script also runs a Cloudflare Turnstile check, invisibly for most visitors, and sends its result as sequenzyBotCheckToken.
  • Signups that pass are subscribed as usual.
  • Signups that fail the check, or arrive without a token, must confirm by email before they are subscribed.
  • If the confirmation email or sender was removed after bot protection was turned on, those signups get a 400 asking them to try again instead.
  • If Cloudflare cannot be reached, signups are accepted, so an outage never blocks them.

Returning unsubscribed contacts

Submitting again counts as a fresh opt-in. If a contact unsubscribed from all email, a new submission resubscribes them and restores the popup’s lists, whatever the duplicateStrategy. When the popup’s resubscribeBehavior is double_opt_in, or workspace double opt-in is on, they get your confirmation email instead and are resubscribed once they confirm. Contacts whose address bounced or who marked your email as spam are not resubscribed. The response is the same in every case, so it never reveals whether an address was subscribed.

Scratch-to-reveal rewards

When the popup has an enabled scratch-to-reveal reward, a successful response also includes reward: { "value": "...", "code": "..." | null }. The embed script never contains the value or code; this response is where the browser gets them. Every success response for that popup carries the same reward, including submissions ignored by bot and abuse protection, so the response never reveals whether the contact was stored. Error responses never include a reward. The reward is also saved on the contact as the discount custom attribute before any welcome automation starts, so {{discount.code}} in the welcome email matches what the visitor saw. A discount attribute the contact already has from another source is kept.

Responses