AddThisFeature

Mailchimp Lead Sync

Keep Mailchimp audiences current with app leads without creating duplicate contacts.

moderate Sales & Marketing Tools

What it adds

A one-way sync that pushes new and changed leads into a chosen Mailchimp audience with mapped fields and tags.

What your agent is told to do

5
  1. 1

    Find every place a lead is created or a profile changes — signup forms, imports, admin edits, checkout — and route all of them through a single sync path rather than calling the provider from each one.

  2. 2

    Normalize the email address before matching: trim it, lowercase the domain, and resolve any display form to the plain address. Use that normalized value as the only match key, so the same person entering twice updates one member instead of creating a second.

  3. 3

    Let a workspace admin choose the destination audience and map app fields and tags to it, and send only the fields the app genuinely owns. Leave everything else untouched rather than writing empty values over data the marketing team maintains.

  4. 4

    Reuse the app's existing background-job system for every write, with retry and exponential backoff when the provider rate-limits, and never let a slow or failing provider hold up the response to the person signing up.

  5. 5

    Do not treat the app as the authority on subscription state. When the provider reports a member as unsubscribed, cleaned, or archived, record that locally and stop sending — pushing them back to subscribed is how an app generates spam complaints.

Edge cases it handles

8
  • Email addresses arrive with mixed casing, surrounding whitespace, and display-name wrappers. Without normalization before the lookup, the same person is matched as a new member each time and the audience fills with near-duplicates.
  • Marketing teams enrich contacts by hand with data the app never had. A mapping that writes every mapped field on every update will erase that work, so send only fields the app owns and skip blanks rather than clearing the remote value.
  • Members can be subscribed, unsubscribed, cleaned, pending, or archived, and each one means something different. Sending to a cleaned address damages sending reputation, and resubscribing an archived member without a fresh opt-in is a compliance problem.
  • Both the provider's webhook retries and the app's own job retries will deliver the same event more than once. Every write needs a stable idempotency key derived from the lead and the change, or a single signup applies its tag three times and re-triggers the welcome automation.
  • When a workspace disconnects its account, in-flight and queued jobs must stop immediately and stored credentials must be deleted. A queue that drains after disconnection keeps writing to an account the customer believes is detached.
  • Stored tokens expire and can be revoked from the provider's side. Refresh ahead of expiry, and when refresh fails, mark the connection broken, surface it in the app, and hold events rather than discarding them.
  • An audience can be deleted or renamed after the mapping is saved. Detect the missing destination, pause the sync with a clear message naming the audience, and do not silently fall back to a different one.
  • When the provider is down, the app must still complete the signup and show success. Queue the sync, show its status on the lead record, and never present a provider outage as a failure of the user's own action.

Definition of done

9
  • A lead entered twice with differently formatted versions of the same address results in one member, not two.
  • Repeated deliveries of the same event apply a tag or automation enrollment exactly once.
  • Fields the app does not own, and blank app values, never overwrite existing member data.
  • Unsubscribed, cleaned, and archived members are recorded locally and receive no further sends.
  • Disconnecting an account halts queued and in-flight syncs and removes stored credentials.
  • An expired or revoked token surfaces as a visible broken connection with events held rather than lost.
  • Signup succeeds and the user sees success even while the provider is unreachable.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.