Data-driven digital signage replaces manual content updates with automated templates that pull information from live data sources — spreadsheets, calendars, REST APIs, IoT sensors, databases. The template defines how data looks. The data source defines what appears. SpinetiX handles this with 250+ widget-constructors and a zero-server architecture: the player fetches data directly, no middleware required.
When to Use This Guide
- KPI dashboards — production metrics, sales numbers, call center stats that change throughout the day
- Meeting room displays — auto-updating schedules from Google Calendar, Outlook, or Microsoft 365
- Menu boards — prices and items managed from a Google Sheet or POS system
- Safety displays — real-time sensor data, weather warnings, or emergency alerts from APIs
How Data-Driven Content Works
The Template + Data Model
Every data-driven display is built from two parts: a template (the visual design) and a data source (the information). The template is designed once in Elementi. It defines layout, colors, fonts, animations. The data source provides values that fill the template at runtime.
Change the data → the display updates. No designer needed. No re-publishing required. The player handles everything locally.
Step 1: Choose Your Data Source
| Source Type | Best For | Update Speed |
|---|---|---|
| Google Sheets | Menu boards, schedules, small datasets | 1–5 minutes |
| REST API (JSON/XML) | KPIs, weather, exchange rates, IoT | 5–30 seconds |
| iCal / CalDAV | Meeting rooms, events, bookings | 1–5 minutes |
| CSV / Excel file | Price lists, inventory, batch data | On file change |
| RSS / Atom | News, announcements, social feeds | 5–15 minutes |
| MQTT | IoT sensors, real-time alerts | Instant (push) |
Step 2: Design the Template
In Elementi, create zones for each data element. Use the Table widget for multi-row data (employee lists, schedules). Use the Gauge widget for KPIs. Use the Ticker for scrolling text. Each widget has a "Data" tab where you specify the source URL and refresh interval.
Step 3: Map Data to Visual Elements
Elementi's data mapping connects JSON fields, spreadsheet columns, or XML nodes to text, images, and numbers on screen. For a Google Sheet with columns "Item", "Price", "Image URL" — map each column to a widget property. The template auto-fills with live data.
Step 4: Test with Real Data
Preview in Elementi (F5) with live data connected. Verify that long text wraps correctly, numbers format properly, and images load. Push edge cases: what happens when a field is empty? When a price is ₹0? When 50 rows display on screen designed for 10?
Step 5: Publish and Forget
Publish to the player. From this point, content updates automatically. The player polls your data source at the configured interval. No human in the loop. Data changes → screen changes.
Key Parameters
| Parameter | Value | Why It Matters |
|---|---|---|
| Architecture | Zero-server (player-direct) | No middleware to maintain, no single point of failure |
| Widget Library | 250+ constructors | Pre-built connectors for common data formats |
| Refresh Interval | 5 sec – 24 hours | Configurable per widget for optimal bandwidth |
| Offline Fallback | Last-known-good data | No blank screens when data source is temporarily down |
| Authentication | API keys, OAuth, HUB proxy | Secure access to enterprise data sources |
| Data Formats | JSON, XML, CSV, iCal, RSS, MQTT | Covers 99% of enterprise integration scenarios |
Common Mistakes
- Over-polling the data source. Refreshing every 5 seconds when data changes hourly wastes bandwidth and may trigger API rate limits. Match refresh interval to actual data change frequency.
- Not handling empty data. If a Google Sheet row is deleted, what shows on screen? Design fallback states for empty or missing data — a "No data available" message is better than a broken layout.
- Exposing credentials on the player. Don't hardcode API keys in widget URLs. Use SpinetiX HUB as a secure proxy — it authenticates to data sources without exposing credentials on the player itself.
- Designing for perfect data. Real data has quirks: names longer than 30 characters, prices with 4 decimal places, images in portrait when you expected landscape. Test with ugly data, not just demo data.
- Using video where data-driven templates work. A video menu board requires re-rendering every time a price changes. A data-driven template updates the price in seconds from a spreadsheet. Templates scale. Videos don't.