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."
