# Wallboard card

> Canonical HTML: https://screenrig.ai/docs/cards/wallboard/

A contact-centre wallboard readable from across the floor: calls waiting, longest wait, service level against target, agents by state, answered and abandoned.

Category: Operations. Tags: Queues and waits, Numbers and metrics, Alerts and status, Offices and workplaces.

## Previews

![Wallboard](/cards/wallboard/v1/screenshots/canvas-bloom.webp?sha=169cc645076e141e808cec00d5c12ae55ca0e934be72704b254a69db563c20f7)

Canvas

![Wallboard](/cards/wallboard/v1/screenshots/corner-bloom.webp?sha=babcc8f668cc4fa3f32c1362b5d81ebbc79b24d107f6b3d67eb8cc4ec7e9d93a)

Corner

![Wallboard](/cards/wallboard/v1/screenshots/chip-bloom.webp?sha=cc430a93a18f01e6f9ed4869cb4bafb96428407792adb0cd624b1d5b3a311b81)

Chip

## Views and forms

Views: canvas, corner, chip. Canvas forms: landscape, portrait, square, strip.

[Card views, themes and publishing](/docs/cards/). [Browse the gallery](/apps/#cards).

## Data and privacy

This card uses its configured properties and live card data.

## Properties

For theme, background, accent and position, see [Common properties](/docs/cards/#common-properties).

Set static properties in `params`. Bind `data` to a project card data key for live values; that document holds only dynamic properties. Without a data key, put the complete configuration in `params`. Nested rows describe the contents of their parent property.

### Static properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `title` | string | `"Contact centre"` | maxLength: `40` |  |
| `serviceLevelTarget` | number | `80` | minimum: `1`; maximum: `100` | Service level target, in percent. |
| `serviceLevelSeconds` | integer | `20` | minimum: `1`; maximum: `3600` | The answer time the target is measured against, in seconds. |
| `waitingWarn` | integer | `3` | minimum: `1`; maximum: `100000` | Calls waiting at which the tile turns amber. |
| `waitingAlert` | integer | `8` | minimum: `1`; maximum: `100000` | Calls waiting at which the tile turns red. |
| `longestWarnSeconds` | integer | `60` | minimum: `1`; maximum: `86400` | Longest wait at which the tile turns amber. |
| `longestAlertSeconds` | integer | `180` | minimum: `1`; maximum: `86400` | Longest wait at which the tile turns red. |
| `abandonWarnPercent` | number | `5` | minimum: `0`; maximum: `100` | Abandon rate at which the tile turns amber. |
| `abandonAlertPercent` | number | `10` | minimum: `0`; maximum: `100` | Abandon rate at which the tile turns red. |
| `staleMinutes` | integer | `5` | minimum: `1`; maximum: `1440` | Numbers older than this show Updated N min ago. |

### Dynamic properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `waiting` | integer, null | `null` | minimum: `0`; maximum: `10000000` | Calls waiting in the queue now. |
| `longestWaitSeconds` | integer, null | `null` | minimum: `0`; maximum: `10000000` | The longest wait in the queue now, in seconds. |
| `serviceLevel` | number, null | `null` | minimum: `0`; maximum: `100` | Service level so far, in percent. Left out, it is answeredInTarget over answered plus abandoned. |
| `answeredInTarget` | integer, null | `null` | minimum: `0`; maximum: `10000000` | Calls answered within the target time, today. |
| `answered` | integer, null | `null` | minimum: `0`; maximum: `10000000` | Calls answered today. |
| `abandoned` | integer, null | `null` | minimum: `0`; maximum: `10000000` | Calls abandoned today. |
| `agents` | object, null | `null` | additionalProperties: `false` | Agents by state. |
| `agents.available` | integer | `0` | minimum: `0`; maximum: `100000` | Agents ready for a call. |
| `agents.onCall` | integer | `0` | minimum: `0`; maximum: `100000` | Agents talking. |
| `agents.wrapUp` | integer | `0` | minimum: `0`; maximum: `100000` | Agents in after-call work. |
| `agents.away` | integer | `0` | minimum: `0`; maximum: `100000` | Agents on a break or otherwise away. |
| `updatedAt` | string | `""` | maxLength: `40` | ISO 8601 instant the numbers were taken; drives the Updated N min ago note. |

## Canvas example

Add this item to a playlist page’s `primitives`. [Publish the playlist and assign a screen](/docs/cards/#publish-a-card-canvas).

```json
{
  "id": "wallboard",
  "primitive": "card",
  "card": "wallboard",
  "major": 1,
  "params": {
    "theme": "neomustard"
  },
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "fill",
  "data": "wallboard-main"
}
```

## Write live data

Create this document before showing the card, then replace it to update the screen without republishing. Use the same project as the playlist. Supply your API authorization through the environment; see [API authentication](/docs/authentication/).

```console
curl --request PUT "https://api.screenrig.ai/api/card-data/wallboard-main" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data '{"document":{"waiting":null,"longestWaitSeconds":null,"serviceLevel":null,"answeredInTarget":null,"answered":null,"abandoned":null,"agents":null,"updatedAt":""}}'
```
