Jiss Tech insights

How to Integrate Your CRM With Accounting, SMS, Email and Payments

A field guide to the four CRM integrations that matter — identity normalization, SMS threads and consent, email's silent failure modes, webhook-first payments, and legacy ERP sync — with real failure stories and the patterns that prevent them.

Field noteBy Joe Sukar, Founder & Principal EngineerPublished August 11, 2026Practical thinking for teams building better systems.

A CRM that does not talk to your other systems is just another silo with a login. But CRM integrations are also where we see the most quiet breakage in small-business software: syncs that duplicate, emails that silently stop, webhooks that vanish. This guide covers the four integrations that matter most — SMS, email, payments, and accounting/ERP — with the failure modes we have personally hit and designed against.

First: agree on the identity key

Before any integration, decide what uniquely identifies a customer across systems — and normalize it ruthlessly. In the auto-shop CRM we operate, the phone number is the join key, canonicalized to one format at every entry point. We learned why the hard way: a lookup kept failing for customers who clearly existed, because a form submitted 201-555-0123 while the database held +12015550123. Same person, no match. One normalization function, applied everywhere, ended a whole category of "missing customer" bugs. Whatever your key is — phone, email, account number — un-normalized identity is the root cause of most duplicate records you will ever see.

SMS: the highest-value channel

For service businesses, SMS is where customers actually respond. What production-grade looks like, from running it daily:

  • Log the provider's receipt. Every outbound message stores the provider's message ID and status, so "did the reminder send?" has a database answer, not a shrug.
  • Handle inbound as threads. A webhook receives replies, stores them with direction and unread flags, and surfaces them as conversations a human continues — automation starts the exchange, people finish it.
  • Design consent in from day one. Honor STOP keywords with your own suppression list on top of carrier handling, and record where each number's consent came from. Retrofitting compliance is far more expensive than building it.
  • Throttle bulk sends into daily batches sized so replies get human attention.

Email: beware the silent failure

Email fails quietly in ways SMS rarely does. Two true stories. A legacy order-management system we took over sent its daily operations report through an email provider's sandbox domain — which only delivers to pre-authorized recipients. Anyone added later simply never got the report, with no error anywhere. And on one of our own sites, a lead-notification integration failed because an environment variable pasted into a hosting dashboard picked up an invisible zero-width character that made the provider URL unparseable. The lessons: verify your sending domain properly, test delivery to a new address (not the one that always worked), sanitize configuration inputs, and never let email be the only channel for anything critical — we pair email with a second notification channel for exactly this reason.

Payments: reconcile on the webhook

The cardinal rule of payment integrations: the processor's webhook — not your checkout page — is the source of truth for "paid." Browsers close mid-redirect; webhooks arrive regardless. Verify webhook signatures, make handlers idempotent (providers retry, and a double-marked payment is a real bug), and reconcile your records against the processor's on a schedule so drift gets caught in days, not at tax time.

Accounting & ERP: meet the system where it is

Modern accounting tools have clean APIs. Legacy ERPs often do not — and pretending otherwise kills projects. One manufacturer we work with runs an ERP whose only integration surface is files in a watched folder: the order system writes a CSV per order, a background process on the ERP side picks it up, and a response file syncs the ERP's ID back. It is not glamorous, but designed carefully — atomic writes, unmistakable filenames, a sentinel value that flags missing IDs for a human — it has moved orders reliably for years. A dependable integration your ERP can actually participate in beats an elegant one it cannot.

The doctrine underneath all four

Everything above reduces to the rules we wrote about in our flight-tracker lessons: reconcile against a source of truth instead of blindly copying, log enough to answer "did it run?", decide the fallback before the outage, and fail honestly rather than silently. Integrations built this way are boring — which is the highest compliment operational software can earn. If yours are exciting, our API integration practice and CRM development work exist to make them dull again.

Take the next step

Which integration keeps breaking on you?

Duplicated records, silent email failures, payment drift — describe the symptom and we'll diagnose the pattern, with a fixed price to fix it properly.