Multi-zone scheduling without losing your mind.
Stores don’t have one screen — they have rails of them. We rebuilt GoVista’s scheduling engine around zones first, schedules second, and let an agent reconcile the two.
GoVista team
Digital signage CMS

Most digital-signage CMSes treat ‘screen’ as the unit of work. You build a playlist, you assign it to a screen. That model breaks the moment a store has more than one screen — and stores always have more than one screen. GoVista models zones first; screens are a child of zones; schedules attach to zones, not screens.
What a zone is
A zone is a named region of a store with a content policy: window, mannequin, fitting room, checkout, rail. Zones are the unit retailers actually think in — ‘play promo content in windows, lookbook on mannequins, queue-busting deals at checkout.’ Players (Tizen, WebOS, Android, Web, LED) are assigned to zones; the player picks up the zone’s active schedule.
Why zones beat screen-by-screen
- You can swap a player without re-planning content. The zone’s schedule keeps running.
- You can promote a 4-screen rail to a 6-screen rail by just adding two players to the same zone.
- You can write a campaign once, target three zones, and trust each zone to honour its own content policy.
The reconciler agent
Schedules across zones can conflict — a global campaign might collide with a store-local promo, or a stock-out might mean we shouldn’t run an out-of-stock SKU on a window screen. Reconciliation is an agent: it reads zone schedules, store stock, and campaign priorities, then writes the resolved schedule per zone. The CMS UI shows what the reconciler did, so ops can see exactly which campaign won and why.
// Reconciler is a tool the orchestrator calls per store.
const resolved = await reconciler.run({
zones: store.zones,
campaigns: campaigns.activeFor(store),
stock: store.stock(),
priorities: store.policies(),
});
await store.publish(resolved);Multi-tenant, multi-store
Holdings run multiple banners across multiple stores. Each store has its own zones; each banner has its own campaign library. The reconciler runs per store, never per banner. That’s the only way a store-local promo can win against a global campaign without surgery.
“Stores don’t have screens. They have zones with screens in them. Model the zone, and the screens take care of themselves.”