The outcome
- One approved staff-lifecycle flow coordinates updates across three systems.
- A read-only reconciliation layer identifies drift before write access is enabled.
- Payroll-to-ledger mapping is encoded by campus and cost center.
- Established a partnership model that survives staff turnover on either side.
The challenge
Every new staff member meant entering the same data three times, and reconciliation between payroll and the general ledger was a monthly fire drill. The church runs multiple campuses with a volunteer-heavy workforce layered on top of paid staff, and three core systems held overlapping but inconsistent records: Rock RMS for people, Netchex for payroll, and Sage Intacct for the ledger. Onboarding meant manual entry in all three; terminations risked stranded access.
How we did it
We delivered this as a partnership, not a transactional scope of work — ministry moves at relational speed, not procurement speed — and ran it in phases so the team never had to trust automation before it had earned that trust.
- Discovery and data audit. Mapped every field across all three systems and named the canonical source of truth for each.
- Read-only sync layer. n8n flows reconciled Rock RMS against Netchex without writing anything yet, surfacing drift in a weekly report.
- Bidirectional automation for onboarding and offboarding, with a human approving each commit point.
- GL automation. Netchex payroll runs auto-post to Sage Intacct with cost-center mapping per campus.
