A build-to-order Frappe app that keeps ERPNext and Mailchimp in continuous two-way sync — contacts, audiences, tags, segments and campaign open/click activity — so ERPNext stays your system of record while Mailchimp handles the sending. ECOSIRE scopes, builds, installs and supports it for your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that keeps ERPNext and Mailchimp in continuous two-way sync — contacts, audiences, tags, segments and campaign open/click activity — so ERPNext stays your system of record while Mailchimp handles the sending. ECOSIRE scopes, builds, installs and supports it for your instance.
Aucun paiement maintenant. Ceci envoie une demande de devis à notre équipe — nous vous recontacterons par e-mail avec les tarifs et les prochaines étapes.
Marketing teams keep Mailchimp for its templates, deliverability and automation, but the customer of record lives in ERPNext. So the same person exists twice, unsubscribes never make it back to the CRM, sales sees no email engagement, and someone spends every Monday exporting a CSV from Contact/Lead, cleaning it, and re-importing it into a Mailchimp audience. ERPNext core ships Email Group and Newsletter, but it does not talk to Mailchimp's Audiences, merge fields, tags or campaign-activity API — and there is no round-trip of opens, clicks and unsubscribes back onto your records. Once you commit to Mailchimp as the sending platform, native ERPNext runs out of road.
Two-way sync of `Contact`, `Lead` and `Customer` records to Mailchimp audience members, with ERPNext as the system of record on conflict
`Mailchimp Settings` single DocType storing API key and data-center as encrypted `Password` fields, plus default audience and sync toggles
`Mailchimp Audience Map` child table mapping each ERPNext Email Group or saved-filter segment to a specific Mailchimp audience
Field-to-merge-field mapping (e.g. `first_name`→`FNAME`, custom fields→custom merge tags) configurable without code changes
Tag mapping so ERPNext categories, lead sources or link fields become Mailchimp tags and vice versa
Outbound push driven by `hooks.py` doc events (`after_insert`, `on_update`) so edits propagate immediately
We build a dedicated Frappe app — its own module, DocTypes and hooks.py — that establishes a durable bi-directional link between the two systems. A Mailchimp Settings single DocType holds the API key/data-center and default audience (secrets stored as Password fields, never in plain text); a Mailchimp Audience Map child table maps each ERPNext Email Group or saved-filter segment to a Mailchimp audience and maps ERPNext fields to Mailchimp merge fields and tags. Outbound sync is driven by hooks.py doc events (after_insert, on_update) on Contact, Lead and Customer, so an edit in ERPNext is pushed to the correct audience without a manual export. Scheduler events (hourly/daily) run reconciliation and backfill so the two systems converge even if a webhook is missed.
Inbound sync is equally first-class. Mailchimp webhooks hit a whitelisted method (@frappe.whitelist(allow_guest=True), HMAC-verified) that writes subscriber changes, unsubscribes and profile edits back to ERPNext, and a Mailchimp Activity DocType captures per-campaign opens, clicks and bounces linked to the matching Contact/Lead so your sales team sees engagement inside the CRM timeline. You can trigger a Mailchimp campaign send against a mapped audience directly from an ERPNext document or a custom button (client script → whitelisted server method), and every push and pull is written to a Mailchimp Sync Log DocType with the request, response and status for auditability. All API traffic runs through Frappe's background job queue with retry/backoff so a Mailchimp rate-limit or timeout never blocks a user save. Access is governed by a dedicated role and role profile, and the app targets Frappe/ERPNext v15 and v16.
Because this is build-to-order, nothing ships as an instant download. We start with a short scoping call to confirm which DocTypes, fields, segments and audiences are in play, then build against your actual data model on a staging bench. Typical delivery is 2–4 weeks from confirmed scope. You get the installable source for your version, UAT on staging with a rollback plan, and a post-go-live support window — the connector is built, installed and supported by ECOSIRE for your ERPNext instance.
Keeps Mailchimp as the sending and automation platform but needs the audience to stay accurate against ERPNext. Wants unsubscribes, tags and segments to flow both ways so campaigns target the right people without weekly CSV exports.
Wants email engagement visible inside ERPNext. Needs opens, clicks and bounces landing on the `Contact`/`Lead` timeline so reps and lead-scoring rules can act on who actually engaged with a campaign.
Owns the ERPNext instance and cares about a clean, upgradeable app on its own module, encrypted credentials, role-based access, background-job safety and an audit log — not a pile of ad-hoc scripts that break on the next `bench update`.
Runs a lean team and refuses duplicate contact databases. Wants one system of record (ERPNext) with Mailchimp as the execution layer, delivered as a supported build rather than a fragile in-house integration.
Achetez la licence sur ecosire.com et téléchargez le ZIP de l'application Mailchimp Two-Way Sync for ERPNext depuis le tableau de bord de votre compte.
Extrayez le ZIP dans le dossier d'applications de votre banc ou exécutez « bench get-app » avec le chemin d'accès à l'application extraite.
Exécutez `bench --site SITE_NAME install-app APP_NAME` suivi de `bench migrate` pour installer Mailchimp Two-Way Sync for ERPNext et appliquer son schéma.
Ouvrez les paramètres de licence ECOSIRE sur votre site et activez votre clé de licence. Nécessite les applications gratuites ecosire_connect et ecosire_license_client.
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Odoo natif |
|---|---|---|---|---|
| Two-way contact/audience sync | Bi-directional with ERPNext as system of record and conflict rules | Possible but you design the conflict logic yourself | Often one-way push to Mailchimp only | |
| Campaign open/click back-sync to CRM | Per-campaign activity written to a linked DocType | Requires building webhook + activity model from scratch | Rarely included; export-only if at all | |
| Segment / tag mapping | ERPNext filters and fields mapped to audiences and tags | Hand-coded per mapping | Fixed field set, limited tag support | |
| Fit to your data model | Scoped to your DocTypes, custom fields and merge fields | Fully bespoke but slower and unowned upfront | Generic mappings you bend to fit | |
| Reliability under load | Background jobs with retry/backoff, never blocks saves | Depends entirely on your implementation | Varies; synchronous calls can stall saves | |
| Auditability | `Mailchimp Sync Log` with request/response per operation | Only if you build logging in | Minimal or no sync log | |
| Support & ownership | Built, installed, supported; you own the source + git repo | You own and maintain everything alone | Vendor roadmap; you wait for fixes | |
| Version support | Tested on Frappe/ERPNext v15 and v16, upgrade-safe hooks | Whatever you target and test | May lag new ERPNext releases |
This is a build-to-order app, so there is no instant download. After a short scoping call to confirm DocTypes, field/tag mappings, audiences and segments, we build against your data model on a staging bench. Typical delivery is 2–4 weeks from confirmed scope, depending on how many objects and custom fields are in play.
No. ECOSIRE designs, builds, installs and supports it specifically for your ERPNext instance and Mailchimp account. You receive the installable source and the git repository for your version, not a generic pre-built listing.
Contacts/leads/customers sync with Mailchimp audience members; ERPNext Email Groups or saved-filter segments map to Mailchimp audiences and tags; and campaign opens, clicks and bounces sync back into a `Mailchimp Activity` DocType linked to the source `Contact` or `Lead`. Exact fields and merge-field mappings are agreed during scoping.
Unsubscribe and cleaned statuses from Mailchimp write back and flag the ERPNext record so it is excluded from future sends. All API calls run as Frappe background jobs with exponential-backoff retry, so a Mailchimp rate-limit or timeout never blocks a user saving a record in ERPNext.
You get a post-go-live support window for defect fixes and configuration changes. Because you own the source and git repo, ongoing enhancements, new field mappings or version upgrades (for example to a later Frappe/ERPNext release) can be handled by ECOSIRE under a support arrangement or by your own team.
The app is built and tested for Frappe/ERPNext v15 and v16 as a proper app on its own module, using supported extension points — `hooks.py` doc events, scheduler events, whitelisted methods and client scripts — so it survives `bench update` cleanly.
No — that is the point. ERPNext stays the system of record and wins on conflict; Mailchimp is the execution layer for sending. If you ever leave Mailchimp, your customer data and engagement history already live in ERPNext.
A build-to-order Frappe app that keeps ERPNext and Mailchimp in continuous two-way sync — contacts, audiences, tags, segments and campaign open/click activity — so ERPNext stays your system of record while Mailchimp handles the sending. ECOSIRE scopes, builds, installs and supports it for your instance.