mailexodus reads Benchmark Email over its API and normalizes subscribers, lists, tags, custom fields into one portable schema — so you move with a report, not a 40-item checklist.
Benchmark Email migrations need an explicit boundary around what the API exposes.
→
Teams want a dry-run report before rebuilding subscribers, lists, tags, custom fields.
→
Some accounts require legacy API authentication
// transfer boundary
what mailexodus pulls from Benchmark Email.
can migrate
+
subscribers
+
lists
+
tags
+
custom fields
+
suppressions
+
campaigns
+
templates
needs review
?
suppressions
?
campaigns
?
templates
cannot migrate
x
segments
x
automations
x
sender reputation and domain warmup
x
historical analytics, revenue attribution, and aggregate reporting
x
contacts already mid-flight inside active automations
x
A/B test results and provider-specific experiment history
x
provider-native design blocks, product widgets, coupons, and private assets that are not exposed by API
source adapter
Partial automated adapter
Contact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content
Some accounts require legacy API authentication
// the playbook
how an agent migrates Benchmark Email → Sequenzy.
This is exactly what mailexodus hands your agent: authenticate, then for each object type — read it from Benchmark Email, map it to the portable schema, write it to the destination. mailexodus never writes; your agent does, with this report in hand.
01 · authenticate
Create a Benchmark Email API key with contacts:read, campaigns:read, and reports:read scopes. Paste the API key, or JSON with apiKey
01subscribersmigrates
readGET /v3/Contacts (Read subscribers from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePOST add_subscriber (Write or stage subscribers in Sequenzy.) PATCH update_subscriber (Write or stage subscribers in Sequenzy.)
02listsmigrates
readGET /v3/ContactLists (Read lists from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePOST create_list (Write or stage lists in Sequenzy.) POST add_subscribers_to_list (Write or stage lists in Sequenzy.)
03tagsmigrates
readGET /v3/Contacts/{contact_id}/Tags (Read tags from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePOST create_tag (Write or stage tags in Sequenzy.)
04custom fieldsmigrates
readGET /v3/ContactFields (Read custom fields from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePATCH update_subscriber.customAttributes (Write or stage custom fields in Sequenzy.)
05suppressionsneeds review
readGET /v3/Contacts?status=unsubscribed (Read suppressions from Benchmark Email.) GET /v3/Contacts?status=bounced (Read suppressions from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePATCH update_subscriber.status (Write or stage suppressions in Sequenzy.)
06campaignsneeds review
readGET /v3/Emails (Read campaigns from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePOST create_campaign (Write or stage campaigns in Sequenzy.)
07templatesneeds review
readGET /v3/Templates (Read templates from Benchmark Email.)
mapContact lists map to lists. Contacts map to subscribers. Fields map to custom attributes. Campaign details map to campaign content mailexodus renders normalized provider data into destination subscribers, lists, segments, campaigns, sequences, and review notes.
writePOST create_template (Write or stage templates in Sequenzy.)
stays behind
segments
automations
sender reputation and domain warmup
historical analytics, revenue attribution, and aggregate reporting
contacts already mid-flight inside active automations
A/B test results and provider-specific experiment history
guardrails
Sender reputation is earned at the destination — set up SPF/DKIM/DMARC and a warmup ramp; it does not transfer.
Keep the source platform active until authentication, warmup, and in-flight automations have finished.
Honor suppressions before the first send.
After writing, verify counts per object type against the source before switching live sends.
// run it
guide your agent, or follow it yourself.
Pull the full playbook from the skill prompt, CLI, or MCP server, then work the steps. Start by confirming credentials: Create a Benchmark Email API key with contacts:read, campaigns:read, and reports:read scopes. Paste the API key, or JSON with apiKey