Automation: let other systems control your screens

Sometimes the thing that should change your screens isn't a person at the dashboard. The fire panel goes off and every screen should say "Leave the building". The till starts happy hour and the bar screens should switch to the drinks menu. A Zap updates today's specials. The Automation page gives each of these a secret web address, called a hook. When the other system calls it, your screens react.

This guide covers the five kinds of hook, how to make one, the address that is shown only once, how to test a hook and read its calls, and the Zapier, Make and n8n section at the bottom of the page.

Before you start

The Automation page

Each hook is a card. It shows the hook's name and what kind it is, a one-line summary (which screens, which playlist, how long), the start of its address, and when it was last called. A red edge and a red note such as 1 screen switched mean the hook is changing screens right now.

The Automation page with three hooks. Fire panel, an Emergency alert for all screens that shows the alert card and ends after 60 minutes, last called 2 calls. Happy hour from the till, a Switch to a playlist hook with a red edge and the note 1 screen switched, showing Lunch menu on the group Front of house for 60 minutes. Specials from the till, an Update a table hook writing to Today's specials by key. Each card has Test, Calls, New address, Edit and Delete buttons. Below is the Zapier, Make and n8n section with the API address and a Who is listening table.
Three hooks for a café. The happy hour hook has switched one screen right now.

What a hook can do

When you make a hook, What it does offers five kinds. You can't change the kind later; make a new hook instead.

Make a hook

  1. Press New hook.
  2. Name: something you'll recognise in the list, such as "Fire panel".
  3. What it does: pick one of the five kinds. The form below changes to match.
  4. Fill in the kind's fields (see the fields for each kind).
  5. Show on: All screens in this workspace, Screens in these groups, These screens or Screens with a tag. Tick the groups or screens, or type the tag.
  6. Leave Enabled ticked and press Save.
The New hook form with an empty Name box, What it does set to Emergency alert, and its fields: Action set to Raise an alert, Headline {{body.headline}}, Message {{body.message}}, What to do (optional) empty, Alert id {{body.id}}, Clear when this field says cleared, ended or cancelled {{body.status}}, and Severity.
A new Emergency alert hook. The fields start filled with sensible templates.

Text from the request

Fields like Headline can hold plain text, or a field from the request in double curly brackets. If the fire panel sends {"headline": "Fire alarm", "message": "Please leave now"}, then {{body.headline}} becomes "Fire alarm". A field that isn't in the request becomes empty text. You can mix both: Alarm in {{body.zone}}.

Copy the address: it is shown only once

When you save a new hook, a box called Web address for (and the hook's name) opens with the full address. Press Copy, paste it into the system that will call it, then press Done.

You can't see it again

ScreenTinker keeps only a fingerprint of the address, so the card shows just its start, ending in "…". If you lose it, press New address on the card. That makes a new address and the old one stops working straight away, so update the other system too.

Treat the address like a key: anyone who has it can call the hook. A wrong or old address gets the same "Not found" answer as a hook that doesn't exist. Each hook takes at most 30 calls a minute.

The fields for each kind

Emergency alert

Mass notification (Alertus, InformaCast, CAP)

Point your mass notification system at the address. The headline, message, alert id and "cleared" status are found by themselves. If your sender uses other field names, open Field mapping (optional) and fill in Alert id field, Headline field, Message field or Clear / status field. Severity when the sender does not say and End automatically after (minutes) (120 unless you change it) fill the gaps. CAP test and exercise messages never take over a screen.

Fire a trigger

Pick the Trigger and the Action, Fire or Clear. Over the internet this reaches the Raspberry Pi, Windows and Mac apps, screens that play in a web browser, and BrightSign, LG (webOS), Fire TV Vega and iPhone or iPad players. It doesn't reach Android TV, Fire TV (Android), Samsung (Tizen) or Roku screens; those that support triggers can still get them from a sender on their own network.

Update a table

Switch to a playlist

The Edit Happy hour from the till form: Action Switch screens, Playlist Lunch menu, For how many minutes 60, Or take the minutes from a field (optional) empty, Show on Screens in these groups with Front of house ticked, a folded Request signing (optional) section, Enabled ticked, and Also accept GET requests (query parameters) unticked, with Cancel and Save.
A playlist switch for one group, for an hour each time the till calls it.
Ending a switch early

While a hook is switching screens, its card has an End now button: press it to send the screens back. A sender can do the same: make a second hook with the Action set to Switch screens back. When it is called, every screen it covers goes back to what it normally plays, whichever hook switched it.

Signing and GET requests

Test a hook and read its calls

Test runs the hook with a sample request and shows the result in a message. It is not a rehearsal: an emergency test puts a "Test alert" on your screens, a playlist test switches them, and a trigger test fires the trigger. The page asks first for those kinds. A test of an Update a table hook is the exception: it changes nothing and only says what it would have done to the table.

Test runs for real

A test alert or a test switch stays on your screens until it ends by itself. To take it down sooner, press End now on the hook's card. Unticking Enabled and pressing Save also ends everything the hook is showing.

Calls opens the hook's recent calls: When, Status (200 means it worked) and Result, such as "raised 1 on 1 screen(s)" or "switched 1 screen(s) for 60 minute(s)". Tests are marked "(test)". A refused call says why, for example a missing signature or too many calls.

The Fire panel hook with its Calls list open: two calls with status 200, one with the result raised 1 on 1 screen(s) and a later one with cleared 1 on 1 screen(s).
A fire drill: one call raised the alert, the next one cleared it.

Delete removes a hook. Anything it is showing on screens ends, and its address stops working.

Zapier, Make and n8n

At the bottom of the page, Zapier, Make and n8n gives the API address to give Zapier:. These tools connect with an API token, which you make in Settings under API Tokens: Read & write for events and tables, Full (incl. device commands) for actions that take over screens. For a single action, a Make or n8n scenario can also just call a hook's address, which needs no token.

Who is listening lists every outside service that has asked to be told about events here, such as Screen went offline or Playlist published, with how many messages were delivered, failed or are waiting. Press Remove to stop sending one. The services sign up from their side; there is nothing to add on this page.

Zapier needs the ScreenTinker app

The ScreenTinker integration for Zapier is a private Zapier app that you add to your own Zapier account; it is not in Zapier's public app list. Make, n8n and your own scripts can call the API address or a hook directly.

On a self-hosted server

The address a hook gets starts with your server's public address if one is set (APP_URL), or else with the address you opened the dashboard at. If you opened it as localhost or a local network address, that is what the hook address says, and outside services such as Zapier can't reach it. A fire panel on the same network can. Event messages to Zapier, Make or n8n only go to public https addresses. Hooks aren't available in a workspace that is copied to other servers over the mesh.

FAQ

I lost a hook's address. Can I see it again?

No. Press New address on the card, copy the new one, and give it to the other system. The old address stops working at once.

The fire panel sent the same alarm three times. Will screens show three alerts?

No. Calls with the same Alert id are one alert. Without an id, an exact repeat of the same request also counts as one.

What happens when a hook's time runs out?

An alert ends after its End automatically after (minutes), and a playlist switch after its minutes. The screens go back to what they would normally show, including any schedule.

Can an editor make hooks?

No. A hook can take over every screen in the workspace, so only an admin of the workspace can make, change, test or delete one.

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