Process automation suite · 2025

One record, three systems, no duplication

ShippedIndependent engineer

A lead landed in the CRM, in an email, and in accounting as three separate records that nobody reconciled. No single system held the truth; it only came together in one person's workflow.

The constraint

The client's CRM, mail, and ledger already existed. The work was to connect them, not to replace them with a fourth platform. A failed run has to be visible. A silent skip is worse than a loud error.

Built with

  • n8n
  • REST APIs
  • Webhooks

How it works

CRM, email, and accounting stay where they are. n8n is the bus. Each workflow has a happy path and an error path into a log.

The calls that shaped it

Each decision with the pressure that forced it and the price it keeps costing.

  1. n8n as the bus

    The operators needed to pause a flow and see why it stopped. A custom daemon would have been mine to read and theirs to trust.

    Fifteen workflows, because the operators already needed a canvas they could pause and read. The value is the paths and the error handling; any runtime that draws them would do.

    The cost: The runtime is a dependency, and fifteen flows are a surface to keep working.

  2. Webhooks and REST as they actually are

    Each system had its own API shape. A universal schema would have meant rewriting three integrations in order to move one field.

    Each system kept its own API. The suite does not invent a universal schema. It maps the fields that move and leaves the rest alone.

    The cost: Field mapping lives in the workflow, so a field added upstream is a change in n8n.

  3. Error path on every flow

    A dead credential or a rejected write used to strand the record with nobody told. A loud failure is recoverable; a silent skip is not.

    A dead credential or a 422 does not strand the record. It lands in a log with enough context to retry.

    The cost: Roughly twice the work per flow: a happy path and an error path carrying enough context to retry.

  4. No hero dashboard

    The client did not ask for a UI. What they needed was a lead that still reached the ledger when nobody had a tab open.

    The client did not need a new UI. They needed a lead that still arrived in the ledger when nobody had the tab open.

    The cost: There is no screen to check, so success is only visible in the ledger and the run log.

This engagement produced no screen to look at. Its value shows at the end of a run: the record is in the ledger, and if a step failed it is logged with enough context to retry. No tab needs to be open.

Where it stands

Shipped. Leads and invoices now flow between CRM, email, and accounting automatically, and the three copies stay in step.

  • Fifteen workflows connect CRM, email, and accounting.
  • Every flow carries its own error path into a run log with enough context to retry the record.
  • The client's CRM, mail, and ledger stayed where they were; nothing was replaced.
  • Shipped. The record reaches the ledger with no tab open.

What was handed over

  1. Workflow exports
  2. Credential map (names and locations, not the secrets)
  3. What each flow does, and which one to pause first
  4. Where the error log lives and how to retry a dead item
Next project E-commerce data pipeline Reliable daily competitor pricing, collected on its own