---
title: "Beskedkort: det kan en botbesked i mssgs vise"
description: "Design botbeskeder til mssgs: titler, markdown, felter, billeder, statuspiller med diff-statistik, loader, tænkning og farver. Med en live kortbygger."
canonical: https://docs.mss.gs/da/bots
language: da
---

# Design beskedkort

Alt, hvad en bot poster, fra en webhook, et kommandosvar eller en opdatering fra en knap, er et kort. Et godt kort siger med ét blik, hvad der skete: en farvet kant, en titel, en status og detaljerne nedenunder.

## Det kan du

- **Vis en status** En farvet pille som Åben, Merget eller Bestået, med tilføjede og fjernede linjer.

- **Vis detaljerne** Rækker med etiket og værdi, som medlemmerne kan kopiere med ét tryk.

- **Skriv i markdown** Fed skrift, inline-kode, kodeblokke, citater og afkrydsningsfelter.

- **Vis, at du arbejder** En spinner, mens din bot tænker, og bagefter dens ræsonnement bag en knap.

I appen

#### Pull request #212 oprettet

Hurtigere søgning i kanallisten

#### Build #1847 bestået

#### api.acme.com er nede

Fire kort, som medlemmerne ser dem. Hvert af dem er et par linjer JSON.

- [Opbygning](#anatomy)

- [Alle felter](#fields)

- [Status og diff-statistik](#status)

- [Loader og tænkning](#ai)

- [Systembeskeder](#system)

- [Farver](#colors)

- [Byg dit eget](#try)

## Et korts opbygning

Kortets dele, oppefra og ned. Udelad det, du ikke har brug for: et kort med kun en titel er fint.

#### Pull request #212 oprettet

Hurtigere søgning i kanallisten

- **Header** "Besked fra" og et navn: webhookens navn, eller dit fællesskabs navn ved et kommandosvar. Et svar kan tilføje et badge , som repositoriet.

- **Titel og status** Feltet title , der bliver et link, når du sætter title_url , med status -pillen ved siden af.

- **Undertitel** En anden linje i fed skrift, sub_title .

- **Beskrivelse** Brødteksten, i markdown.

- **Felter** Rækker med etiket og værdi, med en kopiknap.

- **Bund** Tidspunktet, og tilføjede og fjernede linjer, hvis du sender dem.

```json
{
  "message_container": {
    "type": "embed_message",
    "badge": "acme/web",
    "color": "purple",
    "title": "Pull request #212 opened",
    "title_url": "https://github.com/acme/web/pull/212",
    "status": { "label": "Open", "color": "green", "icon": "pull_request" },
    "sub_title": "Faster search in the channel list",
    "description": "Search now runs **per keystroke** with a 120 ms debounce.",
    "fields": [
      { "field": "Author", "value": "maya" },
      { "field": "Reviewers", "value": "dani, sam" }
    ],
    "additions": 86,
    "deletions": 12,
    "files_changed": 3
  }
}
```

## Alle felter

De her hører til i message_container . Et kort skal have en beskrivelse eller en loader. Felter markeret "kommandosvar" fjernes, når du poster gennem en webhook.

| Felt | Type | Hvad det gør |
| --- | --- | --- |
| type | string | embed_message (standard) eller system_message . |
| badge | string | En lille chip efter navnet i headeren, som acme/web . Kommandosvar |
| avatar_url | string | Et billede oven på kortets ikon. |
| color | string | Kantens farve. Se farver nedenfor. |
| title | string | Første linje, i fed skrift. |
| title_url | string | Gør titlen til et link. |
| sub_title | string | En anden linje i fed skrift under titlen. |
| description | string | Brødteksten, i markdown. |
| fields | array | [{ "field": "…", "value": "…" }] : rækker med etiket og værdi. |
| image_url , image_base64 | string | Et billede på kortet. |
| images | array | [{ "image_url": "…" }] : et galleri med flere billeder. |
| status | object eller string | En farvet pille ved siden af titlen. Se nedenfor. Kommandosvar |
| additions , deletions , files_changed | number | Diff-statistik i bunden. Kommandosvar |
| loader , loader_text , loader_sub_text | boolean, string | En spinner i stedet for brødteksten. |
| thinking | string | Ræsonnement bag en **Vis tænkning**-knap. Kommandosvar |

## Status og diff-statistik

En statuspille fortæller historien, før nogen læser teksten. Den sidder ved siden af titlen, eller i bunden, når der ikke er nogen titel; diff-statistikken vises ved siden af tidspunktet. Begge virker i kommandosvar, og den indbyggede GitHub-integration bruger dem. En webhook fjerner dem.

#### Pull request #212 merget

#### Build fejlede på main

#### maya pushede til main

```json
{
  "message_container": {
    "color": "red",
    "title": "Build failed on main",
    "status": { "label": "Failing", "color": "red" },
    "description": "`search.test.js`: 2 of 212 tests failed."
  }
}
```

| Felt | Type | Hvad det gør |
| --- | --- | --- |
| status | object eller string | En ren string er etiketten: "status": "Open" . |
| status.label | string | Teksten i pillen. Uden den er der ingen pille. |
| status.color | string | green , purple , red , orange , yellow , blue eller gray . |
| status.icon | string | Et valgfrit ikon fra listen nedenfor. |
| additions | number | Tilføjede linjer, vist som grøn +86 . |
| deletions | number | Fjernede linjer, vist som rød -12 . |
| files_changed | number | Berørte filer, vist som 3 files . |

### Ikoner

| Værdi | Ikon | Typisk brug |
| --- | --- | --- |
| pull_request | git-pull-request | En pull request er oprettet |
| pull_request_closed | git-pull-request-closed | Lukket uden merge |
| merge , merged | git-merge | Merget |
| commit | git-commit | Et pushet commit |
| issue | circle-dot | Et issue er oprettet |
| issue_closed | circle-check | Et issue er lukket |
| check | circle-check | Tests bestået, et job lykkedes |

### En mapping, der virker til GitHub

Den indbyggede GitHub-integration bruger disse; kopiér dem til dine egne værktøjer.

| Hændelse | Etiket | Farve | Ikon |
| --- | --- | --- | --- |
| Pull request oprettet | Open | green | pull_request |
| Kladde | Draft | gray | pull_request |
| Merget | Merged | purple | merged |
| Lukket uden merge | Closed | red | pull_request_closed |
| Issue oprettet | Open | green | issue |
| Issue lukket | Closed | purple | issue_closed |
| Commit pushet | Commit | gray | commit |
| Tests bestået | Passing | green | check |
| Tests fejlet | Failing | red | intet |

## Loader og tænkning

Til alt, der tager et øjeblik, som et AI-svar eller et langt job, poster du først et kort med en spinner og erstatter det så med resultatet. Loaderen virker fra webhooks og kommandosvar. I et kommandosvar kan du også lægge modellens ræsonnement i thinking : medlemmerne ser en **Vis tænkning**-knap i stedet for en mur af tekst.

Først: loaderen

maya: hvornår er standup?

Så: svaret, med ræsonnementet foldet sammen

```json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "loader": true,
    "loader_text": "Thinking…",
    "loader_sub_text": "Reading the last 50 messages"
  }
}
```

```json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "sub_title": "maya: when is the standup?",
    "description": "Standup is at **09:30**, in #daily.",
    "thinking": "Checked the pinned messages and the recurring event in #daily…"
  }
}
```

| Felt | Type | Hvad det gør |
| --- | --- | --- |
| loader | boolean | true viser spinneren i stedet for brødteksten. |
| loader_text | string | Linjen ved siden af spinneren, som "Tænker…". |
| loader_sub_text | string | En mindre linje under den. |
| thinking | string | Sammenfoldet ræsonnement under beskrivelsen, i markdown. |

For at skifte loaderen ud med svaret opdaterer du beskeden med et nyt kort uden loader . Hvordan står under [liveopdateringer](https://docs.mss.gs/da/live-updates).

## Lange beskrivelser

En beskrivelse kan være op til 50.000 bytes. Efter de første 1.000 ser medlemmerne starten og en **Vis mere**-knap, der henter resten, så en lang rapport ikke oversvømmer kanalen.

## Systembeskeder

Sæt "type": "system_message" for en meddelelse i stedet for et botopslag: vedligeholdelsesvinduer, ændrede regler, alt, der taler på vegne af selve fællesskabet. Den tager de samme felter og knapper.

```json
{
  "message_container": {
    "type": "system_message",
    "color": "orange",
    "title": "Maintenance tonight",
    "description": "The build servers are down from 22:00 to 23:00."
  }
}
```

## Farver

Kantens farve er det hurtigste signal på et kort. Brug den samme farve til den samme slags nyhed, hver gang.

| Farve | Brug den til |
| --- | --- |
| green | Succes: bestået, deployet, færdig |
| red | Fejl: fejlet, nede, afvist |
| orange | En advarsel, der skal kigges på |
| yellow | Venter på nogen: godkendelser, spørgsmål |
| blue | Information, standarden |
| purple | Kodehændelser, eller noget særligt |

## Byg dit embed

Rediger felterne eller JSON-payloaden. De holdes synkroniseret. Se beskeden blive vist præcis som i en kanal. Det her er den rigtige webhook-body; kopiér den, når den ser rigtig ud.

## Byg videre
