Pixeldev

Services/Integrations

Your systems should talk to each other. Properly.

APIs, webhooks and two-way sync between the tools you already pay for, with the logging, retries and error handling that a chain of Zaps doesn’t have.

Sync Activity log with an expanded Square VERSION_MISMATCH error, showing the raw error, a plain-English explanation and fix, and links to the product and Square object
Every sync logged, and when Square rejects something, the error explained in plain English with a retry. From Square Sync for Woo.

Sound familiar?

Orders here, invoices there, stock somewhere else

Three systems that each think they’re the source of truth, and a person reconciling them at the end of the week.

A Zapier chain that breaks at 2am

And nobody finds out until a customer asks where their order is.

Weekly CSV exports and imports by hand

It worked at 50 records a week. It doesn’t at 500.

A vendor API nobody wants to touch

Thin docs, odd rate limits, a sandbox that behaves differently to production. I’ve met a few.

What I build

Integrations that run as code you own, on your hosting or mine, with a log you can read when something looks off.

  • WooCommerce and Square syncProducts, inventory and orders kept in step in both directions. I wrote a plugin that does this for stores worldwide, so the edge cases are familiar.
  • Accounting: Xero and MYOBInvoices, payments and contacts created from the systems where the work actually happens, reconciled automatically.
  • CRM sync: HubSpot, Salesforce and customContacts, deals and activity flowing in from forms, email, your site and your billing system, without duplicates.
  • Payments: Stripe and SquareSubscriptions, invoicing, webhooks and the reconciliation that goes with them. I run my own products on Stripe billing.
  • Replacing no-code chains with codeWhen Zapier or Make has become load-bearing, I move it into a small service with proper error handling and a monthly bill that doesn’t scale with tasks.
  • Legacy bridges and migrationsGetting data out of the old system and into the new one, or keeping both alive while you move. Including the systems that only export CSVs.

How I approach it

1

Safe to rerun, always logged

Every sync can be run twice without creating duplicates, and every record carries a trail of where it came from and when.

2

Built for the failure case

APIs go down, webhooks go missing, rate limits bite. Queues, retries and alerts mean you hear about it before your customer does.

3

Done this at scale

SquareSync runs for WooCommerce stores around the world. I know Square’s API quirks, WordPress cron, and what happens when a webhook arrives twice.

Related work

All case studies

Questions I get asked

Can you work with a system you haven’t used before?

If it has an API, a database, or even a CSV export, yes. The first step is a short look at the docs so I can tell you what’s possible before you commit to anything.

Why not just use Zapier?

For a simple one-way push, do. For anything involving money, stock, two directions or more than a few hundred records a month, you want code you own, with logs you can read.

Where does it run, and what does it cost monthly?

On your hosting or mine. If it’s mine, a care plan covers the server, monitoring and keeping it working as the APIs on either side change.

Which two systems should be talking already?

Name them and I’ll tell you how I’d connect them, what it would cost, and what could go wrong.