Email marketing

A newsletter signup is a legal fact, not just a name in a spreadsheet

A newsletter signup looks like a small thing — a name and an email address, added to a list. Under the GDPR it is also a legal fact: a specific person agreed to a specific kind of contact, at a specific moment, in a specific way, and that agreement can be withdrawn as easily as it was given.

Most of the Mailchimp connections that go wrong do not go wrong on the technical side. Mailchimp's API is solid and well documented. They go wrong on the part that never shows up in a demo: whether the record of who agreed to what, and when, actually survives the trip between your website and Mailchimp's list.

  • REST API and webhooks, well documented
  • Consent, double opt-in and unsubscribes handled correctly
  • From €1,700 plus service fees
The tool

What Mailchimp is, and what a connection into it actually has to carry

Mailchimp is an email marketing platform: audiences (its word for lists), automated journeys, campaigns and reporting, with a REST API and webhooks that most connections use to add subscribers and read back opens, clicks and unsubscribes. Technically it is one of the easier connections in this bank — the API is mature, well documented and forgiving.

What makes a Mailchimp connection worth doing carefully is not the API, it is the audience field around it: which list or tag a subscriber lands in, which double opt-in flow they went through, and — this is the part a plain sync usually drops — the record of when and where they agreed to it. A connection that only moves the email address and skips the consent context has moved half the legally relevant information and kept the other half nowhere.

What goes wrong

Three things that go wrong with Mailchimp connections, and consent runs through all of them

None of these are about Mailchimp failing. They are about a sync built to move an email address, asked later to answer a question about consent it was never built to answer.

A checkout checkbox adds someone to the list with no record of when they ticked it

A customer ticks a newsletter box during checkout and lands in Mailchimp as a subscriber, added directly rather than through Mailchimp's own double opt-in confirmation. Eighteen months later they cannot recall signing up, complain, and there is no timestamp, no IP, no record of the checkbox — just a name in a list that somebody has to defend or quietly delete.

What you see instead

The moment of consent — checkbox text, timestamp, source page, IP where that is kept — is stored on your own side as well as sent to Mailchimp, so a question about consent six months later has an answer instead of a shrug.

Someone unsubscribes in Mailchimp, and the website keeps emailing them anyway

Unsubscribing in Mailchimp stops Mailchimp's own campaigns. If a shop also sends its own transactional marketing emails — an abandoned-cart nudge, a win-back campaign built outside Mailchimp — from a system that never heard about the unsubscribe, that person keeps receiving mail they explicitly said no to, and it is a genuine complaint waiting to happen, not a technicality.

What you see instead

An unsubscribe in Mailchimp is read back as a webhook and suppresses every other system that sends that person mail, the same day, not at the next manual export.

A CRM contact and a Mailchimp subscriber disagree about who this person is

A contact updates their email address in a CRM after changing jobs. Mailchimp still has the old one, still emails it, and now there are two records for one person — one of them getting mail nobody wants delivered to an inbox that is not theirs anymore, which is its own small compliance problem.

What you see instead

Whichever system owns the contact record pushes an email change through to Mailchimp the same way it pushes a new subscriber, so the two never quietly drift into two different people.

The bill for doing it by hand

What sloppy consent handling actually costs, and it is not always money

Some of this cost is ordinary and small: a marketer manually exporting CRM contacts to a CSV and importing them into Mailchimp once a month, thirty minutes of fiddly deduplication that exists only because nothing does it automatically.

The bigger cost is the one that does not show up until it does: a Dutch Data Protection Authority complaint, or simply a customer who can prove they never consented, is not something most small businesses face often, but when it happens the cost is not the fine, it is the time spent proving — or failing to prove — that consent was ever real. A stored timestamp and source is worth more at that moment than at any other.

What we build

We build the thing on the other end too

For Mailchimp specifically, the connection we actually recommend building first is the consent record, not the subscriber sync — get that right and the rest of the connection is comparatively easy.

A connection needs two ends. Plenty of agencies will build you the API call and hand you a JSON payload; that is the easy half. The harder half is what the data lands in — a website, a webshop, a portal your customers log into, an internal tool that replaces a spreadsheet. JKC builds both ends, which is why the connections we build tend to keep working: nothing about the receiving side is a black box to us.

API integrations

The connection itself: authentication, field mapping, rate limits, retries and a queue that survives the other system being down for an hour. Built against the documented API where there is one, and against whatever the vendor really offers where there is not.

Websites

WordPress sites that read from your systems instead of repeating them by hand: a careers page fed by your HR system, a team page that follows your payroll, prices and availability that are the real ones.

Webshops

WooCommerce shops where the order is the last time anyone types it: it becomes an invoice in your accounting package, a label at your carrier, a stock mutation in your warehouse, and a line in your CRM, on its own.

Web applications

When the process does not fit any standard product: a customer portal, a quoting tool, a planning board, a dashboard that reads three systems at once. Built on your data, with your systems as the source instead of a copy of them.

What can be connected

What can be connected between your site or CRM and Mailchimp

Notice that two of these rows are specifically about consent rather than marketing content — that is deliberate, and it is where most of the real work sits.

  • New signups into the right audience and tag (out of the tool)

    From a checkout box, a form or a CRM, added to Mailchimp through its own double opt-in flow rather than added directly, so Mailchimp's own confirmation email does the legal heavy lifting it was built for.

  • The consent record: what, when, where (both ways)

    Stored on your own side at the same moment it is sent to Mailchimp — the checkbox text, the timestamp, the page it happened on — so a question about consent months later has a real answer.

  • Unsubscribes and cleaned addresses (into the tool)

    Read back as a webhook and applied to every other system that sends that person mail, the same day, not synced in a batch that lags behind an actual unsubscribe by a week.

  • Email changes from the system that owns the contact (out of the tool)

    Whichever system — CRM, webshop account, membership tool — is the source of truth for an email address pushes a change through immediately, so an old address is not still receiving mail after somebody has moved on.

  • Purchase and engagement data for segmentation (out of the tool)

    Order history or activity, where relevant, into Mailchimp's own merge fields or tags, so a campaign can be sent to people who bought a specific product rather than everyone on the list.

Rows one and three are close to mandatory for any commercial site sending a newsletter. Row two is the one we push hardest on, because it is the one nobody asks for until the day they need it.

How it works

How a connection gets built at JKC

The same four steps every time, whichever tool it is. Nothing here is a workshop you pay for: step one exists because scoping a connection wrong is the single most expensive thing that can happen to it.

  1. 1. We look at what is actually being retyped

    Not "which fields exist" but "which fields does somebody currently move by hand, how often, and what breaks when they get it wrong". Most projects turn out to need two or three flows, not a full two-way sync of everything. That conversation is what keeps the quote where it is.

  2. 2. We pick the route, and say why

    A maintained connector from the vendor, a platform like Make or Zapier, or a custom integration against the API. Cheapest first, not custom first: if a supported plugin does exactly what you need, that is the answer and we will tell you so. Custom is for the cases where the off-the-shelf option would need so much configuring that it becomes the fragile option.

  3. 3. We build it to survive the other system

    Every connection ships with retries, a queue and an idempotency key, so an order that arrives while the other side is down is delivered later rather than lost, and a retry does not create a second invoice. On a test environment first where the vendor offers one, so the first thing your real administration sees is a working connection.

  4. 4. We hand it over with the failure modes written down

    Which alerts you will get, what each one means, what to do about it, and who to call. Plus the credentials in your own name, in your own vault — not in ours. A connection nobody but us can maintain is a connection you do not own.

After it goes live

A connection that fails silently is worse than no connection

This is the part most quotes leave out. A connection that stops working without telling anyone is worse than manual work, because with manual work at least somebody notices when it does not get done. Every connection JKC builds is monitored, and the monitoring is not an upsell — it is in the service fee.

An alert per failed message, not a monthly report

A message that does not get through raises an alert the same hour, with the record it was about. Not a dashboard you have to remember to look at.

Replay, not re-enter

Anything that failed sits in a queue and can be sent again once the cause is fixed, in order. Nobody goes back through yesterday to find the four orders that did not land.

We watch the vendor's changes, so you do not have to

APIs get versioned, deprecated and rate-limited. When a vendor announces a change that affects your connection, adjusting to it is part of the service fee, not a new project.

What it costs

From €1,700, and the biggest variable is who built the other end

Mailchimp itself has a native WooCommerce plugin that covers ordinary signup syncing well; custom work earns its place on the consent record, unsubscribe propagation across multiple systems, or a CRM in the mix that the plugin does not know about.

A connection starts from €1,700 plus a monthly service fee, which covers the monitoring, the queue and keeping up with the vendor's API changes. Work outside a fixed scope is €95 per hour.

What moves the number is not the tool — it is how well the system on the other end is known. If JKC built your website, your webshop or your web application, we already know its data model, its edge cases and where its stock numbers really come from, and a connection into it is mostly configuration and testing. If it is a system we have never opened, we start with a short technical check of both sides and quote after that, so you are not paying hourly for us to work out the basics.

Two more things that move it, in our experience more than anything else: whether the tool has a real API or only a CSV export, and whether the sync has to go both ways. One-way is roughly half the work of two-way, because two-way means deciding, per field, which system wins when they disagree — and that decision is the expensive part, not the code.

Questions

Frequently asked questions about connecting Mailchimp

No — the API can add someone directly to a list with a "subscribed" status, skipping confirmation, and that is legally weaker ground to stand on, not a shortcut worth taking for a Dutch or EU audience.

We build signups to trigger Mailchimp's own double opt-in flow rather than bypass it, specifically so the confirmation email — and the record of it — exists the way regulators and Mailchimp's own terms expect it to.

Free, 10 minutes

Not sure where the manual hours actually go?

That is what the Growth Scan is for. Ten minutes, no sales call attached: you get back where the double work sits, which connection would pay for itself first, and which one honestly would not.