Referenz

Elemente

Text, Button, Schalter, Eingabefeld, Diagramm und Tabelle in Nachrichten: Felder, Werte und Größen.

Als Markdown öffnen

Diese sechs Elemente hängst du an eine Nachricht, im Feld elements von POST /v1/push. Bis zu 12 pro Nachricht.

Übersicht

typeElementWofürWertBedienbar
textTextÜberschrift, Absatz oder Hinweisder Textnein
buttonButtoneine Aktion auslösen–ja, bei jedem Tipp
toggleSchalteretwas an- oder ausschaltentrue oder falseja, bei jedem Umschalten
inputEingabefeldText an dein Tool schickender Textja, beim Abschicken
chartDiagrammZahlen als Balken oder Liniedie Punktenein
tableTabelleDaten in Zeilen und Spaltendie Zeilennein

Wert ist das, was dein Tool beim Senden mitgibt. Bei Schalter und Eingabefeld ändert er sich, wenn du sie in der App bedienst; Samy speichert ihn. Dein Tool kann Werte in einer gesendeten Nachricht nicht mehr ändern. Bedienbar heißt: Jede Bedienung geht als Ereignis ui mit der message_id an deinen Webhook.

Gemeinsame Felder

FeldTypPflichtBedeutung
typeeiner der sechs TypenjaArt des Elements.
id1 bis 40 Zeichen: Buchstaben, Ziffern, _, -jaDeine Kennung, pro Nachricht eindeutig. Kommt im Webhook als element_id zurück.
widthganze Zahl 1 bis 6neinBreite in Spalten. Standard 6, die ganze Breite.
heightZahl in PunktenneinMindesthöhe. Nicht bei text.

Wie Breite und Höhe zusammenspielen, steht unter Layout.

Text

Stand deiner Server

Alles läuft

Alle Dienste sind erreichbar.

  • api: 120 ms
  • shop: 210 ms

Zuletzt geprüft um 9:41

style: title, body und caption
FeldTypPflichtBedeutung
textText, 1 bis 2.000 ZeichenjaDer Inhalt.
styletitle, body oder captionneinÜberschrift, Absatz (Standard) oder kleiner grauer Hinweis.
  • Wert: der Text.
  • Größe: mindestens 2 Spalten breit. Die Höhe richtet sich nach dem Inhalt, height gibt es nicht.
  • Bei body gilt dieselbe Formatierung wie im Text der Nachricht.
JSON
{ "type": "text", "id": "stand", "text": "Zuletzt geprüft um 9:41", "style": "caption" }

Button

shop-api antwortet nicht

Seit 9:38 Uhr, Status 502.

style: primary und secondary. Mit height wird der Button höher.
FeldTypPflichtBedeutung
labelText, 1 bis 40 ZeichenjaBeschriftung.
styleprimary oder secondaryneinDunkel (Standard) oder hell.
  • Wert: keiner. Ein Tipp schickt das Ereignis ui mit value: null.
  • Größe: mindestens 2 Spalten breit, Höhe 44 bis 240.
  • Ein Button lässt sich beliebig oft tippen. Das unterscheidet ihn vom Knopf im Feld buttons.
JSON
{ "type": "button", "id": "restart", "label": "Neu starten", "width": 3 }

Schalter

Wartung heute 22 Uhr

Der Shop ist dann etwa 10 Minuten offline.

Wartungsseite zeigen

Kunden vorher informieren

Schickt um 21 Uhr eine Mail an alle mit offener Bestellung

Mit und ohne description
FeldTypPflichtBedeutung
labelText, 1 bis 60 ZeichenjaBeschriftung.
descriptionText, bis 160 ZeichenneinErklärung unter der Beschriftung.
valuetrue oder falseneinStartwert. Standard false.
  • Wert: true oder false. Jedes Umschalten schickt das Ereignis ui mit dem neuen Wert.
  • Größe: mindestens 3 Spalten breit, Höhe 64 bis 240.
JSON
{ "type": "toggle", "id": "wartung", "label": "Wartungsseite zeigen", "value": true }

Eingabefeld

Neue Anfrage von Lena K.

Wo bleibt meine Bestellung #1042?

Antwort an Lena

Gesendet
Abschicken zeigt „Gesendet“
FeldTypPflichtBedeutung
labelText, 1 bis 60 ZeichenjaBeschriftung.
placeholderText, bis 80 ZeichenneinGrauer Beispieltext im leeren Feld.
buttonText, 1 bis 30 ZeichenneinBeschriftung des Absende-Knopfs. Standard „Senden“.
valueText, bis 500 ZeichenneinStartwert. Standard leer.
  • Wert: der Text, bis 500 Zeichen. Das Ereignis ui kommt erst beim Abschicken, nicht bei jedem Buchstaben.
  • Größe: mindestens 3 Spalten breit, Höhe 160 bis 400.
JSON
{ "type": "input", "id": "antwort", "label": "Antwort an Lena", "placeholder": "z. B. Geht heute raus", "button": "Antworten" }

Diagramm

Wochenbericht

Umsatz und Antwortzeit der letzten sieben Tage.

Umsatz

640 €
Mo
Di
Mi
Do
Fr
Sa
So

Antwortzeit

128 ms
MoDiMiDoFrSaSo
Balken (Standard) und Linie. Der hervorgehobene Punkt und sein Wert stehen oben rechts.
FeldTypPflichtBedeutung
labelText, 1 bis 60 ZeichenjaTitel der Karte.
chartbar oder lineneinBalken (Standard) oder Linie.
unitText, bis 8 ZeichenneinEinheit hinter dem Wert oben rechts.
pointsListe, bis 31 PunkteneinJe Punkt {"label": "Mo", "value": 3.5}. label bis 12 Zeichen, value eine Zahl. Standard leer.
highlightganze Zahl ab 0neinWelcher Punkt hervorgehoben ist, gezählt ab 0. Standard: der letzte.
  • Wert: die Punkte.
  • Größe: mindestens 3 Spalten breit, Höhe 120 bis 480.
  • Bei vielen Punkten zeigt die App nur jede zweite oder dritte Beschriftung.
JSON
{
  "type": "chart", "id": "umsatz", "label": "Umsatz", "unit": "€",
  "points": [{ "label": "Mo", "value": 860 }, { "label": "Di", "value": 1204 }]
}

Tabelle

3 neue Bestellungen

Seit 8 Uhr.

Bestellungen

Nr.Kunde€
1047Jonas M.89,9
1048Aylin S.34,5
1049Tim R.129
Zahlen stehen rechtsbündig
FeldTypPflichtBedeutung
columnsListe, 1 bis 6 TextejaSpaltenköpfe, je bis 30 Zeichen.
rowsListe, bis 50 ZeilenneinJede Zeile ist eine Liste von Zellen: Text (bis 80 Zeichen) oder Zahl. Höchstens so viele Zellen wie Spalten. Standard leer.
labelText, bis 60 ZeichenneinTitel der Karte.
  • Wert: die Zeilen.
  • Größe: mindestens 3 Spalten breit, Höhe 80 bis 800.
  • Eine leere Tabelle zeigt „Noch keine Einträge“. Breite Tabellen lassen sich seitlich schieben.
JSON
{
  "type": "table", "id": "bestellungen", "label": "Bestellungen",
  "columns": ["Nr.", "Kunde", "€"],
  "rows": [["1047", "Jonas M.", 89.9], ["1048", "Aylin S.", 34.5]]
}

Unbekannte Typen

Einen type, den es nicht gibt, lehnt Samy mit 400 invalid_body ab. Typen für TypeScript zum Kopieren stehen unter Fertiger Code.