SC
Enterprise Integrations

Enterprise Integration Architecture

Connecting ERP, CRM, banking, and payment systems. The hard part is never the API. It's that every customer's data is different — even on the same ERP.

Enterprise integration looks like an API problem. Connect to their ERP, their CRM, their bank, their payment gateway, and move data between them.

The connectivity is the easy 10%. The other 90% is making sense of what comes through the pipe.

Lesson. Every customer's data is different, even when they use the same ERP. The integration challenge is mapping and normalization — not API connectivity.

Why "same ERP" doesn't mean "same data"

Two customers on the same ERP will still differ in:

  • custom fields and naming conventions
  • chart-of-accounts structure
  • which modules they actually use
  • how disciplined their data entry is
  • date formats, currencies, and rounding
  • what "an invoice" even means in their process

The connector is shared. The mapping is bespoke. Plan for that, or every onboarding becomes a surprise.

Normalize to a canonical model

The pattern that holds up: one adapter per source system that translates its shape into a single canonical model the rest of the platform understands.

ERP ─┐
CRM ─┤
Bank ─┼──▶ Canonical model ──▶ Reconciliation / automation / dashboards
Gateway ─┘

Most of the engineering lives in those adapters. Done right, the downstream platform never has to know which system a record came from. This is what made three-way reconciliation across ERP, CRM, banking, and payment gateways possible without the core logic drowning in special cases.

Configuration beats customization

Opinion. Configuration beats customization. Every time.

A new customer quirk should be a config value or a mapping rule — not a code branch. Code branches multiply, rot, and make every customer a special build. Configuration keeps onboarding a data exercise and keeps the platform one codebase.

When you feel the urge to fork behavior per customer, push it into data instead.

Meet enterprises where they are

Some customers expose modern APIs. Many still run on scheduled file exchanges. The elegant API is worthless if the counterparty can't call it. Supporting both — and normalizing both into the same canonical model — is the actual job.