LinkStacked
Guides
Beginner 12 min· 6 steps

Sync subscribers to your Mailchimp account

Connect your own Mailchimp with one click, pick an audience, and push LinkStacked subscribers into it on demand — with a deep dive on field mapping, compliance states, and audience strategy.

Before you begin

  • A LinkStacked account
  • A Mailchimp account (the free tier works for up to 500 contacts)
  • Email Collection enabled on at least one of your profiles
  • Optional: an existing Mailchimp audience you want to write to (we can also create one for you)
1

Step 1 of 6

· 2 min

Understand what gets connected

When you connect Mailchimp, LinkStacked links to YOUR Mailchimp account, not a shared one. Your subscribers, your audiences, and your campaigns all stay in your Mailchimp. We become a one-way data pipe that pushes new signups from LinkStacked into your audience.

What lives where

  • LinkStacked stores: subscribers (with consent + unsubscribe state), the OAuth access token you authorised, sync history.
  • Your Mailchimp stores: the audience the subscribers end up in. Compliance settings (double opt-in, unsubscribe, GDPR) are governed there — those settings always win, regardless of what LinkStacked sends.
  • Disconnecting from LinkStacked: deletes the saved access token. Your Mailchimp audience and members are unaffected.

This separation matters for compliance. If you ever need to honour a 'right to be forgotten' request under GDPR, you handle it in Mailchimp (where the contact's marketing data lives) and in LinkStacked separately. Both deletions need to happen for full compliance.

Phone-only signups (where the visitor only left a phone number, not an email) are skipped automatically when syncing to Mailchimp — Mailchimp requires a real email address for every contact. Phone-only data stays in LinkStacked and is downloadable as CSV if you need it elsewhere.

Next: Get a Mailchimp audience ready
2

Step 2 of 6

· 3 min

Get a Mailchimp audience ready

Mailchimp groups subscribers into audiences (sometimes called 'lists' in older docs). LinkStacked needs to know which audience to write into. You can use an existing audience or create one specifically for LinkStacked signups.

  1. 1Sign in to Mailchimp at admin.mailchimp.com
  2. 2Open Audience → Audience dashboard
  3. 3Pick an existing audience or create a new one (suggested name: 'LinkStacked signups' or '[your-brand] profile signups')
  4. 4Optional but recommended: configure double opt-in, GDPR consent fields, and unsubscribe preferences on that audience now

Free vs paid Mailchimp considerations

  • Free Mailchimp: one audience only. All your LinkStacked subscribers will go into that one audience.
  • Paid Mailchimp: multiple audiences supported. Useful if you want to separate (say) podcast subscribers from product buyers from newsletter signups.
  • Mailchimp counts contacts across all audiences against your plan limit — duplicates within a single audience are deduplicated, but the same email in two different audiences counts twice.

Free Mailchimp accounts allow one audience. Paid plans let you keep multiple audiences if you prefer to separate LinkStacked signups from other traffic sources.

Next: Connect Mailchimp from LinkStacked
3

Step 3 of 6

· 3 min

Connect Mailchimp from LinkStacked

In LinkStacked, go to Dashboard → Email Collection → Integrations.

  1. 1Click "Connect Mailchimp"
  2. 2You're redirected to Mailchimp's login page. Sign in if needed.
  3. 3Mailchimp asks if you want to grant LinkStacked access — review the permissions and click 'Allow'
  4. 4You're sent back to LinkStacked, now showing 'Connected to your Mailchimp'

What permissions LinkStacked requests

  • Read access to your audience list (so we can show you the dropdown to pick one)
  • Write access to add/update members in the audience you select
  • Read access to merge fields (so we can map our subscriber fields to your custom fields)
  • Read access to tags (so we can sync tags from LinkStacked to Mailchimp)

We don't request access to send campaigns, modify your account settings, or read other users' data. The token is scoped to the minimum permissions needed for the sync.

Make sure you're logging into the correct Mailchimp account during OAuth. If multiple people share the LinkStacked workspace, the connection is owned by whoever clicks Approve. Disconnect and reconnect from the right account if needed.

Self-hosting LinkStacked? Whatever URL the dashboard runs on (e.g. http://localhost:3000/dashboard/email-collection) MUST be added as a redirect URL inside your Mailchimp app config. Mailchimp will reject the OAuth start if the URL isn't registered.

Next: Pick the destination audience
4

Step 4 of 6

· 1 min

Pick the destination audience

Once connected, the Integrations panel shows your Mailchimp audiences in a dropdown.

  • Pick the audience you want LinkStacked subscribers to land in
  • You can change this anytime — future syncs go to whichever audience is currently selected
  • If you don't see your audience, click reload — LinkStacked refreshes the list each time the page is opened
  • Audiences are listed in the order they appear in Mailchimp, with the most-used at the top

If you create a new audience in Mailchimp while the LinkStacked panel is open, you'll need to refresh — LinkStacked caches the audience list briefly to avoid hammering the Mailchimp API.

Next: Queue your first sync
5

Step 5 of 6

· 3 min

Queue your first sync

Scroll to "Provider sync", make sure provider = Mailchimp, choose a scope (all subscribers or one campaign), and click "Queue sync".

  • You'll see a preview row count and how many phone-only signups will be skipped
  • The job appears in 'Provider sync jobs' with status PENDING → RUNNING → COMPLETED
  • The row stays live with a progress bar while it runs and a refresh button is in the header if you want to force a reload
  • Members are upserted in batches via Mailchimp's batch API; existing emails are not duplicated

Field mapping — what gets sent and where

Beyond email, LinkStacked also sends any of these fields it has on a subscriber, so they fill in your audience's standard merge tags:

  • First name → FNAME
  • Last name → LNAME (read from a campaign custom field called lastName / last_name / surname, or split from a "name" / "fullName" field)
  • Phone → PHONE (the E.164 phone we collected, or a custom phone / phoneNumber / mobile field)
  • Birthday → BIRTHDAY (custom field birthday / dob / birthDate; we normalise to MM/DD or skip if invalid)
  • Company → COMPANY (custom field company / organization / employer)
  • Tags → Mailchimp tags (the same tag list you see on the subscriber in LinkStacked)
  • Source → SOURCE (which campaign or profile they signed up via)

Mailchimp silently ignores merge tags that aren't defined on your audience. So if you don't want, say, BIRTHDAY, just leave it off the audience — LinkStacked will keep sending the value but Mailchimp will drop it.

ADDRESS isn't synced yet because Mailchimp requires structured addresses (addr1 / city / state / zip / country) and most LinkStacked forms collect addresses as free text. Coming soon — we're working on a structured address parser.

If you queued a sync by mistake, you can cancel it while it's still PENDING. Failed or cancelled jobs can be retried from the same panel without re-entering anything.

Why some contacts get skipped

Mailchimp legally cannot let LinkStacked re-add a contact who has already unsubscribed, bounced, or marked you as spam in this audience — only the contact themselves can opt back in. The Mailchimp API rejects those rows individually with 'The contact must re-subscribe to get back on the list.'

LinkStacked treats those as soft skips: the rest of the batch still syncs successfully, the job ends as Completed, and the job's notes show a breakdown like '12 must re-subscribe in Mailchimp before they can receive emails (e.g. user@example.com, …)'. Invalid or 'forgotten' (GDPR-deleted) contacts are reported the same way.

  • To bring a compliance-state contact back, send them through your subscribe form (or a Mailchimp-hosted signup form) again — their fresh opt-in re-subscribes them.
  • Inside Mailchimp you can also open the contact and choose "Add to audience → Send a confirmation email" to trigger a re-confirmation link. Doing this silently from LinkStacked is not allowed by Mailchimp.
  • These compliance states are usually a small percentage of your sync. If you're seeing huge numbers of skipped contacts, double-check that you're syncing to the right audience.

Sync timing and frequency

Sync is on-demand by default — you queue it whenever you want. There's no automatic background sync, on purpose: you stay in control of when subscribers move from LinkStacked to Mailchimp. Many creators sync weekly (every Monday morning) or per-launch (after a major content drop).

Next: Disconnect or rotate the connection
6

Step 6 of 6

· 2 min

Disconnect or rotate the connection

Click 'Disconnect Mailchimp' any time you want to stop the sync. LinkStacked deletes the saved access token immediately and stops sending new signups. Your existing Mailchimp audience and contacts are unaffected — they stay where they are.

You can also revoke access from inside Mailchimp (Account → Extras → Authorized apps). Doing it on either side is enough — the OAuth token becomes invalid for LinkStacked.

Switching to a new audience? You don't need to disconnect — just pick a different audience in the dropdown. Use disconnect when you want to fully revoke LinkStacked's access, e.g. when changing Mailchimp accounts or moving to a different ESP.

When to switch ESPs

If you outgrow Mailchimp and switch to ConvertKit, Beehiiv, or another ESP, the migration path is: export from Mailchimp (CSV), import into the new ESP, then connect LinkStacked to the new ESP. Your historical LinkStacked subscriber data is unaffected — it lives in our database, not in Mailchimp.

Guide complete!

You've finished all 6 steps of "Sync subscribers to your Mailchimp account". Ready for what's next?