Make Kisi Sync
Membership-driven door access for WooCommerce — built because nothing else did it.
Plenty of businesses gate physical entry on a paid membership: makerspaces, gyms, climbing walls, studios, coworking floors. The logic is obvious — if you’re a paying member, the door should open; if you’ve lapsed, it shouldn’t. Making that actually happen is where it falls apart. Your memberships live in WooCommerce. Your doors are run by Kisi. And until now, nothing connected the two.
We went looking for an off-the-shelf bridge and there wasn’t one. The only paths available were stitching together a third-party automation service like Zapier — another subscription, another point of failure, another thing to babysit — or commissioning a brittle one-off script. Neither felt right for something as consequential as who can walk through your front door. So we built a real plugin.
What it does
Make Kisi Sync sits quietly between WooCommerce Memberships and Kisi access control and keeps the two in lockstep, automatically:
- When a membership becomes active, the member is granted door access in Kisi.
- When it’s cancelled, expired, or paused, that access is revoked.
No spreadsheets, no manual list-keeping, no “did we remember to turn off the keycard for the person who quit last month?” The storefront becomes the source of truth, and the door simply follows.
How we built it
This is where we get particular — because how a plugin is written determines whether you can trust it for years or have to babysit it for months.
It talks straight to Kisi. The plugin calls Kisi’s API directly from your own WordPress install. No middleware, no monthly automation fees, no third party sitting in the path between a paying customer and a locked door. Fewer moving parts, fewer failure points, lower cost.
It’s idempotent by design. It tracks the exact Kisi user and the specific access assignment it created, so the same event firing twice never produces duplicate users or orphaned access. Membership systems get noisy — renewals, status flips, edge cases — and this one stays correct through all of it.
It plays nice with what’s already there. If a member already exists in Kisi under the same email, the plugin reuses that account instead of cloning it, so your access roster stays clean.
It’s honest about what it’s doing. A built-in connection test confirms your setup before you rely on it, optional debug logging shows you exactly what synced and why, and you can target specific membership plans rather than blunt-syncing everything.
It’s open source. Released under GPL-2.0+ and published on GitHub — auditable, forkable, and free of lock-in. You can read every line that decides who gets through your door.
Why this is the kind of work we do
Connecting a website to the physical world — a checkout to a door lock — is exactly the sort of integration that tends to get quoted as “impossible” or “you’ll need three different SaaS subscriptions.” We don’t accept that. When the tool you need doesn’t exist, the answer isn’t a workaround; it’s a well-made piece of software that does one job reliably and gets out of the way.
We’ve built and maintained software across hundreds of WordPress projects, and we approach plugin development the same way every time: lean code, defensive logic, no bloat, and documentation a human can actually follow. Make Kisi Sync is a small example of a larger habit.
Make Kisi Sync is free and open source. View it on GitHub →
Need a system connected to another that was never designed to talk to it? That’s our favorite kind of problem. Let’s talk.