--- title: "How Display Content Logic Fits Together – Airport CX" slug: "content-logic-displays-air" description: "How windows, templates, states, scripts and scenarios combine to decide what each screen shows." status: "new" updated: 2026-07-28T09:54:38Z published: 2026-07-28T10:32:42Z canonical: "docs.simpleway.cloud/content-logic-displays-air" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.simpleway.cloud/llms.txt > Use this file to discover all available pages before exploring further. # Content LOGIC of Display TEMPLATES > [!NOTE] > **Airport CX gives your displays a lot of decision-making power and automations. A screen can change what it shows based on:** > > - live flight data - *data-based,* > - the time of day - *time-based*, or > - an operator's command - *manual*. That system logic is spread across several tools, and each one owns a different job. *This tutorial explains how those tools fit together, then points you to the right tutorial for whatever you're trying to do.* ### **How the pieces fit together** The tools sit in layers. ![](https://cdn.document360.io/a3e67867-6316-451b-94ad-ec727ac9102a/Images/Documentation/image-1E4WZL29.png) **Data sources** are the foundation — the live data every screen reads on each refresh. This includes the flight feed (exposed through Trip /Flight Windows), any third-party integration (weather, baggage, etc.), and per-display configuration and metadata. **Scheduling & feeds** decide when content appears. - Flight-driven timing comes from [Trip / Flight Windows](/v1/docs/trip-windows-business-rules). - Time-of-day and calendar-driven media comes from the [Content Scheduler](/v1/docs/date-time-driven-playback-scheduler-air) and [Playlists](/v1/docs/create-playlists-air). The **content template** decides what the screen shows. A template holds several layouts/states, and small scripts choose between them and fine-tune individual elements. **Display states and overrides** sit on top and can pre-empt everything below — either automatically when the feed goes down or on command when a [Scenario is activated](/v1/docs/scenarios-activation-air). ### **The engine underneath** When a fixed set of options isn't enough, the logic is written in script. **Scripts** read live data through SwEL (Simpleway Expression Language), a small query language with type-aware helpers for things like date formatting, working across lists of records, and localization. [**State scripts and element scripts**](/v1/docs/content-logic) are plain JavaScript built on top of SwEL. You don't need to script to use most of the display module — but when you do, this is what's under the hood. ### **Pick your path** Now that you have the map, jump to the tool you need. Find the behavior you're configuring on the left, and go to the tutorial on the right. Every tutorial links back here, so you can always return and take a different path. | **What you want to control** | **Tutorial which explains the behaviour** | | --- | --- | | When a flight appears on / clears a gate screen | [Trip WINDOWS & Business RULES](/v1/docs/trip-windows-business-rules) | | Which layout the screen shows right now | [STATE and display SCRIPTS](/v1/docs/content-logic) | | Conditional formatting (e.g. cancelled in red) | [ELEMENTS and element scripts](/v1/docs/template-elements-and-element-scripts) | | How a single component reacts to data | [ELEMENTS and element scripts](/v1/docs/template-elements-and-element-scripts) | | Filtering and sorting the FIDS flight list | [Trip WINDOWS & Business RULES](/v1/docs/trip-windows-business-rules) | | Manual or API-triggered takeovers (e.g. emergencies) | [Scenarios introduction](/v1/docs/scenarios-introduction-air) | | Time-of-day media and marketing loops | [Date & Time driven playback - SCHEDULER](/v1/docs/date-time-driven-playback-scheduler-air) | | Switch to blank screen | [Display BLANK content](/v1/docs/add-blank-content-air) |