The scenario.
A maintenance contractor where operations live in JobLogic: work orders, planned maintenance, engineer dispatch, asset history. Sales and account management live in Salesforce: contracts, renewal dates, opportunities, invoicing. Nobody owns the link between them, so account managers walk into renewals not knowing how many call-outs the customer has had, and ops dispatches engineers to sites where the contract has lapsed.
How it's built.
- Entity mapMap every entity that needs to flow each direction: customer master, sites, contracts, jobs, assets, engineers. Define the system of record per field: contracts owned by Salesforce, jobs owned by JobLogic.
- n8n sync layerThe sync layer runs in n8n with API connectors on both sides. Handles create, update, soft-delete and conflict resolution per field.
- Idempotency keysIdempotency keys so retries and replays don't create duplicates.
- Sync health dashboardA "sync health" dashboard: any record with a divergence between the two systems shows up with the diff so ops or sales can decide which side wins.
- Slack alertsAlerts for high-stakes divergences: a job booked against an out-of-contract site triggers a Slack ping to the account manager before the engineer is dispatched.
What makes it tick.
- True two-way sync: not the usual "one system mirrors the other".
- Field-level system of record so neither side can stomp the other's data.
- Audit log of every sync event, for the compliance questions enterprise customers ask.
- Bulk back-fill tool to reconcile years of historical drift in one pass.
What it's designed to change.
This pattern is designed so account managers walk into renewals with a job-history summary auto-pulled from JobLogic, and ops stops dispatching to lapsed-contract sites, which is where unbilled work comes from. The renewal conversation is meant to shift from "is everything OK?" to "based on the 47 call-outs you had this year, here's why a fixed-price contract makes sense". These are design targets for the modeled scenario, not measured client results.
Tools in the build.
- JobLogic API
- Salesforce API
- n8n
- PHP
- MySQL
- Slack API