Skip to content

ts notification ​

Post and manage the announcements users see in the Portal — a maintenance window, a policy change, a new app going live.

Usage ​

text
ts notifications [--csv] [--no-trunc]
ts notification <id>
ts notification new <title> --description=<text> [--type=banner|toast] (--everyone | --group=<group>...)
ts notification set <id> <property> <value> [--everyone | --group=<group>...]
ts notification set <id> (--everyone | --group=<group>...)
ts notification delete <id> [--force]

Description ​

Notifications are global — they belong to the server, not to a workspace, so nothing here takes a workspace argument. ts notifications lists them newest first, up to two hundred, with each one's ID, title, display type, the groups it is shown to, and its creation time. That ID, a GUID, is what the other actions take; only new takes a title.

Unlike apps, channels, and links, a notification is a handful of named fields rather than a configuration document, so it uses real flags. new takes the title as a positional argument, up to 128 characters, and the body through --description, which is required. --type chooses how it appears: banner (the default) pins it to the top of the page, toast shows it once and fades. Anything other than those two values is rejected.

Who Sees It ​

Every notification says who sees it, and new requires you to choose: --everyone, or --group once for each group that should see it. Name a group by its name or by its ID from ts groups; where two identity sources hold the name, put the source's login prefix and a backslash before it (CORP\Sales). A group that does not exist fails the whole command. Passing --everyone and --group together is refused.

The GROUPS column of ts notifications, and the Groups line of print, read (everyone) for a notification shown to everyone, and otherwise list its groups, a deleted one marked (deleted). A deleted group reaches no one, so a notification whose groups are all deleted is shown to no one, and (no one) marks one limited to groups that names none.

Changing a Notification ​

set changes one property at a time: title, description, or type; any other is refused. It changes who sees the notification only when you give it --everyone or --group, with or without a property, and then the list you give replaces the old one wholesale. ts notification set <id> --everyone shows a group-targeted notification to everyone again. After a property change, set reads the property back to confirm it took.

Notification icons are not part of this command. ts cannot upload or clear one, so a notification created here displays without an icon until someone adds it in the Administration site.

delete is a soft delete: the notification stops being served and stops appearing in the listing, but the row is retained and ts has no undo for it. It prompts first unless you pass --force, and where there is no terminal --force is required rather than assumed. Creating, changing, and deleting a notification are all recorded in the audit trail, so ts audit will show who posted what.

Options ​

FlagDescriptionDefault/ValuesNotes
--descriptionBody text of the notification.Any textRequired by new. On set, use set <id> description "<text>" instead.
--typeHow the notification is displayed.banner (default), toastnew only; on set, use set <id> type toast.
--everyoneShow it to everyone.new and set. Not with --group.
--groupA user group that should see it.Group name or ID; repeatablenew and set. On set, replaces the whole group list.
--force, -fDelete without confirming.Required when there is no terminal.
--csvTab-separated output, nothing truncated.ts notifications only.
--no-truncDo not truncate columns.ts notifications only.

Examples ​

bash
# What is currently posted?
ts notifications

# One notification in full, including its body text
ts notification 2f8c4e1a-6b3d-4f90-a7e2-5c1d9b0e3a64

# Announce a maintenance window to everyone
ts notification new "Maintenance Saturday 02:00-04:00 UTC" \
  --description="The server will be unavailable while storage is migrated." \
  --everyone

# Tell one group only, as a toast rather than a banner
ts notification new "New CAD build available" \
  --description="Acme CAD 2026.2 is published to the Design workspace." \
  --type=toast \
  --group="Design Team"

# Correct the wording after posting
ts notification set 2f8c4e1a-6b3d-4f90-a7e2-5c1d9b0e3a64 description "Maintenance is postponed to Sunday."

# Retarget: this replaces the group list, it does not add to it
ts notification set 2f8c4e1a-6b3d-4f90-a7e2-5c1d9b0e3a64 title "Maintenance Sunday 02:00-04:00 UTC" \
  --group="Design Team" --group="Engineering"

# Show it to everyone again
ts notification set 2f8c4e1a-6b3d-4f90-a7e2-5c1d9b0e3a64 --everyone

# Full titles and group lists, nothing truncated
ts notifications --csv

# Take it down once the window closes, unattended
ts notification delete 2f8c4e1a-6b3d-4f90-a7e2-5c1d9b0e3a64 --force

--group on set is a replace, not an append. Read the notification back with ts notification <id> after retargeting to confirm who will actually see it.

Output ​

print writes a short summary followed by the body text:

text
Title:   Maintenance Saturday 02:00-04:00 UTC
Type:    banner
Groups:  (everyone)
Created: 2026-07-29T23:26:48.1920000

The server will be unavailable while storage is migrated.

--format=json returns the same fields as structured data, with audience (everyone or onlyTheseGroups), each group as id, name, and deleted, and hasIcon.

Exit Codes ​

0 on success. -6 when the notification ID does not exist, and when a --group names no group. -5 when the account is not a Server Administrator. -1 when an ID or title is missing, when new is run without --description or without --everyone or --group, when both are given, when set names a property other than title, description, or type, when the title is longer than 128 characters, when --type is not recognized, when a group name is held by groups in two identity sources, or when you decline the delete prompt.

  • ts group — The user groups that --group targets.
  • ts audit — Who posted, changed, or removed a notification.
  • ts workspace — Workspace-scoped content, as opposed to these server-wide announcements.