Live data on your screens: Data Sources

A data source keeps a value on your screens up to date without anyone editing a slide. Put your prices in a Google Sheet or a table, connect it once, and the price on every screen changes when you change the sheet. The same works for the weather, a calendar, a news feed or your own system.

This guide shows how to connect a source, test it, copy one of its values, and put that value on a slide. It also covers key columns (so a price stays on the right line after you sort the sheet), how often sources refresh, and what screens show when something goes wrong.

Before you start

Open Data Sources

Choose Data Sources in the sidebar, under Automate. The page is called Data Sources & Integrations. Each source you have connected gets a card. If you have none yet, the page shows the list of connectors straight away.

Connect a source

  1. Press Connect data at the top right.
  2. Pick where the data lives. Manual table and Weather need no account at all. Google Sheets is the usual choice for menus and price lists.
  3. Give it a Name. The Identifier Slug fills itself in from the name; it is the short word you will use on slides, shown under the box as "Used on slides as {{ds:slug.key}}". Keep it short, like specials or weather.
  4. Fill in the form for that kind of source (see below).
  5. Press Test & preview. You see whether it connected, the first rows, and every value it found under Variables — click to copy. Nothing is saved yet.
  6. Press Save & connect. The card appears and the first sync runs in the background.
The Connect data window with nine connectors as tiles: Google Sheets marked Most popular, REST API, Calendar, Weather marked No setup, Manual table marked No setup, CSV file, RSS / news feed, Square and Shopify. Each tile has one line about what it is for.
Connect data: pick where the data lives. You can connect as many sources as you need.

A Google Sheet

The form shows three steps to make the sheet readable, which you do once in Google Sheets: click Share, set General access to "Anyone with the link" as Viewer, and copy the link. Paste it into Sheet link. Open the tab you want before you copy the link and the link remembers it, or type the tab in Tab name (optional). Range (optional) reads only part of the sheet, for example A1:D50.

The Google Sheets form: Name and Identifier Slug at the top, a green box headed Make the sheet readable (once) with three numbered steps, then Sheet link, Tab name (optional), Range (optional), a closed section called Rows, key column and refresh, and the buttons Test and preview, Cancel and Save and connect.
The Google Sheets form. The three steps in the green box are the only setup in Google.
"Google returned a sign-in page"

That test result means the sheet is not shared publicly. Go back to Share in Google Sheets and choose "Anyone with the link". Anyone who has the link can read the sheet, so keep only what belongs on the screens in it.

A manual table

No account, nothing to break: you type the data into ScreenTinker itself. Type into the grid, or copy a block of cells from Excel or Google Sheets and paste it into any cell. Enter adds a row; + Row and + Column do the same, and the × removes one. A table holds up to 200 rows and 20 columns. It changes only when you edit it and press Save.

Editing the manual table Today's specials, slug specials. A grid with the columns Item and Price lists Latte 3.50, Flat white 3.80, Cinnamon bun 2.90, Soup of the day 5.50 and Toasted sandwich 6.20. Below it, + Row and + Column buttons, and Key column (recommended) is set to Item.
A typed table of today's specials, with Item as the key column.

The weather

Type a town into Location, or leave it empty and enter Latitude (optional) and Longitude (optional). Choose the Units (°C or °F), the Language for day names and the Sync Interval (every 15 minutes, 30 minutes or hour). It needs no account or key. You get the current temperature, condition and humidity, and a forecast for the coming days.

The weather form for Weather Portland after pressing Test and preview: Location Portland, Units Imperial, Language for day names English, Sync Interval Every 15 minutes. A green line says Weather found for Portland, and the variables list below shows location Portland, temperature 60, apparent_temperature 58 and humidity 67, with a search box for 66 variables.
Test & preview shows the real values before you save anything.

The other connectors

Find and copy a value

Every value a source has is a variable. Open Variables on the source's card to see them all, with what each one holds right now. Click a variable's name and it is copied as a tag, ready to paste: clicking row1_price on the specials source copies {{ds:specials.row1_price}}. When a source has more than 12 variables, a search box helps you find one.

The Data Sources and Integrations page with two cards. Today's specials, a Manual table with slug specials, is Live, shows 5 rows with the columns Item and Price, and its open Variables (29) list shows row_count 5, column_count 2, columns Item, Price, then row1_item Latte, row1_price 3.50, row2_item Flat white and so on. Weather Portland, slug weather, is Live and shows Portland, 60°F, Clear sky. Each card has Sync Now, Edit and Delete buttons.
Each card shows its status, its last sync and its variables. Click a variable to copy its tag.

Use a key column for tables

Rows are numbered by default: row3_price is the price on the third row. If someone sorts the sheet or adds a row at the top, row 3 becomes a different item and the screen shows the wrong price. A Key column (recommended) fixes that: each row is named after the value in that column instead. With Item as the key column, the latte's price is {{ds:specials.latte_price}} wherever the latte moves. When the table has only two columns, {{ds:specials.latte}} works too.

For a manual table, pick the key column under the grid. For a Google Sheet, a CSV file or a REST API, open Rows, key column & refresh, or press Test & preview and click a column's heading in First rows.

Number columns also get totals and averages, such as avg_price and max_price, which is handy for a sales or KPI board.

Put the value on a slide

  1. Open Slides in the sidebar and open a deck (or make one).
  2. Select a text box and paste the tag into its Text. Mix it with your own words, for example Latte · ${{ds:specials.latte}}. The editor shows the current value on the slide straight away.
  3. Press Publish. The deck becomes a playlist, which you put on a screen like any other.
The Slides editor with a deck called Specials board. The selected text box's Text field holds Latte · ${{ds:specials.latte}}, and the slide itself reads Latte · $3.50, Cinnamon bun · $2.90 and Soup of the day · $5.50 under the heading Today's specials, with 60°F and Clear sky in Portland on the right.
The tag in the text box, and the live value on the slide.

You publish once. After that, when the data changes, the screens playing that slide update on their own: no re-publishing.

Or pick the tag in the slide editor

Under a text box's Text, the ⚡ Insert Variable... list shows each source with the values it had at its last sync, the same ones as its Variables. Pick one to add its tag. A source that has never synced says "No data yet: sync this source first". A tag whose source or variable does not exist shows as empty text on the screen.

How often it updates, and when it fails

Deleting a source empties its tags

Slides find a source by its slug. If you press Delete, every tag that used it shows nothing until you fix the slides. If you change the Identifier Slug and slides or widgets use it, ScreenTinker asks first and then updates their tags to the new slug, and screens pick up the change. Cancel that question to keep the old slug. Rename the source's Name freely.

On a self-hosted server

Your server fetches the data, so it needs internet access for every connector except Manual table. It refuses addresses on your own network (such as 192.168.x.x or a calendar server in the office) with "The address is not allowed. It is on a private network." To allow them, the server's administrator sets OUTBOUND_ALLOW_HOSTS (a list of names or address ranges) or OUTBOUND_ALLOW_PRIVATE=1 (every private address; only for a server you alone use) and restarts it. If plugins are turned on (PLUGINS_ENABLED=1), connectors from installed plugins appear in Connect data marked Plugin.

FAQ

I changed the price in the sheet. When does the screen change?

At the next sync of that source, by default within 15 minutes for a sheet. Press Sync Now on its card to do it at once. You don't need to publish anything again.

Can a Viewer see my API keys or the sheet link?

No. Keys are never shown to anyone after you save them, and Viewers see the addresses with the private parts hidden. They can still see the values that are on the screens.

Do I need a Google account or an API key for the weather?

No. The weather comes from Open-Meteo and needs no account or key. A manual table needs nothing at all.

Try it on your own screens

Start a 14-day Pro trial on hosted ScreenTinker: up to 15 screens, every feature, no credit card.

Start your free trial

Or host it yourself, free and open source: self-hosting guide · GitHub