Sequenzy MCP Server

Official MCP server for Sequenzy, the AI-powered email marketing platform.

Connect Sequenzy to Claude Desktop, Claude Code, Codex, Cursor, Windsurf, VS Code Copilot, OpenClaw, and other MCP clients so your AI assistant can manage email operations with structured tools instead of hand-written API calls.

What You Can Do

  • Manage subscribers, tags, lists, and dynamic segments.
  • Sync segments to Meta custom audiences for Facebook and Instagram retargeting.
  • Manage products and attach digital delivery files for purchase automations.
  • Upload hosted email images with alt text and reusable responsive crop settings.
  • Draft, update, schedule, and inspect campaigns, including From, Reply-To, CC, and BCC identities.
  • Add one-click Poll and NPS survey blocks to emails and inspect campaign response summaries.
  • Create and edit email sequences, including event-triggered and segment-entry automations, sending identity overrides, and existing graph restructuring.
  • Cancel, pause, resume, duplicate, or delete campaigns and enroll contacts into sequences.
  • Manage transactional email templates and send single transactional emails.
  • Supply localized template variants or queue AI translation for enabled locales.
  • Create, edit, publish, unpublish, and delete landing pages.
  • Create list-scoped saved signup forms and return client-safe static-site embeds.
  • Connect and verify custom domains for published landing pages.
  • Manage team invitations, inbox conversations, and outbound webhook endpoints.
  • Generate email copy, subject lines, and multi-step sequences.
  • Inspect analytics, subscriber activity, deliverability health, and dashboard URLs.
  • Inspect and clean up exact-recipient bounce suppression without exposing the shared SES suppression list.
  • Configure company product info, account-wide sending identity defaults, sender domains, and integration examples for common frameworks.

Every published MCP tool includes explicit readOnlyHint, destructiveHint, and openWorldHint annotations so compatible clients can display accurate tool-use affordances. Tools also publish outputSchema definitions and return structuredContent, giving clients and models machine-readable result shapes for follow-up calls.

Quick Setup

The easiest setup path is the Sequenzy wizard:

npx @sequenzy/setup

The wizard opens the browser login flow, creates a personal API key, detects supported AI clients, and configures them automatically when possible.

Hosted Remote MCP

For clients that support Streamable HTTP MCP, use Sequenzy's hosted endpoint instead of running a local stdio process:

https://api.sequenzy.com/v1/mcp

Remote clients should authenticate with the Sequenzy OAuth flow when supported. Local and automation clients can still use the stdio package below with SEQUENZY_API_KEY.

Machine-readable discovery files:

Manual Setup

All stdio MCP clients use the same command:

  • Command: npx
  • Args: -y @sequenzy/mcp
  • Required env: SEQUENZY_API_KEY=seq_user_your_key_here

Optional environment variables:

  • SEQUENZY_API_URL - Sequenzy API base URL. Defaults to https://api.sequenzy.com.
  • SEQUENZY_APP_URL - Sequenzy dashboard base URL used by app URL helpers. Defaults to https://sequenzy.com.

Claude Desktop

Add this to your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Restart Claude Desktop after editing the config.

Claude Code

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- npx -y @sequenzy/mcp

On native Windows, wrap npx with cmd /c:

claude mcp add --scope user --env=SEQUENZY_API_KEY=seq_user_your_key_here sequenzy -- cmd /c npx -y @sequenzy/mcp

For a shared project config, use .mcp.json:

{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Codex

codex mcp add sequenzy --env SEQUENZY_API_KEY=seq_user_your_key_here -- npx -y @sequenzy/mcp
codex mcp list

Manual Codex config in ~/.codex/config.toml:

[mcp_servers.sequenzy]
command = "npx"
args = ["-y", "@sequenzy/mcp"]

[mcp_servers.sequenzy.env]
SEQUENZY_API_KEY = "seq_user_your_key_here"

Cursor

Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "sequenzy": {
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Windsurf

Use the same JSON shape as Cursor.

  • macOS: ~/Library/Application Support/Windsurf/mcp.json
  • Windows: %APPDATA%\Windsurf\mcp.json

VS Code Copilot

VS Code uses a servers object:

{
  "servers": {
    "sequenzy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sequenzy/mcp"],
      "env": {
        "SEQUENZY_API_KEY": "seq_user_your_key_here"
      }
    }
  }
}

Other MCP Clients

For OpenClaw, Hermes, and other MCP-compatible clients, point the client at npx -y @sequenzy/mcp and set SEQUENZY_API_KEY.

Getting an API Key

  1. Open the Sequenzy dashboard.
  2. Use the MCP setup flow to create a personal key, or open Settings -> API Keys to create a company key.
  3. Choose a permission preset or the exact custom scopes the integration needs.
  4. Add the key to your MCP client config.

Personal keys start with seq_user_. You can revoke them any time in the dashboard.

Company keys can also be cleaned up without exposing secrets. Call list_api_keys to compare the key ID, name, non-secret prefix, permissions, last-use timestamp, and isCurrent marker, then pass the exact ID to revoke_api_key. delete_api_key is a compatibility alias for the same permanent operation. List and revoke responses never contain the plain key or stored key hash.

Recover from missing API key permissions

If a tool reports a missing scope such as campaigns:read or templates:write, call get_account. Its apiKeyPermissions field lists the current scopes, common missing marketing read scopes, and a direct manageUrl for API Keys settings. If the key does not include account:read, open the Sequenzy dashboard directly and use the MCP setup or Settings → API Keys instead.

Permissions cannot be changed on an existing key. For a local API-key connection, open manageUrl, create a replacement key with Read-only, Safer agent access, or the exact custom scopes named in the error, update SEQUENZY_API_KEY, and restart the client. For hosted OAuth MCP, disconnect and reauthorize the Sequenzy connection with a preset or custom permissions that include the missing scopes.

The AI drafting preset includes subscribers:write, so drafting agents can build a list as well as create it. Imports that apply listIds also need lists:write; sequence enrollment or double-opt-in delivery additionally needs automations:trigger.

Tools

This server currently exposes 149 MCP tools.

Account, Companies, Setup

Tool Description
get_account Get account info, available companies, current key permissions, and the API Keys management URL.
select_company Set the active company for future tool calls.
get_app_urls Build dashboard URLs for campaigns, landing pages, sequences, emails, settings, domains, and sent email details.
create_company Create a new company or brand.
get_company Read company details, product info, brand context, localization, reply-tracking settings, and current From/Reply-To defaults.
update_company Edit product info, brand context, the default email theme, reply-tracking settings, and account-wide From/Reply-To defaults.
get_sync_rules Read the company's event-to-tag rules and whether it uses the inherited platform preset.
update_sync_rules Replace all sync rules; pass [] to disable them or null to opt into the SaaS/ecommerce platform preset.
create_api_key Create an API key for a company, with optional permission preset or explicit scopes.
list_api_keys List company API keys as non-secret metadata for safe identification and cleanup.
revoke_api_key Permanently revoke an exact company API key by ID after checking it with list_api_keys.
delete_api_key Compatibility alias for revoke_api_key.
list_websites List sending domains with stored aggregate, SPF, DKIM, and MAIL FROM status.
add_sending_domain Add a sending domain and return its SPF, DKIM, MAIL FROM, and inbound DNS setup records.
add_website Compatibility alias for add_sending_domain.
check_website Read a sending domain's stored SPF, DKIM, MAIL FROM, and aggregate verification details.
verify_sending_domain Run a fresh sending-domain DNS/provider verification and return current status and diagnostics.
get_integration_guide Get framework-specific integration examples.

For a new sending domain, call add_sending_domain, publish the DNS records in the returned website.dnsRecords, wait for DNS propagation, and then call verify_sending_domain. If verification is attempted before creation, the error points back to add_sending_domain with the requested domain.

New companies start with no sync rules. The inherited preset remains available for SaaS/ecommerce companies by passing null to update_sync_rules; services and consulting companies should normally keep [] or define explicit rules.

Subscribers

Tool Description
add_subscriber Add one subscriber; status is creation-only, so use update_subscriber for an existing contact.
create_subscriber_import Queue up to 5,000 full CRM records with names, IDs, phones, statuses, tags, lists, and typed custom attributes.
get_subscriber_import Read progress, row outcome counts, and failure summaries for a queued import.
update_subscriber Update profile fields, attributes, tags, or global status; unsubscribed safely suppresses marketing.
remove_subscriber Unsubscribe while preserving suppression history, or permanently delete only with hardDelete: true.
get_subscriber Fetch subscriber details by email or external ID.
search_subscribers Search by query, tags, list, status, segment, or pagination.

Use create_subscriber_import for CRM onboarding instead of looping over add_subscriber. One call accepts 5,000 full records and returns an asynchronous import ID; poll it with get_subscriber_import. A completed import can still contain row failures, so inspect failedCount and failedReasons. Use optInMode: "confirmed" only when consent was already verified.

For compliance suppression, call update_subscriber with status: "unsubscribed" (or use remove_subscriber without hardDelete). Do not retry add_subscriber with a different status: status on that tool applies only when the contact is first created, and a mismatched skipped result is reported as an error.

Products & Digital Delivery

Tool Description
list_products List synced products from Stripe, Shopify, WooCommerce, manual, or Commerce API data.
upsert_products Create or update up to 100 Commerce API products keyed by your product ID.
delete_product Delete a product previously pushed through the Commerce API.
attach_product_file Attach a hosted or locally uploaded delivery file to a product.
remove_product_file Remove an attached product delivery file.
sync_products Queue a Stripe product catalog sync.

After a product delivery file is attached, matching purchase events include download.url and download.name, so purchase-triggered emails can use merge tags like {{event.download.url}}.

Image Assets

Tool Description
upload_image_asset Upload an email image and return its hosted media record plus a ready-to-insert image block.

The tool accepts PNG, JPEG, GIF, and WebP images up to 5MB. Local stdio clients can pass filePath. Hosted/remote clients that can access attachment bytes can pass imageBase64 with filename. Provide altText for accessibility, then use displayWidthPercent, cropHeight, objectFit (cover or contain), and align to standardize screenshot presentation. The returned imageBlock can be copied directly into the block array accepted by campaign, sequence, template, and transactional-email tools.

Authenticated image bytes are always uploaded to the origin configured by SEQUENZY_API_URL, even if a reverse proxy returns an equivalent upload URL under another host. API credentials are never forwarded to that alternate origin.

{
  "filePath": "/Users/me/Desktop/product-results.png",
  "altText": "Product results dashboard",
  "displayWidthPercent": 100,
  "cropHeight": 320,
  "objectFit": "cover",
  "align": "center"
}

Lists, Tags, Segments

Tool Description
list_tags List all tags.
create_tag Create a tag definition with an optional color.
update_tag Update a tag color.
delete_tag Delete a tag and remove it from subscribers.
list_lists List subscriber lists.
create_list Create a subscriber list.
update_list Rename or describe a subscriber list.
delete_list Delete a subscriber list.
add_subscribers_to_list Add up to 500 subscribers to a list from an email array.
remove_subscribers_from_list Remove up to 500 subscribers from a list.
list_segments List saved segments and counts.
create_segment Create saved segments from filters or nested AND/OR groups.
update_segment Update segment name, filters, root group, or join operator.
delete_segment Delete a saved segment.
get_segment_count Preview the active subscriber count for a segment.

For subscriber exports, search_subscribers accepts listId, exact listName, or list (ID first, then exact name). If limit is omitted, the tool fetches all matching subscribers using 100-row API pages.

For bulk list population, use add_subscribers_to_list; the backing API endpoint is POST /api/v1/lists/{listId}/subscribers with no /bulk suffix:

{
  "emails": ["[email protected]", "[email protected]"],
  "duplicateStrategy": "skip",
  "enrollInSequences": false,
  "optInMode": "default"
}

Send at most 500 emails per request. Standard API rate limits still apply: 100 requests per minute per API key and 20 requests per second burst. For CSV-driven CLI imports, accepted email headers include email, e-mail, email address, and mail; if no recognized header exists, the CLI reads the first column.

Segment filters support attributes, events, saved segment membership, engagement events, Stripe product purchase rules, and commerce product purchase rules. Use filterJoinOperator: "or" for match-any segments, or pass a v2 root group for nested logic.

Each segment filter field validates its own operators:

  • status, segment: is, is_not
  • tag: contains, not_contains, is_empty, is_not_empty
  • email: contains, not_contains
  • emailProvider, list: is, is_not, is_empty, is_not_empty
  • firstName, lastName: contains, not_contains, is_empty, is_not_empty
  • added: less_than, more_than
  • attribute: is, is_not, is_empty, is_not_empty, gte, lte, gt, lt, contains, not_contains
  • event, email engagement fields: is, is_not, at_least, less_than_count
  • emailBounced: also supports is_temporary_bounce, is_permanent_bounce
  • stripeProduct: is, is_not, at_least, less_than_count
  • stripeCurrentProduct, stripeTrialProduct: is, is_not, gte, lte, gt, lt
  • commerceProduct: is, is_not, at_least, less_than_count

Stripe product filter examples:

{ "field": "stripeProduct", "operator": "is", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "is_not", "value": "prod_pro" }
{ "field": "stripeProduct", "operator": "at_least", "value": "prod_pro:3" }
{ "field": "stripeProduct", "operator": "less_than_count", "value": "prod_pro:3" }

Commerce product filters match products purchased through commerce orders. Values can be provider:productId for provider-scoped IDs (shopify, woocommerce, or api), a bare product ID to match any provider, or provider:productId:count for threshold operators:

{ "field": "commerceProduct", "operator": "is", "value": "api:starter-kit" }
{ "field": "commerceProduct", "operator": "at_least", "value": "shopify:42:2" }

Engagement fields such as emailSent, emailDelivered, emailOpened, emailClicked, emailBounced, and emailComplained accept rolling windows like 7d, 30d, 90d, 180d, or all. With at_least and less_than_count, use count:timeRange, such as 10:30d or 10:all. Presence operators can instead use a campaign scope like campaign:cmp_123; campaign scopes cannot be combined with count operators.

Audience Syncs (Meta Ads)

Tool Description
list_audience_syncs List segment-to-audience syncs with schedule and last sync status.
list_ad_accounts List the Meta ad accounts available for syncing.
create_audience_sync Push a segment to a Meta custom audience on a schedule.
update_audience_sync Change sync frequency (hourly, daily, weekly) or pause/resume.
delete_audience_sync Remove a sync mapping; the Meta audience itself is kept.
sync_audience_now Trigger an immediate upload outside the regular schedule.

Requires the Meta Ads integration to be connected in the Sequenzy dashboard (Settings -> Integrations). create_audience_sync accepts an existing segment (segmentId) or a ready-made template (predefinedSegmentId, for example zero-ltv, no-purchase-1y, recent-buyers, high-spenders-ecom, non-buyers, engaged) - the template segment is created automatically on first use, and the first upload runs immediately.

Audiences are add-only: subscribers who later leave the segment stay in the Meta audience. Meta requires 100+ matched people before an audience can be used for ad delivery.

Templates

Tool Description
list_templates List templates with localization status.
get_template Read template details, content, and localized variants.
create_template Create templates from a prompt, HTML, or Sequenzy blocks.
update_template Update template metadata, inbox preview text, labels, HTML, or blocks.
set_template_localization Create or replace a caller-supplied localized variant.
sync_template_localizations Queue AI translation for selected or all enabled non-primary locales.
delete_template Delete a template.

For net-new content requested in natural language, pass prompt so Sequenzy generates branded native blocks server-side. Use blocks only for finished caller-supplied Sequenzy content, and use html only when preserving supplied or explicitly requested markup. prompt, blocks, and html are mutually exclusive; style and tone are valid only with prompt.

Use set_template_localization when translated copy comes from your own localization workflow. It requires an enabled non-primary locale, a localized subject, and exactly one of html or blocks. Use sync_template_localizations to ask Sequenzy to translate selected locales; omit locales to sync every enabled non-primary locale. Explicit sync works even when automatic on-save localization is disabled.

A/B Tests

Tool Description
list_ab_tests List A/B tests and variants, optionally scoped by sequence.
get_ab_test Get variants, content, and localization status.
get_ab_test_stats Get aggregate and per-variant stats.
restart_ab_test Restart a stopped or completed A/B test.
update_ab_test_variant Update a draft variant subject, preview text, HTML, or blocks.
create_ab_test Create a campaign or sequence A/B test.
add_ab_test_variant Add a variant to an existing A/B test.
delete_ab_test_variant Delete a draft A/B test variant.
delete_ab_test Delete an A/B test.

Use get_ab_test to discover variant IDs before editing. Variant updates accept either html or blocks, not both. create_ab_test accepts exactly one of campaignId or automationNodeId; the latter requires one to four extra variants and converts a sequence email node into action_ab_test with typed testType and winnerThreshold settings. Pass confirmLiveChange: true when converting a node in an active sequence. Together with control A, an A/B test supports at most five variants. Sequence variants receive independent email templates and can be edited, added, or removed while the test is a draft; when the parent sequence is active, update_ab_test_variant, add_ab_test_variant, and delete_ab_test_variant also require confirmLiveChange: true because they immediately change the live rotation.

Campaigns

Tool Description
list_campaigns List campaigns by status, including reviewer feedback for rejected campaigns.
get_campaign Get details, stats, and reviewer feedback for a rejected campaign.
get_email_send Inspect a queued, test, sent, suppressed, or failed delivery by durable email-send ID.
get_recipient_suppression Check local and regional SES suppression for one exact recipient.
remove_recipient_suppression Remove stale bounce suppression for a company-associated recipient.
create_campaign Create a campaign with content, data, and optional From/Reply-To identity overrides.
update_campaign Update a draft campaign, including content, data, From, Reply-To, CC, and BCC.
schedule_campaign Schedule a draft or reschedule an existing scheduled campaign.
send_test_email Send a test email to one address.
cancel_campaign Cancel a scheduled or sending campaign.
pause_campaign Pause a sending campaign.
resume_campaign Resume a paused campaign, optionally spreading delivery over time.
delete_campaign Delete a campaign.
duplicate_campaign Duplicate a campaign into a new draft.
resend_campaign_to_non_openers Create a draft resend for the original audience members who did not open a sent campaign.

Prompt-created campaigns are generated and persisted in one API request and remain drafts. Use templateId, blocks, or html only when copying or preserving existing content rather than asking the agent to author it. Omit all content fields to create an empty draft for later editing.

send_email and send_test_email return a durable emailSendId. Pass that ID to get_email_send to inspect status, errorMessage, the stored body, and delivery events. Queue jobs are internal execution details and are not exposed through the MCP contract. Use get_recipient_suppression before cleanup, then remove_recipient_suppression only after confirming a hard-bounced mailbox is working again. Cleanup removes bounce entries but never complaint or unsubscribe protections.

Email blocks may use conditional display rules or conditional-group branches. Conditions support render-time variables and subscriber attributes plus live subscriber data such as segment/list membership, tags, events, engagement, subscription/SMS status, and Stripe or commerce purchases. Live-data conditions use the same field values and operators as segment filters; recipients without a stored subscriber match use the OTHERWISE branch.

Core block shapes are { "type": "heading", "content": "Title", "level": 1 }, { "type": "text", "content": "<p>Copy</p>" }, { "type": "button", "text": "Book a call", "url": "https://example.com", "variant": "primary" } , and { "type": "image", "src": "https://...", "alt": "Description", "width": 100, "widthType": "percent" }. Buttons also accept content as an alias for text and default to the primary variant. Image widthType accepts percent or px.

Raw html is stored as one opaque block. It preserves supplied markup but does not add a company logo, native branded sections, or theme-driven block design. Use prompt for a new branded draft or blocks for editor-native design; MCP authoring results include a warning when raw HTML is used.

Use update_company with fromEmail and/or replyTo to set account-wide defaults. fromEmail must use a configured, verified sending domain; replyTo may be any valid mailbox. create_campaign, update_campaign, create_sequence, and update_sequence accept the same direct-address fields for resource-specific overrides and create the backing profile when needed.

update_company also manages the company's default email theme through emailTheme (presetId, colors, typography, layout). Theme updates are partial - omitted fields keep their current value (or the preset default) and numeric values are clamped to supported ranges. Pass emailTheme: null to reset the company to the platform default theme.

Reply tracking is available on the same company tools. Use replyTrackingEnabled, replyTrackingDomainMode (sequenzy or custom), and forwardReplies with update_company. Company reads also return the current read-only replyRetentionDays value.

Polls and NPS surveys are native email blocks, so they work anywhere an email tool accepts blocks, including campaigns, templates, A/B variants, transactional templates, and sequence email steps. Transactional poll sends must resolve to exactly one effective recipient after suppression filtering and recipient deduplication, and that recipient must already exist as a subscriber; otherwise Sequenzy rejects the send because the answer link cannot be safely attributed. Use an answer-button poll:

{
  "type": "poll",
  "variant": "options",
  "question": "What did you think of this email?",
  "options": [
    { "label": "Loved it", "value": "loved" },
    { "label": "Not for me", "value": "not_for_me" }
  ],
  "attributeKey": "email_feedback"
}

For NPS, use "variant": "nps", an empty options array, and an attribute such as nps_score. The scale is always 0-10; optional npsLowLabel and npsHighLabel customize its captions. Each answer updates the subscriber attribute and fires poll.answered for automations and outbound webhooks.

Saved Forms

Tool Description
list_forms List saved forms with their server-managed audience settings and public action URLs.
create_form Create and publish a saved form scoped to one or more lists, with optional tags and success behavior.
get_form_embed Return the public action URL, hosted JavaScript, minimal native form, and fetch example for a saved form.

For Astro, Hugo, Jekyll, Cloudflare Pages, Netlify, GitHub Pages, or any other static site, call list_forms, use create_form if a suitable form does not exist, then call get_form_embed. The returned opaque formId is the public capability: lists, tags, duplicate behavior, and success handling remain server-side, so the deployed browser code never contains a Sequenzy API key. Generated native and standalone markup includes "Powered by Sequenzy" for free workspaces; paid workspaces receive unbranded markup. The API resolves that entitlement server-side, so callers should use the returned snippet unchanged.

Landing Pages

Tool Description
list_landing_pages List landing pages with status, metrics, content, and URLs.
get_landing_page Get landing page details, builder content, metrics, and public URLs.
create_landing_page Create a draft landing page from default template content or JSON.
update_landing_page Edit a landing page name, slug, or full editor-compatible content.
publish_landing_page Publish a landing page, optionally saving edits first.
unpublish_landing_page Return a landing page to draft status, optionally saving edits first.
delete_landing_page Delete an unpublished landing page.
connect_landing_page_domain Connect a custom landing page domain and return DNS setup details.
update_landing_page_domain_settings Replace or verify landing page custom domain settings.

Landing page content uses Sequenzy's editor-compatible JSON schema with version, template, seo, theme, and blocks. Custom landing page domains require a CNAME record pointing to pages.sequenzydns.com; call update_landing_page_domain_settings with verify: true after DNS changes propagate.

Sequences

Tool Description
list_sequences List sequences with dashboard status, search, label, limit, and offset filters.
get_sequence Get sequence details, including nodes, edges, linked emails, blocks, and per-email format.
create_sequence Create a blank dashboard draft or an AI-generated/explicit-step sequence.
update_sequence Update identity, settings, enrollment, existing steps, branch logic, or insert linear steps.
update_sequence_node Type-aware patch of one existing sequence node.
update_sequence_nodes Atomically patch multiple existing sequence nodes.
insert_sequence_step Insert any typed dashboard step, including outbound webhooks, waits, and wired branches.
edit_sequence_graph Move, reconnect, delete, or duplicate existing graph nodes, including A/B test steps.
enable_sequence Activate a sequence.
disable_sequence Freeze a sequence, blocking new enrollments and holding current recipients.
duplicate_sequence Create an independent draft copy of the graph, emails, and sequence A/B tests.
archive_sequence Move a sequence into the dashboard archive and stop new enrollments.
unarchive_sequence Restore an archived sequence as a disabled draft.
list_sequence_goals List the conversion goals persisted for a sequence.
create_sequence_goal Add an event or subscriber-attribute conversion goal.
update_sequence_goal Update a persisted sequence conversion goal.
delete_sequence_goal Delete a persisted sequence conversion goal.
get_sequence_inbound_webhook Read the endpoint and setup state for an inbound-webhook sequence.
configure_sequence_inbound_webhook Configure field mapping, sample payload, and integration metadata.
rotate_sequence_inbound_webhook_secret Rotate an inbound sequence endpoint's secret path.
pause_sequence_enrollments Stop new enrollments for an active sequence while current recipients continue.
resume_sequence_enrollments Reopen new enrollments for an active sequence without changing current recipients.
enroll_subscribers_in_sequence Enroll up to 500 subscribers by email, subscriber ID, or both, optionally at a target node.
cancel_sequence_enrollments Stop active or waiting enrollments by subscriber or entry-event field values.
delete_sequence Delete a sequence.

Sequence creation supports:

  • Name-only creation for a blank, disabled trigger-to-completion draft matching the dashboard.
  • Dashboard metadata and delivery settings: description, labels, userCancellable, sequence BCC, and From/Reply-To identity.
  • trigger: "segment_entered" plus segmentId for saved-segment entry automations.
  • trigger: "event_received" plus {{event.*}} merge tags in subjects or body content.
  • trigger: "inbound_webhook" plus integration metadata for dashboard-compatible webhook entry nodes.
  • trigger: "inactivity" plus eventName, inactiveDays, and optional inactivityBaseline (sequence_created_at or subscriber_created_at).
  • goal for AI-generated email content.
  • emailStyle: "visual" or "plain" to choose the presentation of goal-based AI-generated emails; when omitted, the company's saved preference is used.
  • Explicit steps with Sequenzy blocks.
  • Explicit steps with HTML, which Sequenzy converts into editable blocks.
  • Explicit Update Subscriber steps that copy trigger-event properties into profile fields or typed c