Sequenzy Email Marketing
Overview
Use this as the default skill for Sequenzy email-marketing/product operations: subscribers, lists, tags, segments, campaigns, sequences, templates, AI email generation, transactional sends, delivery stats, dashboard URLs, CLI/MCP behavior, and currently-supported workflow checks. Prefer the sequenzy CLI for supported workflows, treat packages/mcp/src/tools/index.ts as the MCP source of truth when the task goes through MCP tools, and explicitly call out when a requested workflow is not wired in the current implementation. If both sequenzy and sequenzy-email-marketing match, load this skill first.
Ground Rules
- Treat
packages/cli/src/index.tsxas the source of truth for which commands are actually wired. - Treat
packages/cli/src/commands/andpackages/cli/src/api.tsas the source of truth for CLI behavior, payload shape, and API routes. - Treat
packages/mcp/src/tools/index.tsas the source of truth for MCP tool names, arguments, and preflight validation. - Do not promise support for commands or tools that only appear in docs or
--helptext without an attached implementation. - Prefer
sequenzy loginfor interactive auth andSEQUENZY_API_KEYfor automation. - Prefer inspection before mutation whenever the workflow allows it.
Supported Workflows
Read references/use-cases.md before executing anything non-trivial. The currently implemented CLI flows are:
- login and logout
- local auth/session check with
whoami - account inspection with
account - company inspection, creation, or brand/sender-identity updates with
companies list|get|create|update - stats overview or stats by campaign, sequence, or transactional ID, with custom
--start/--endranges,--email-typeand--mailbox-providerscoping,--include-bots, and campaignclickedLinksplus poll/NPSpollsarrays - raw delivery/engagement event listing with
events --campaign|--sequence, and per-delivery inspection withemail-sends list|getplus bounce-suppression cleanup withsuppressions get|remove - subscribers
list,add,update,get, andremove, withlistfetching every page by default and supporting tag, segment, and list filters;addandupdateset native profile names via--first-name/--last-name(MCPadd_subscriber/update_subscriber:firstName/lastName), so never store names in custom attributes; both also handle native phone numbers and SMS consent - bulk subscriber imports with
subscribers import/import-status, subscriber notes, custom event triggering withsubscribers event(live or--occurred-atbackfill), and bulk tag operations withsubscribers tags add|remove - lists
list,create,update,delete,add-subscribers,remove-subscribers, andimportalias for bulk list population from emails, JSON, CSV, or newline files - tags
list,create,update, anddelete, with baresequenzy tagsstill listing tag definitions for backwards compatibility - segments
list,create,update,delete, andcount, including--match any, nested filter roots, custom event filters, and saved-segment composition filters - templates
list,get,create,update, anddelete, withlistsupporting label filters andcreate/updateaccepting labels, raw HTML, or Sequenzy block JSON - campaigns
list,get,create,updateincluding label and reply-to updates,schedule, andtest, withlistsupporting label filters,createaccepting labels plus raw HTML, Sequenzy block JSON, or prompt-generated content,updateaccepting labels plus raw HTML or Sequenzy block JSON, andschedulereturning a review preview link;createandscheduleboth accept the audience via--segmentor--target-lists-json/--target-lists-file - campaign lifecycle control with
campaigns cancel(stops scheduled, paused, waiting-approval, or sending campaigns immediately, no confirmation prompt),campaigns unschedule(returns a scheduled campaign or recurring series to draft),campaigns pauseandcampaigns resumefor an active send (resume supports--spread-over-hours),campaigns delete(blocked while sending, scheduled, or paused - cancel first), andcampaigns duplicatewith--mode campaign|ab_test|variant - campaign audience inspection with
campaigns audience, true-to-send HTML previews withcampaigns render/templates render/sequences render(subscriber or ad-hoc personalization, locale, tracking,--out), recurring sends withcampaigns schedule --repeat weekly|monthly, and post-send re-engagement withcampaigns resend-to-non-openers - ab-tests
list,get,stats,restart,update-variant,create,add-variant,delete-variant, anddelete; create/add-variant/delete-variant/delete work on campaign A/B tests in draft status, variant A is the protected control, andrestartreruns a finished sequence A/B test. For a sequence A/B step,sequences get --jsonand MCPget_sequenceexpose each variant's full blocks whenab_tests:readis granted; edit them only throughab-tests update-variant/update_ab_test_variant - MCP template and campaign tools support labels on list/create/update; MCP
update_campaignalso supportsreplyToandreplyProfileId, and MCPschedule_campaignschedules draft or already scheduled campaigns - MCP
search_subscriberssupports list filters throughlist,listId, orlistName; MCPadd_subscribers_to_listaccepts up to 500 emails per call - sequences
list,get,create,update,enable,disable,delete,enroll, andcancel-enrollments, including explicit discount action steps, cancellation by subscriber ID or event-property field values, andupdatebranch insertion with tag, list, segment, event, clicked-link, and field conditions; event and clicked-link branch checks can useactivityScope(this_sequence,previous_email,ever) - manual sequence enrollment with
sequences enrollfrom emails, JSON, or files, optionally at a specific node with--target-node-id, reporting enrolled, skipped, and not-found subscribers - team
list,invitewith--role admin|marketer|viewer|restrictedand owner-only--billing-access, andcancel-invitation - inbox
listwith status, search, unread, and pagination filters,get,replyincluding internal notes with--note,close,reopen, andmark-read - webhooks
list,create,update,delete,test,deliveries, andreplayfor outbound webhook endpoints, withcreatereturning a one-time signing secret that must be handled as sensitive - AI generation with
generate email,generate sequence,generate subjects, andgenerate sms - dashboard URL generation with CLI
urls, MCPget_app_urls, andappUrls/urlfields on campaign, sequence, template, and company results - websites
list,add,check, andguide - products
list,sync,upsert(API-provider products keyed by your own ID, bulk up to 100),delete,attach-file, anddetach-filefor digital product delivery, withattach-file --fileuploading local files via presigned URLs; attached files are exposed onsaas.purchaseevents as{{event.download.url}}/{{event.download.name}}(MCP:list_products,upsert_products,delete_product,attach_product_file,remove_product_file,sync_products) - API key management with
api-keys create|list|revoke, including permission presets and explicit scopes on create; new keys are handled as sensitive output - transactional email: one-off sends by template or raw HTML with
send, plus saved-template management withtransactional list|get|create|update|deleteand preferences-iframe tokens viatransactional widgets preferences-token - forms
listandupdate(MCP additionally:create_form,get_form_embed) and full landing-page management withlanding-pagesincluding publish/unpublish, duplicate, custom domains, and DNS verification - sequence operations beyond CRUD:
render, per-nodetestsends,duplicate,archive/unarchive, enrollment listing with CSV export,pause-enrollments/resume-enrollments, conversiongoals, and inbound triggerwebhook get|configure|rotate - template AI/manual localization with
templates localizations set|sync - integrations:
catalog,connect(API-key/webhook-secret providers; OAuth providers connect in the dashboard),list,get,activity,sync,enable-sync/disable-sync, Shopifypixel/enable-pixel, andguide - Meta Ads audience syncs with
audience-syncs list|ad-accounts|create|update|delete|sync - deliverability and sending config:
sender-profiles list|update,tracking settings|update(open/click tracking, strict bot filtering, attribution window, double opt-in, auto-UTM), and sequence/step-level sending windows - Shopify automation settings with
shopify settings get|update(browse abandonment, cart abandonment, price drop) - SMS operations with
sms settings,sms send-test, SMS sequence steps, andgenerate sms - integration event-to-tag sync rules with
sync-rules get|update - personal notification preferences with
account notifications get|set - product feedback with
feedback, sending missing-capability reports, bug reports, and other product feedback straight to the Sequenzy team (MCP:submit_feedback)
Unsupported Or Placeholder Workflows
Treat missing subcommands as unsupported even when the noun exists. The main remaining gaps: campaign immediate send (no "send now" command - schedule with a near-future --at timestamp instead), sending domain add/verify (MCP add_sending_domain / verify_sending_domain or dashboard only), form creation and embed snippets (MCP create_form / get_form_embed only), and image asset upload (MCP upload_image_asset only). Bulk list population is supported through sequenzy lists add-subscribers and its sequenzy lists import alias, not through subscribers add. Whenever the user wanted something unsupported, report the gap with sequenzy feedback "..." --category missing_capability (MCP: submit_feedback) so it reaches the Sequenzy team.
Workspace Roles
Inspect sequenzy account or MCP get_account before choosing a privileged workflow. Account-key permissions combine selected scopes with your current workspace role; roleRestrictedScopes identifies scopes blocked by that role. canSendLive means at least one delivery workflow is available, not that every send tool is allowed.
Marketers can manage marketing content, subscribers, campaigns and sequences, including marketing test sends and unscheduling. They cannot use transactional sending or manage team, billing, integrations, API keys, sending identities or workspace settings. Choose existing sender/reply profiles; inline creation of a new profile is also restricted. Transactional-backed templates and their campaign, A/B and sequence sources stay protected through copies, previews, share links, analytics and retained send history. Use the narrowest eligible role; billing access cannot be granted to marketers or restricted members.
Execution Pattern
- Check auth first with
sequenzy whoamior by verifyingSEQUENZY_API_KEYis set. - Pick the narrowest command that matches the use case.
- Validate IDs, recipient email, subject, template, or content input before issuing a mutation.
- Surface CLI limitations directly instead of inventing a workaround.
- If the workflow is unsupported in the CLI, say whether the next-best path is the Sequenzy dashboard or direct API use, and report the gap with
sequenzy feedback "..." --category missing_capability(MCP:submit_feedback). - When you create, inspect, or schedule a campaign, sequence, template, or company and the user may want to review/edit it, surface the dashboard URL from
url,previewUrl, orappUrlsin the tool/CLI output. If needed, generate it withsequenzy urlsor MCPget_app_urls. - Destructive commands (
delete,delete-variant,cancel-invitation, and similar) prompt for confirmation. Pass--yes(or-y) to skip the prompt;--yesis required when stdin is not a TTY, which covers most agent and CI runs. - Treat API keys, webhook signing secrets, and other one-time credentials as sensitive output. Do not paste raw secret values into chat, logs, tickets, or public transcripts. Capture them to a user-approved secure destination such as a password manager, secret store, encrypted file, or local
.envfile outside version control; otherwise redact the value and report only where it was saved plus a short fingerprint. - Call out implementation caveats that matter operationally, such as
whoamiusing cached local auth state, sequence creation supporting both--goaland explicit step modes, explicit discount steps requiring Stripe before activation, generated sequences being capped at 10 emails,campaigns testbeing a stubbed success path in the current backend, and conditional email content requiring block JSON rather than raw HTML.
Dashboard URLs
Use SEQUENZY_APP_URL as the dashboard base when it is set; otherwise default to https://sequenzy.com.
Prefer actual URLs returned by the CLI/MCP result:
- sequence editor:
/dashboard/company/{companyId}/sequences/{sequenceId} - campaign editor:
/dashboard/company/{companyId}/campaign/{campaignId} - campaign preview/review:
/dashboard/company/{companyId}/campaign/{campaignId}?step=review - template/email editor:
/dashboard/company/{companyId}/emails/{emailId} - settings:
/dashboard/company/{companyId}/settings - settings tab:
/dashboard/company/{companyId}/settings?tab={tab}
Useful settings tabs include domain, tracking, localization, integrations, events, tags, goals, sync-rules, api-keys, widgets, and team.
References
- references/command-reference.md: exact command shapes, env vars, behavior, and caveats.
- references/use-cases.md: decision trees and examples for the most common agent tasks.