Back to Case Studies
Accounting

Client grades in every campaign: a Karbon to Mailchimp sync that carries real data

Karbon's native Mailchimp sync carried names and emails only. A webhook pipeline now pushes A-to-D grades and nine custom fields in real time.

Perth accounting practice · 26 July 2026 · 3 min read

n8nKarbon APIMailchimp API
Outcome

Campaigns now segment on the client grade and operational fields the practice actually keeps, not just a name and an email.

Easy to use and intuitive.

the client, on handover

A Perth accounting practice grades every client from A to D and tracks fields like payroll frequency and BAS frequency inside Karbon. None of that reached the practice's email platform, because Karbon's built-in Mailchimp sync only ever carried a name and an email address.

The problem

Every campaign went out blind. The practice already had the data to send a sharper email: which clients were graded A versus D, who was on monthly BAS versus quarterly, who was due a review call. All of it lived in Karbon. Karbon's native Mailchimp integration carried across two fields, name and email, and stopped there. The team could not build a campaign for "D-grade clients due a review" or "monthly BAS clients" because Mailchimp had no idea those categories existed. Every subscriber looked the same to the platform sending them mail.

What we built

A webhook pipeline that replaces Karbon's native sync outright. An edit to a contact or organisation in Karbon fires a webhook. An n8n workflow picks it up, pulls the full record and its custom fields from the Karbon API, works out whether the contact is an individual or an entity, and maps the result onto Mailchimp's merge fields. The A-to-D grade and nine custom fields travel across on every update, not just at the point a contact is first created. The routing is deterministic: record type and field values decide the outcome, so the same edit in Karbon produces the same result in Mailchimp every time, with nothing left to a model's judgement.

How it runs

Karbon fires the webhook on any contact or organisation update. The n8n workflow fetches the full record, including the nine custom fields and the grade, classifies the contact, and pushes the mapped fields to the matching Mailchimp subscriber by email. The pipeline runs against the practice's own Karbon and Mailchimp accounts, so there's no intermediary holding the data and nothing to hand back if the engagement ends.

Under the hood

Individuals and organisations don't carry the same fields in Karbon, so the workflow classifies each contact first and maps it onto the matching set of Mailchimp merge fields rather than forcing every record through one template. That classification step is the only branch point in the whole pipeline, and it's a rule, not a judgement call: contact type in, field mapping out, the same way every time. The grade and the operational fields, payroll frequency and BAS frequency among them, ride across on the same update, so a campaign can now be built around real segments: D-grade clients due a review call, or clients on monthly BAS ahead of a lodgement deadline. None of that targeting was possible when the only two fields making the trip were a name and an email address.

Nothing here needed a new platform. n8n sits between two systems the practice already ran, watching for the same edits a staff member would already be making inside Karbon. The webhook fires once, on the update itself, so the sync happens as part of the practice's existing workflow rather than as a separate task anyone has to remember to run.

What changed

The team can now build a campaign around the data they actually keep: grade, entity type, and the operational fields specific to accounting work. A subscriber's record in Mailchimp reflects what's true in Karbon in real time, rather than a name and an email address frozen at the point of first contact. Nobody exports a list and pastes fields in by hand before a send, and nobody has to remember to update Mailchimp when a client's grade changes in Karbon. The system carries that update on its own.

On handover, the client's own assessment was blunt: "Easy to use and intuitive."

Questions we get about this build

The practice does. The workflow runs in their own n8n instance against their own Karbon and Mailchimp accounts, so there is no vendor lock-in and nothing to migrate later.

The pipeline is a small, deterministic set of field mappings, not a black box, so it gets updated the same way any integration does: a scoped change to the mapping, tested before it goes live.

Yes. The native sync only ever carried names and emails. This webhook pipeline replaces it entirely and adds the grade and custom fields the native version never touched.

The grade is one field among many. Any field the practice already tracks in Karbon, whatever the scheme, can be mapped the same way.

Have a process that should run itself?

Bring the messiest workflow you have. We will tell you what to automate, what to leave manual, and when an agent is the wrong answer.

Talk to MerlinGuided intake