Skip to content

Platform engineering integrations and automations

The patterns underneath the business processes: API facades, change data capture, webhook delivery and the move off batch files.

12 guides  ·  Built with Tray Headless

What this work has in common

These guides describe shapes more than named business processes, and they sit underneath the rest of the library. A facade, a change capture pipeline, a webhook fan-out and a migration off a batch file are each something several teams were about to build separately, in slightly different ways.

They are also where the expensive mistakes are made. A decision about retries, idempotency or identity at this layer is inherited by every workflow built on top of it. A facade that loses the caller’s identity means every downstream audit log shows a service account. A fan-out without replay means a consumer that was down for an hour has a gap nobody can fill.

The systems vary more here than in the other categories: a Postgres or Snowflake database, an SFTP server, Datadog for monitoring, Stripe or Zendesk as webhook sources, and whichever CRM and ERP the consumers need. What stays the same is the set of guarantees: one contract per consumer, ordering and deletes preserved, delivery that can be retried and replayed, and a cutover you can prove is safe.

The four guides cover the API facade, change data capture, webhook fan-out and the migration from SFTP batch files to APIs. They pair with the data operations guides, which build on the same capture and delivery patterns.

Each one is written so the pattern can be built once and reused, with the first consumer as the worked example.

Where integration platforms break

Every consumer calling every system

Six teams each integrate with the CRM, the ERP and the billing system, each with its own credentials and its own retry logic. When an upstream API changes, six things break. A facade gives consumers one contract and absorbs the change in one place.

Polling a timestamp

Querying for records modified since the last run misses deletes, misses changes made in the same second, and falls over when the clock on the source drifts. Reading the change log keeps order and deletes intact.

Acknowledging after the work

A webhook receiver that does all the downstream work before it returns a 200 times out, and the sender retries, and the work happens twice. Verify the signature, acknowledge, then fan out with a retry per consumer.

Cutting over before month end

A batch file carries rules nobody wrote down: a sort order, a field that means two things, a record that only appears at quarter end. Run old and new in parallel and compare the output through a full month end before switching off the file.

The platform engineering guides

Each one is the design, the sequence it runs in, the prompts that build it, and what changes when it runs in production.

How to build

Integration

API facade

Give consumers one contract instead of six systems, absorb upstream changes rather than leaking them, and keep the caller identity intact.

Salesforce NetSuite Zendesk Snowflake

How to build

Integration

Change data capture pipeline

Read the log instead of polling a timestamp, overlap the snapshot with the stream, and keep deletes and order intact.

Postgres Snowflake Snowflake Datadog

How to build

Integration

Webhook fan-out

Acknowledge before you fan out, verify the signature first, retry per consumer, and make replay possible.

Stripe Salesforce Snowflake Zendesk

How to migrate

Integration

SFTP batch feed to an API

Recover the semantics nobody wrote down, run both in parallel and diff, and cut over only after a month end.

NetSuite Snowflake Slack Jira

How to handle

Automation

Exceptions and retries in automated workflows

Sort failures into ones to retry and ones a person must fix, make retries safe to repeat, park what fails with its context, and alert an owner.

Salesforce NetSuite Jira Slack

How to update

Automation

Several systems from one automated process

Write each update in a set order, check first so a rerun never doubles anything, hand other teams a tracked task, and tell everyone affected.

NetSuite Stripe Salesforce Zendesk

How to build

Automation

Integration request tracking

Collect every customer request for an integration from sales, support and product feedback, count it once per account, and weigh it by revenue.

Salesforce Zendesk Productboard Gong.io

How to build

Integration

One integration for every customer

Build a customer-facing integration once, with every per-customer choice pulled out as a setting, so a fix ships to every customer at the same time.

HubSpot Salesforce Slack

How to let

Integration

Customers connect their own accounts

Let customers authorise their own apps inside your product, under your brand, with expired connections caught and fixed before a sync stops.

Salesforce HubSpot SendGrid Slack

How to build

Integration

Customer field mapping

Let each customer match your product's fields to their own, custom fields included, then turn the integration on with a first sync that doesn't flood their account.

HubSpot Salesforce Slack

How to build

Automation

Error alerts for customer integrations

Catch every failed run across every customer's integration, sort what the customer can fix from what your team must, and tell the right one first.

Zendesk Slack Datadog SendGrid

How to roll

Automation

Out integration changes to every customer

Ship a new version of a customer-facing integration to every customer: test it as a customer first, release in waves, and ask for setup again only when it must.

GitHub Slack SendGrid

The systems involved

The applications these guides read from and write to, most used first. Each links to its connector page.

Connections these guides build

Solutions for platform engineering

The solution pages for this work, with the customer stories behind them.