Announcing 'sync with Zonal' - what it means and how it works
We're pleased to announce it's now easy and free to sync Zonal products (and more) with Sticky.
Destructing the payments and hospitality mafia
According to Zonal, 16,000 hospitality businesses trust them with their hospitality stack. They provide EPOS, inventory management, reservations, reporting and tools for consumer engagement. They also serve big names like Pizza Express and "Spoons".
We have no doubt that Zonal serves hospitality customers' needs today well. After all, there's no pricing on the website so it must be good.
However, tomorrow's customers will be looking for transparent pricing and free, open APIs that make it easy to extend systems and get them to do exactly what they want. For example, Sticky is 100% API driven with no charge for API access. Our customers use our API to automate many parts of their businesses, from programmatically creating virtual stickies to dynamic stock control. It's great. And our pricing couldn't be more transparent.
Building Sticky with our customers rather than for them has helped us understand that their needs go far beyond what pure hospitality plays can offer. Our customers today already have complex needs — not just a need for omnichannel sales but the need to solve wider, deeper business challenges — challenges that go beyond hospitality and into logistics, health and safety, games, experiences and more.
This is a trend that's set to continue, and vertical companies like Zonal simply won't be able to solve the majority of a business' future problems. Rather than customers having to pay a disparate set of companies for an unlinked and incohesive outcome, our goal is to make Sticky the single place a business of any size comes to solve problems in physical spaces... with stickers.
Sync not integration
We think about talking to other systems like a sync rather than an integration. Nearly all integrations make it difficult to move away from the original system because the newly integrated system becomes a dependency. In other words, if we integrated with Zonal we'd make it more difficult to migrate away, not less.
A sync on the other hand fully replicates the data from Zonal in Sticky (a copy), making both Zonal and Sticky the "single version of the truth".
Crucially, Sticky will work without relying on Zonal working in the future.
In time you can move your product management to Sticky by retraining staff, serving orders from Sticky instead, and eventually paying for Sticky alone.
How we did it
Zonal exposes an API called "Aztec" that allows their customers to query Zonal data from their websites. One good use case is putting every venue's menu online for consumers to browse before they show up. It also proved useful for syncing with Sticky:
- No authentication - because Aztec is called from the frontend (websites, apps), there's no authentication to work around
- No rate limiting or "unusual behaviour" detection - many APIs prevent scraping by limiting the number of requests a single client can make at once
- Built on GraphQL ("a query language for your API") - Aztec's open GraphQL endpoints make it easy to query all Zonal data any way we liked, including internal EPOS product names and age restrictions
We first built a "proof of concept" using the Aztec API for a well known hospitality chain in the UK.
All of the product's internal names are clearly visible to the public:
It takes less than 4 seconds to sync every product + category per venue:
No stress moving to Sticky's "operator view" as all products are already there! It will soon trigger orders in Zonal as if the order were placed directly through an "order at table" app. See "What's next?". Why not run our operator view and Zonal's interface alongside each other to see which is easiest to use?
Every venue of a well known hospitality chain becomes available as a Sticky dashboard in just a couple of minutes:
We then battle tested the code with other well known hospitality chains, wrote a suite of automated tests then migrated it to our CRON service. What's a CRON service you ask... it's a service that allows us to run "jobs" (such as this Zonal sync) as often as we like automatically, without running them by hand.
So, want to sync Zonal to Sticky every minute? No problem, let's chat; it's free.
Next we'll build the flow to Zonal — the logic that places an order in Zonal via a webhook from our API. We already store Zonal product ID numbers in Sticky — we had a dedicated "external ID" field already — so this will be trivial.
Watch this space!