# Rich Replies: Tabellen, Karten und Schnellantworten im Chat

> Lass den Agenten neben seinem Text mit einer Tabelle zum Vergleichen, einer Reihe von Karten zur Auswahl oder Schnellantwort-Buttons für den nächsten Schritt antworten. Erfahre, wann er sie nutzt, welche Limits gelten, wie sie im Widget aussehen und wo sie sonst erscheinen.

Ist **Rich replies** an, kann der Agent im Chat unter seinem Text strukturierte Inhalte zeigen:

- eine **Tabelle**, um mehrere Dinge in denselben Punkten zu vergleichen, etwa Pläne, Produkte oder Öffnungszeiten;
- **Karten**, eine Reihe von Optionen zur Auswahl, jede mit einem Titel und optional einem Bild, einem Preis und Buttons;
- **Schnellantworten**, kurze Buttons für klare nächste Schritte. Tippt der Besucher auf einen, wird dessen Text als seine Nachricht gesendet.

Der Agent schreibt immer auch eine Textantwort. Rich Replies stehen darunter, wie [Produktkarten](/de/docs/connect-your-store) und [Buchungszeiten](/de/docs/booking).

## Ein- oder ausschalten

Öffne deinen Agenten, wähle den Tab **Appearance** und such den Schalter **Rich replies**, neben **Suggest follow-up questions** und **Show sources under replies**. Er ist bei jedem Agenten standardmäßig an. Klicke auf **Save changes**, um eine Änderung zu übernehmen.

Der **Playground** nutzt den Schalter so, wie er auf dem Bildschirm steht, du kannst es also vor dem Speichern ausprobieren.

Schaltest du ihn aus, gibt es keine neuen Rich Replies mehr. Antworten, die bereits eine gezeigt haben, behalten sie im Gespräch.

## Wann der Agent sie nutzt

Der Agent entscheidet bei jeder Antwort. Er ist angewiesen, Rich Replies nur zu nutzen, wenn sie helfen:

| Situation | Was er zeigt |
|---|---|
| Ein Vergleich mehrerer Dinge in denselben Punkten | Eine Tabelle |
| Mehrere Optionen, zwischen denen der Besucher wählen kann | Karten |
| Klare nächste Schritte, aus denen der Besucher auswählen würde | Schnellantworten |

Er ist angewiesen, sie nicht für eine einzelne Tatsache, ein Ja oder Nein, Smalltalk oder eine Antwort aus einem kurzen Absatz zu nutzen und sie nur mit Fakten aus deinem Wissen, dem Gespräch oder den Ergebnissen deiner [Aktionen](/de/docs/api-actions) zu füllen, nie mit erfundenen Produkten, Preisen, Links oder Bildern. Wie bei jeder KI-Antwort gilt: Prüfe wichtige Antworten im **Playground**, und steuere ihn mit deinen [Anweisungen](/de/docs/instructions), zum Beispiel „Zeig unsere Pläne als Tabelle, wenn jemand nach Preisen fragt.“

Eine Rich Reply ist Teil derselben Antwort, sie verbraucht also keine zusätzliche Nachricht, und das Einschalten ändert nicht, wie die Antwort gestreamt wird. Die Rich Reply erscheint, sobald der Text vollständig ist. Ein Besucher, der auf eine Schnellantwort oder den Antwort-Button einer Karte tippt, sendet eine Nachricht, die wie eine getippte zählt.

## Limits und Sicherheitsregeln

Eine Antwort zeigt höchstens eine Tabelle, eine Reihe von Karten und einen Satz Schnellantworten.

| Art | Limits |
|---|---|
| Tabelle | 1 bis 8 Spalten und 1 bis 20 Zeilen. Jede Zelle ist reiner Text mit bis zu 200 Zeichen, Spaltenüberschriften haben bis zu 60, eine optionale Beschriftung bis zu 100. Jede Zeile hat eine Zelle pro Spalte. |
| Karten | 1 bis 10 Karten. Jede hat einen Titel mit bis zu 80 Zeichen und optional einen Untertitel mit bis zu 200, ein Bild, einen als Text geschriebenen Preis mit bis zu 40 (etwa „CHF 49“ oder „ab 9 $/Monat“) und bis zu 2 Buttons. Ein Button öffnet entweder einen Link oder sendet eine Antwort mit bis zu 120 Zeichen als Nachricht des Besuchers. Button-Beschriftungen haben bis zu 40 Zeichen. |
| Schnellantworten | 1 bis 6 Buttons mit je bis zu 40 Zeichen. Wiederholungen werden einmal gezeigt. |

intoCHAT prüft jede Rich Reply, bevor sie gezeigt wird:

- Alles ist reiner Text. HTML wird abgelehnt, und Markdown-Zeichen wie `**` werden entfernt.
- Links und Bilder müssen vollständige `https://`-Adressen sein. Links mit `http://`, `javascript:` und `data:`, Adressen mit Benutzername oder Passwort und Adressen ohne Domain wie `localhost` werden abgelehnt.
- Schnellantworten und Antwort-Buttons dürfen keinen Link enthalten, weil ihr Text als Nachricht des Besuchers gesendet wird.

Eine Tabelle, eine Reihe von Karten oder ein Satz Schnellantworten, die gegen eine Regel verstoßen, werden gar nicht gezeigt, nie teilweise. Die Textantwort und jede andere gültige Rich Reply erscheinen trotzdem. Hat dein Agent auch [Aktionen](/de/docs/api-actions), [Chat-Formulare](/de/docs/chat-forms) oder andere Werkzeuge, erfährt er, was falsch war, und kann es in derselben Antwort korrigieren.

## So sieht es im Widget aus

- Rich Replies erscheinen unter der Nachricht des Agenten, an ihr ausgerichtet, im hellen oder dunklen Design deines Widgets. Link- und Antwort-Buttons auf Karten nutzen deine Farbe **Launcher bubble**.
- Eine Tabelle lässt sich auf einem schmalen Bildschirm seitlich scrollen. Mehrere Karten bilden eine Reihe, die seitlich scrollt, mit Pfeilen für Mausnutzer. Eine einzelne Karte wird breit angezeigt.
- Schnellantworten erscheinen nur unter der letzten Antwort und verschwinden, sobald der Besucher eine Nachricht sendet. Solange Schnellantworten angezeigt werden, erscheinen keine [Folgefragen](/de/docs/appearance#folgefragen), damit die beiden nicht konkurrieren.
- Kartenlinks öffnen sich in einem neuen Tab. Ist **Keep campaign tags on links** an (siehe [Aussehen](/de/docs/appearance)), tragen sie deine Kampagnen-Tags wie andere Links in Antworten.
- Alles funktioniert mit der Tastatur: Buttons und Links sind mit Tab erreichbar, und die Tabelle und die Reihe von Karten lassen sich fokussieren und mit den Pfeiltasten scrollen. Screenreader lesen die Beschriftung der Tabelle, die Anzahl der Karten und die Gruppe der Schnellantworten vor.

Die eigenen Beschriftungen des Widgets, etwa „Mehr“, „Zurück“, „Schnellantworten“ und der Hinweis, dass ein Link sich in einem neuen Tab öffnet, folgen der [Sprache des Widgets](/de/docs/appearance#sprache-des-widgets). Den Text innerhalb einer Rich Reply schreibt der Agent, in der Sprache seiner Antwort.

## Wo Rich Replies sonst erscheinen

| Ort | Was du siehst |
|---|---|
| Tab **Conversations** und der **Playground** | Die Rich Reply so, wie der Besucher sie gesehen hat. Im Tab **Conversations** senden ihre Buttons nichts. |
| [Live-Chat-Posteingang](/de/docs/live-chat), [Übergabe-E-Mail](/de/docs/handoff), [Helpdesk-Tickets](/de/docs/helpdesk-tickets) und der [CSV-Export](/de/docs/conversations-and-dashboard) | Eine Textversion: eine Tabelle als Zeilen von Zellen, getrennt durch `\|`, Karten als `• Title — subtitle — price` mit ihren Links, Schnellantworten als `[Yes] [No]`. |
| Gespräche über [Slack](/de/docs/slack-agent) und [E-Mail](/de/docs/email-agent) | Nicht angeboten: Der Agent schreibt dort reinen Text. |
| [REST-API](/de/docs/rest-api) und [MCP-Server](/de/docs/mcp-server) | Ein Feld `ui`, unten beschrieben. |

## In der API

[Nachricht senden](/de/docs/rest-api#nachricht-senden) (ohne Streaming) und [Gespräch abrufen](/de/docs/rest-api#gesprach-abrufen) fügen einer Antwort des Agenten, die eine Rich Reply gezeigt hat, ein Feld `ui` hinzu. Eine Antwort ohne Rich Reply hat kein Feld `ui`. Die MCP-Tools `chat_with_agent` und `get_conversation` liefern dasselbe. `content` und `reply` bleiben reiner Text ohne die Rich Reply.

```json
{
  "id": "MESSAGE_ID",
  "role": "assistant",
  "content": "Here are our two plans.",
  "createdAt": "2026-10-27T10:00:00.000Z",
  "authorName": null,
  "sources": [],
  "ui": [
    {
      "type": "table",
      "title": "Plans",
      "columns": ["Plan", "Price", "Seats"],
      "rows": [["Basic", "CHF 9", "1"], ["Pro", "CHF 29", "5"]]
    },
    {
      "type": "cards",
      "cards": [
        {
          "title": "Pro",
          "subtitle": "For growing teams",
          "image": "https://www.example.com/pro.png",
          "price": "CHF 29 / month",
          "buttons": [
            { "label": "See details", "url": "https://www.example.com/pricing" },
            { "label": "Start a trial", "reply": "I'd like to start a Pro trial" }
          ]
        }
      ]
    },
    { "type": "quick_replies", "replies": ["Compare features", "Talk to sales"] }
  ]
}
```

Jedes Element hat einen `type`: `table` (mit `columns`, `rows` und optional `title`), `cards` (jede Karte mit `title`, optional `subtitle`, `image` und `price` sowie `buttons` mit einem `label` und entweder einer `url` oder einer `reply`) oder `quick_replies` (mit `replies`). Optionale Felder werden weggelassen, wenn sie leer sind.

## Wie es weitergeht

- [Das Aussehen des Widgets anpassen](/de/docs/appearance)
- [Deinen Shop verbinden](/de/docs/connect-your-store) für Produktkarten aus Live-Suchen
- [Anweisungen schreiben](/de/docs/instructions), die dem Agenten sagen, wann er in einer Tabelle vergleichen soll
