Data-driven content
Introduction

In the realm of digital signage, "data-driven content" refers to the practice of creating and automatically displaying information on screens that is dynamically influenced by external data sources. This approach moves beyond static or manually scheduled playlists, transforming digital displays into intelligent and responsive communication tools that deliver timely, personalized, and highly relevant messages to the target audience.
At its core, data-driven content for digital signage leverages real-time information and pre-defined rules to trigger specific content. This can range from simple integrations, like showing a sunny-day promotion when the weather forecast is clear, to more complex scenarios that pull from multiple data streams. The goal is to provide viewers with content that is not only engaging but also contextually aware and immediately useful.
Key characteristics of data-driven content in digital signage:
- Automation: Content changes are triggered automatically by data feeds, reducing the need for constant manual updates and ensuring information is always current.
- Relevance and Personalization: By tapping into various data sources, content can be tailored to the specific location, time of day, audience demographics, or even real-time events.
- Dynamic Nature: The content is not fixed but fluid, capable of changing in response to fluctuating data points. This creates a more engaging and less repetitive viewing experience.
- Integration with APIs and External Data Sources: Data-driven signage relies on Application Programming Interfaces (APIs) to connect with a wide array of data providers.
Examples of Data-Driven Content in Action:
- Displaying progress towards sales goals in a corporate office or showcasing popular products in a retail store.
- Showing real-time bus or train arrivals and departures.
- A restaurant's digital menu board automatically highlights soup on a cold day and salads when the temperature rises.
- In a manufacturing facility, digital screens display real-time production metrics, safety warnings, and progress against daily targets.
- A university's digital signage network shows different event schedules and announcements depending on the specific building and time of day.
- An airport's wayfinding screens can dynamically update directions based on gate changes or security line wait times.
- Retail stores can display customer reviews for a product when a shopper picks it up from the shelf, triggered by a sensor.
- Using camera-based technology to estimate the age and gender of viewers and display targeted advertisements.
By harnessing the power of data, digital signage evolves from a simple one-way communication channel to a powerful tool for delivering intelligent, adaptive, and impactful content that captures attention and drives desired behaviors.
Data source
The players can retrieve data from a variety of local or remote data sources, like:
Business Analytics | Business Analytics & Data Visualization Platforms, such as Power BI, enable organizations to connect to various data sources, model and analyze that data, and then visualize it through interactive reports and dashboards. |
---|---|
Enterprise Social Network | Viva Engage, previously known as Yammer, is an enterprise social networking platform developed by Microsoft, designed to foster communication, community, and connection across an organization. |
Social networking service | Direct access to Twitter, Facebook, and Instagram social networks was once available on the SpinetiX platform, but these services have been removed due to changes in the providers' policies. A social media aggregator service should be used instead. |
RSS feeds | RSS ("Rich Site Summary" or "Really Simple Syndication") feeds are commonly used to share frequently updated information: news headlines, blog entries, audio, video, etc., and can be easily found on the Internet. RSS feeds enable publishers to syndicate data automatically. |
Plain-text files | Because of their simplicity, plain text files are commonly used for the storage of information, like service/product descriptions, details of a procedure/process, notifications, rules, warnings, etc. Many software tools allow writing and modifying text files, like Notepad, WordPad, Microsoft Word, Google Docs, OpenOffice Writer, LibreOffice Writer etc. |
Media files | Images and videos can be stored in media folders within the project, on an internal web server, a third-party provider such as Microsoft OneDrive, Google Drive, or Yahoo Flickr. |
Digital calendars | Calendars are commonly used to store one-time or repetitive events, like meetings, room bookings, classes, etc. Most calendar tools, like Google Calendar, Apple Calendar (formerly iCal), IBM Lotus Notes, Yahoo! Calendar, etc., can export the data as iCalendar file (.ics). See more details about how to get data from calendar applications. |
Spreadsheet files | Spreadsheet files are commonly used to store data in tabular form (i.e., data cells arranged into rows and columns), like sport scores, employee birthdays, production results, price lists, poll results, restaurant menus, etc. Many software tools allow writing and modifying spreadsheet files like: Microsoft Excel, Google Sheets, OpenOffice Calc, LibreOffice Calc, Numbers (spreadsheet), etc. |
Finance data | Market data provided by Alpha Vantage and foreign exchange rates provided by the Alpha Vantage or the European Central Bank. |
Weather forcasting | The weather information can be retrieved from various weather channels, such as AccuWeather, Open Weather Map, World Weather Online, etc. |
Web APIs | Other data formats, like JSON and XML, are also available for advanced users; in fact, any text-based format can be used as a data source, including web services and HTML, and be processed through custom JavaScript parsers. |
Secure data access
Security is a fundamental element to consider when giving access to your data, and we've created our data-driven widgets with that in mind. To ensure secure access and permission control, without exposing any user credentials, Cockpit must authorize any request for third-party data. For that, you need to do the following:
- Create a Cockpit account, if you don't have one.
- Register your Elementi license into your Cockpit account.
- Add your players into your Cockpit account.
- Connect your third-party data provider account to your Cockpit account.
- You are being redirected to the provider’s website, where you authenticate yourself, and then you confirm which permissions you give to the SpinetiX app.
- Once you authorize the SpinetiX app to access your data on your behalf, you are redirected back to Cockpit.
- All set - you can now use the data-driven widgets with your data in a secured manner.

- Your credentials are never saved on our servers, nor on the players - in fact, your credentials are not even shared with Cockpit.
- At any time, you can disconnect any third-party data provider account from the "Channels" page and thus prevent all players from accessing your data. Or you can remove a particular player from your Cockpit account, and that player will no longer have access to your private data.
- This is part of IT security best practices and is designed to protect privacy.
Data-driven widgets

The data-driven widgets included in Elementi widgets library have been designed to ease the creation of data-driven content from common types of data feeds (e.g., RSS, Text, Spreadsheets, Calendars, etc.). They can be used to automatically display data extracted from local or external data sources.
The player can integrate dynamic/static data feeds and present the desired information with a certain style on the screen. This can be resumed in three steps:
- The player retrieves the raw data from the data source.
- The player processes the raw data in order to retain only the meaningful data.
- The player displays the final data on the screen using the predefined content layout.
Data processing
The information retrieved from the data source is parsed and arranged in a table-like format, with columns and rows, using the built-in data parsers. If needed, the resulting data set can be limited to a certain number of rows of data.
Elementi X users can also use advanced parsers (XML, JSON) and add further formatting rules on the columns returned by the main parser, so that only the meaningful rows of data can be displayed on the screen:
- Each data field (column) can be further parsed using the parsers listed above, plus Date/Time and Query String parsers. See Data parsers.
- Each data field (column) can be filtered using Numeric, Date, and String filters. See Data filters.
- The resulting data set can be sorted by one of the data fields (columns).
getURL()
function along with low-level parsing functions.Data mapping
The mapping between the data retrieved from the data source and the layers composing the layout of the widget is done using data placeholders - a special notation having, in its simplest form, a double-pair of square brackets around the name of the field from where the data is taken - for instance [[title]], [[description]]
etc.
See the full article on Data placeholders.
Sample projects
- Data feed projects - a set of Elementi sample projects demonstrating the usage of data feeds from various sources.
- Display an RSS text ticker tutorial.
- Display a JSON data feed tutorial.
Data caching
The raw data retrieved from an external data source through data-driven widgets is cached locally (in localStorage) up to 24 hours, to protect from cases when the network is down or the player reboots.
- Any of the data-driven widgets included in Elementi can be configured to automatically refresh the cached data after a certain amount of time.
- The raw data is cached per widget - the same data source URI can be used in different widgets, in case the data processing is done differently per widget.
- The player's built-in HTTP caching mechanism for external resources is not employed by default because, with data feeds, it is important to get the latest version of the data, not some potentially outdated copy. If needed, that can also be activated - see this tutorial for more details.
Troubleshooting
URI encoding
- URIs must contain only valid URI characters (as defined by RFC 3986). Other characters must be escaped. For example, the URI "
http://www.acme.corp/rss/monday|01041^^3F
" should be correctly written as "http://www.acme.corp/rss/monday%7C01041%5E%5E3F
". - Note that Elementi data feed dialog does the URI encoding automatically.
Text source encoding
- Ensure that your text file is encoded using UTF-8. Otherwise, the output may be garbled or missing characters.
- When using Notepad, the encoding can be set when the file is saved from the "Save as" window, "Encoding:" drop-down box (next to the "Save" button).
MIME types
- In Elementi, the MIME type of a file is determined by the extension. If the image ('enclosure') content of your feed contains a link to an ASX or PHP file, or another file that generates the image on the fly, then Elementi will not be able to auto-determine the MIME type. Open the layer properties and select the correct MIME type from the drop-down.
Data feed not displayed on Elementi
- Elementi can open data sources that require authentication, only if the correct credentials have been added within the "Network Credentials" dialog, which can be opened from "Menu" ▶ "Settings". The same credentials must be added to the player in Control Center under System → Saved Passwords.
Data feed not displayed on player
When the data feed is displayed on Elementi but not on the player, you should do the following:
- Check the path used for the data source:
- Check that the player has full access to the Internet (for Proxy and Gateway settings, see Network Settings page).
- Also see the generic remarks when using Web servers.