Work samples · Integrations

Integrations across NetSuite, Procore, HubSpot, Shopify, Magento, and Zendesk — built API-first and event-sourced.

We do not write a snowflake integration per system. Every integration we ship — into NetSuite from HubSpot, Procore, Zendesk, Shopify, Magento, and the rest — starts from the same approach: API-first, event-sourced, replayable, and built on serverless functions that are testable in isolation.

NetSuiteProcoreHubSpotShopifyMagentoZendeskEDISalesforceStripeQuickBooks

The approach

The same four moves on every integration we ship.

We do not have a different playbook for HubSpot vs Shopify vs Procore. The vendor changes; the architecture does not. That is how integration number ten ships faster than integration number one — and how all ten survive contact with production.

Contract

API-first

We design the API contract before we write code. Endpoints, payloads, idempotency rules, and failure modes are reviewed against the workflow before any vendor SDK gets touched. The integration becomes a system you operate, not a script that fires once and gets debugged in production.

  • Contract reviewed against the real workflow, not the vendor docs
  • Idempotency, retries, and ordering pinned down up-front
  • Versioned schemas with backwards-compatible evolution
  • Mocked end-to-end before any live system gets called
Source of truth

Event sourced

Every change becomes an event. The event log is the source of truth — the integration is just a function from events to side effects. New consumers can subscribe later without rewriting the producer or migrating data.

  • Producers emit events; consumers project them into their own shape
  • Adding a new downstream system never modifies the upstream
  • Audit is the event log; no separate audit table to keep in sync
  • Time travel is built in — you can ask 'what did this look like on Tuesday?'
Runtime

Serverless functions as testable strategies

Every integration step ships as an isolated serverless function. Tests run on the function, not on the system. Deploys are individual, failures are scoped, and the blast radius of any one change is one function.

  • Per-step functions deploy and roll back independently
  • Unit tests run without a live NetSuite (or HubSpot, Procore, Shopify) account
  • Cold-path retries and dead-letter queues by default
  • Cost scales with traffic — there is nothing to right-size
Operations

Replayable workflows

Because the events are the source of truth, the entire workflow can be replayed against new code. New environments hydrate from the event log. Bug fixes get re-run against history. Disaster recovery is a re-stream, not a restore.

  • Hydrate a fresh environment from the event log alone
  • Replay history against fixed code — wrong state corrects itself
  • Onboard a new consumer without coordinating with the producer
  • DR is a re-stream — no point-in-time backup gymnastics

Why event-sourced

Event-sourced workflows give you team independence, automatic resiliency, and replay — for free.

Most integration pain comes from the same three places: teams blocking each other, downstream systems missing data while upstream systems are healthy, and bug fixes that need a manual data migration to clean up. Event sourcing removes all three by design.

Team independence

Producers and consumers ship on their own schedule. The CRM team does not block the finance team. New downstream needs land without asking the upstream system to change. Teams own their projection — not a slice of someone else's pipeline.

Automatic resiliency

If a consumer is down, the events queue. When it comes back, it catches up. No data loss, no manual reconciliation, no Sunday-night phone calls. The system is recoverable by construction, not by runbook.

Playback

Bugs get found. The fix gets deployed. The events get replayed against the fixed code. The wrong state corrects itself — you don't write a one-off migration to chase the rows that the bug touched.

Coverage

The systems your business actually runs on.

Adteco has shipped integrations across NetSuite (the system every other system needs to talk to), Procore (project finance and construction), HubSpot (CRM and marketing), Shopify and Magento (commerce), Zendesk (support), Salesforce, Stripe, QuickBooks, and the long tail of EDI, ecommerce, and operational systems that show up in real businesses. The architecture is the same regardless of which two — or five — systems are at the table.

  • Procore ↔ NetSuite for project finance and close
  • HubSpot ↔ NetSuite for CRM, opportunity, and customer sync
  • Shopify and Magento ↔ NetSuite for orders, inventory, and fulfillment
  • Zendesk ↔ NetSuite for support cases tied to account state
  • EDI ↔ NetSuite for partners that still ship X12 over AS2

Start with the work

Tell us which systems should be talking to each other.

We will scope the first event flow, ship a slice in five days, and leave you with a system you can extend yourself.