# Workplace posts card

> Canonical HTML: https://screenrig.ai/docs/cards/workplace-posts/

The company's channels on a screen: one post at a time with its picture or attachment, the author, channel and source, reactions and replies, beside the latest posts, rotating on the wall clock. Slack, Teams, Viva Engage and the intranet read the same way.

Category: Messages. Tags: News and announcements, Social and audience, Offices and workplaces.

## Previews

![Workplace posts](/cards/workplace-posts/v1/screenshots/canvas-bloom.webp?sha=f87729d03020ded70861d8ee75858a7bb6fca40eddf4df32f444d1e287b02d30)

Canvas

![Workplace posts](/cards/workplace-posts/v1/screenshots/corner-bloom.webp?sha=04659bc7cad08a91a631ad559e24a66af21a3a30f5e38e8a5c810cf05a75fe9d)

Corner

![Workplace posts](/cards/workplace-posts/v1/screenshots/chip-bloom.webp?sha=be91cd90054b17c5950884a9db11ce71c37efdf45b3bb219eb950f6291852e60)

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 | `"From the team"` | maxLength: `30` |  |
| `rotateSec` | integer | `15` | minimum: `3`; maximum: `120` | Seconds each post is featured. |

### Dynamic properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `posts` | array | `[]` | maxItems: `50` | Posts from the company's channels, in any order; pinned posts lead, then the newest by `at`. The card features one at a time, rotating on the wall clock. |
| `posts[].id` | string | `""` | maxLength: `40` | Keys the post, so one already shown does not animate again. |
| `posts[].author` | string | `""` | maxLength: `60` |  |
| `posts[].authorPhoto` | string | `""` | maxLength: `120` | A media reference to the author's picture; empty shows their initials. |
| `posts[].role` | string | `""` | maxLength: `50` | The author's team or title. |
| `posts[].channel` | string | `""` | maxLength: `40` | The channel or space, such as #announcements. |
| `posts[].source` | string | `""` | maxLength: `20` | Where it was posted: slack, teams, viva or intranet. |
| `posts[].text` | string |  | minLength: `1`; maxLength: `400`; Required |  |
| `posts[].image` | string | `""` | maxLength: `120` | A media reference to a picture attached to the post. |
| `posts[].reactions` | integer | `0` | minimum: `0`; maximum: `99999` |  |
| `posts[].replies` | integer | `0` | minimum: `0`; maximum: `99999` |  |
| `posts[].pinned` | boolean | `false` |  | A pinned post stays ahead of newer ones. |
| `posts[].at` | string | `""` | maxLength: `40` | When it was posted, an ISO 8601 instant. |

## 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": "workplace-posts",
  "primitive": "card",
  "card": "workplace-posts",
  "major": 1,
  "params": {
    "theme": "neomustard"
  },
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "fill",
  "data": "workplace-posts-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/workplace-posts-main" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data '{"document":{"posts":[]}}'
```
