# API Sequence Diagrams in Confluence with Mermaid (Copy-Paste)

September 24, 2026 ·

<!-- -->

5 min read

[NGPilot](https://ngpilot.com)

The integration doc says "the client calls the API, the API validates and responds" — four words, zero contracts, and the onboarding engineer asks "with what headers, in what order, and what if auth fails?" The code has the truth; the wiki has a paragraph. An API that can't be read as a transcript is an API nobody can safely operate.

**Quick answer:** document API flows in Confluence as Mermaid — `sequenceDiagram` for request/response order, `packet-beta` for wire-format frames, ZenUML for branch-heavy async flows — rendered by [Mermaid Plus for Confluence](https://marketplace.atlassian.com/apps/1236814/mermaid-plus-diagrams-for-confluence/). Each diagram type answers a different reader: what order, what's on the wire, what branches. This post gives you three copy-paste examples.

## Why an API doc is a transcript, not a paragraph[​](#why-an-api-doc-is-a-transcript-not-a-paragraph "Direct link to Why an API doc is a transcript, not a paragraph")

Three readers need three views of the same integration, and Mermaid gives each its own shape:

* **The order reader** needs a `sequenceDiagram` — who calls whom, in what order, with which payloads. The alt/else branches carry the failure behavior.
* **The wire reader** needs a `packet` diagram — the actual byte layout of a frame, field widths and all. Good for protocols, TLS records, coarse protocol headers.
* **The logic reader** needs ZenUML — the interaction as statement blocks, so branch-heavy async flows read like pseudocode.

The point is the *shape matches the question*, and each shape is text the review can edit next to the code change that invalidates it.

## Copy-paste 1: the request trace as a sequence[​](#copy-paste-1-the-request-trace-as-a-sequence "Direct link to Copy-paste 1: the request trace as a sequence")

An order placement across client → gateway → service → database, with the failure branch drawn (the runbook version):

```
sequenceDiagram

  participant C as Client

  participant G as Gateway

  participant S as Service

  participant DB as Database

  C->>G: POST /orders

  G->>G: auth + TLS check

  G->>S: forward with idempotency key

  alt validated

    S->>DB: INSERT order

    DB-->>S: 201 persisted

    S-->>C: 201 with order id

  else rejected

    S-->>C: 422 with errors

  end
```

![Rendered Mermaid diagram](/assets/images/sequencediagram-f41ff61ce4cf5e778d1b97701ab7c2de.svg)

Read it as a transcript: the client's POST reaches the gateway, the gateway authenticates, the service validates and the transaction is either committed (201) or rejected (422). The alt/else block is the runbook's "what happens on a bad payload" — callers trust a diagram that documents the failure too.

## Copy-paste 2: the wire frame as a packet diagram[​](#copy-paste-2-the-wire-frame-as-a-packet-diagram "Direct link to Copy-paste 2: the wire frame as a packet diagram")

When the doc must show the *byte layout* — a protocol header, a TLS record, a coarse frame — the packet diagram puts field names over field widths, like a memory map of the on-wire format:

```
packet-beta

  title TCP segment

  0-15: "Source port"

  16-31: "Destination port"

  32-63: "Sequence number"

  64-95: "Acknowledgement"

  96-127: "Flags"

  128-158: "Window"

  159-190: "Checksum + Urgent"
```

![TCP segment](data:image/svg+xml;base64,PHN2ZyBpZD0ibXktc3ZnIiB3aWR0aD0iMTAwJSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDEwMjYgMzI5IiBzdHlsZT0ibWF4LXdpZHRoOiAxMDI2cHg7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyIgcm9sZT0iZ3JhcGhpY3MtZG9jdW1lbnQgZG9jdW1lbnQiIGFyaWEtcm9sZWRlc2NyaXB0aW9uPSJwYWNrZXQiPjxzdHlsZT4jbXktc3Zne2ZvbnQtZmFtaWx5OiJ0cmVidWNoZXQgbXMiLHZlcmRhbmEsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmaWxsOiMzMzM7fUBrZXlmcmFtZXMgZWRnZS1hbmltYXRpb24tZnJhbWV7ZnJvbXtzdHJva2UtZGFzaG9mZnNldDowO319QGtleWZyYW1lcyBkYXNoe3Rve3N0cm9rZS1kYXNob2Zmc2V0OjA7fX0jbXktc3ZnIC5lZGdlLWFuaW1hdGlvbi1zbG93e3N0cm9rZS1kYXNoYXJyYXk6OSw1IWltcG9ydGFudDtzdHJva2UtZGFzaG9mZnNldDo5MDA7YW5pbWF0aW9uOmRhc2ggNTBzIGxpbmVhciBpbmZpbml0ZTtzdHJva2UtbGluZWNhcDpyb3VuZDt9I215LXN2ZyAuZWRnZS1hbmltYXRpb24tZmFzdHtzdHJva2UtZGFzaGFycmF5OjksNSFpbXBvcnRhbnQ7c3Ryb2tlLWRhc2hvZmZzZXQ6OTAwO2FuaW1hdGlvbjpkYXNoIDIwcyBsaW5lYXIgaW5maW5pdGU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7fSNteS1zdmcgLmVycm9yLWljb257ZmlsbDojNTUyMjIyO30jbXktc3ZnIC5lcnJvci10ZXh0e2ZpbGw6IzU1MjIyMjtzdHJva2U6IzU1MjIyMjt9I215LXN2ZyAuZWRnZS10aGlja25lc3Mtbm9ybWFse3N0cm9rZS13aWR0aDoxcHg7fSNteS1zdmcgLmVkZ2UtdGhpY2tuZXNzLXRoaWNre3N0cm9rZS13aWR0aDozLjVweDt9I215LXN2ZyAuZWRnZS1wYXR0ZXJuLXNvbGlke3N0cm9rZS1kYXNoYXJyYXk6MDt9I215LXN2ZyAuZWRnZS10aGlja25lc3MtaW52aXNpYmxle3N0cm9rZS13aWR0aDowO2ZpbGw6bm9uZTt9I215LXN2ZyAuZWRnZS1wYXR0ZXJuLWRhc2hlZHtzdHJva2UtZGFzaGFycmF5OjM7fSNteS1zdmcgLmVkZ2UtcGF0dGVybi1kb3R0ZWR7c3Ryb2tlLWRhc2hhcnJheToyO30jbXktc3ZnIC5tYXJrZXJ7ZmlsbDojMzMzMzMzO3N0cm9rZTojMzMzMzMzO30jbXktc3ZnIC5tYXJrZXIuY3Jvc3N7c3Ryb2tlOiMzMzMzMzM7fSNteS1zdmcgc3Zne2ZvbnQtZmFtaWx5OiJ0cmVidWNoZXQgbXMiLHZlcmRhbmEsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDt9I215LXN2ZyBwe21hcmdpbjowO30jbXktc3ZnIC5wYWNrZXRCeXRle2ZvbnQtc2l6ZToxMHB4O30jbXktc3ZnIC5wYWNrZXRCeXRlLnN0YXJ0e2ZpbGw6YmxhY2s7fSNteS1zdmcgLnBhY2tldEJ5dGUuZW5ke2ZpbGw6YmxhY2s7fSNteS1zdmcgLnBhY2tldExhYmVse2ZpbGw6YmxhY2s7Zm9udC1zaXplOjEycHg7fSNteS1zdmcgLnBhY2tldFRpdGxle2ZpbGw6YmxhY2s7Zm9udC1zaXplOjE0cHg7fSNteS1zdmcgLnBhY2tldEJsb2Nre3N0cm9rZTpibGFjaztzdHJva2Utd2lkdGg6MTtmaWxsOiNlZmVmZWY7fSNteS1zdmcgLm5vZGUgLm5lby1ub2Rle3N0cm9rZTojOTM3MERCO30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgcmVjdCwjbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLmNsdXN0ZXIgcmVjdCwjbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgcG9seWdvbntzdHJva2U6IzkzNzBEQjtmaWx0ZXI6ZHJvcC1zaGFkb3coMXB4IDJweCAycHggcmdiYSgxODUsIDE4NSwgMTg1LCAxKSk7fSNteS1zdmcgW2RhdGEtbG9vaz0ibmVvIl0uc3dpbWxhbmUuY2x1c3RlciByZWN0e2ZpbHRlcjpub25lO30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgcGF0aHtzdHJva2U6IzkzNzBEQjtzdHJva2Utd2lkdGg6MXB4O30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgLm91dGVyLXBhdGh7ZmlsdGVyOmRyb3Atc2hhZG93KDFweCAycHggMnB4IHJnYmEoMTg1LCAxODUsIDE4NSwgMSkpO30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgLm5lby1saW5lIHBhdGh7c3Ryb2tlOiM5MzcwREI7ZmlsdGVyOm5vbmU7fSNteS1zdmcgW2RhdGEtbG9vaz0ibmVvIl0ubm9kZSBjaXJjbGV7c3Ryb2tlOiM5MzcwREI7ZmlsdGVyOmRyb3Atc2hhZG93KDFweCAycHggMnB4IHJnYmEoMTg1LCAxODUsIDE4NSwgMSkpO30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLm5vZGUgY2lyY2xlIC5zdGF0ZS1zdGFydHtmaWxsOiMwMDAwMDA7fSNteS1zdmcgW2RhdGEtbG9vaz0ibmVvIl0uaWNvbi1zaGFwZSAuaWNvbntmaWxsOiM5MzcwREI7ZmlsdGVyOmRyb3Atc2hhZG93KDFweCAycHggMnB4IHJnYmEoMTg1LCAxODUsIDE4NSwgMSkpO30jbXktc3ZnIFtkYXRhLWxvb2s9Im5lbyJdLmljb24tc2hhcGUgLmljb24tbmVvIHBhdGh7c3Ryb2tlOiM5MzcwREI7ZmlsdGVyOmRyb3Atc2hhZG93KDFweCAycHggMnB4IHJnYmEoMTg1LCAxODUsIDE4NSwgMSkpO30jbXktc3ZnIDpyb290ey0tbWVybWFpZC1mb250LWZhbWlseToidHJlYnVjaGV0IG1zIix2ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7fTwvc3R5bGU+PGcvPjxnPjxyZWN0IHg9IjEiIHk9IjE1IiB3aWR0aD0iNTA3IiBoZWlnaHQ9IjMyIiBjbGFzcz0icGFja2V0QmxvY2siLz48dGV4dCB4PSIyNTQuNSIgeT0iMzEiIGNsYXNzPSJwYWNrZXRMYWJlbCIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSI+U291cmNlIHBvcnQ8L3RleHQ+PHRleHQgeD0iMSIgeT0iMTMiIGNsYXNzPSJwYWNrZXRCeXRlIHN0YXJ0IiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9InN0YXJ0Ij4wPC90ZXh0Pjx0ZXh0IHg9IjUwOCIgeT0iMTMiIGNsYXNzPSJwYWNrZXRCeXRlIGVuZCIgZG9taW5hbnQtYmFzZWxpbmU9ImF1dG8iIHRleHQtYW5jaG9yPSJlbmQiPjE1PC90ZXh0PjxyZWN0IHg9IjUxMyIgeT0iMTUiIHdpZHRoPSI1MDciIGhlaWdodD0iMzIiIGNsYXNzPSJwYWNrZXRCbG9jayIvPjx0ZXh0IHg9Ijc2Ni41IiB5PSIzMSIgY2xhc3M9InBhY2tldExhYmVsIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5EZXN0aW5hdGlvbiBwb3J0PC90ZXh0Pjx0ZXh0IHg9IjUxMyIgeT0iMTMiIGNsYXNzPSJwYWNrZXRCeXRlIHN0YXJ0IiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9InN0YXJ0Ij4xNjwvdGV4dD48dGV4dCB4PSIxMDIwIiB5PSIxMyIgY2xhc3M9InBhY2tldEJ5dGUgZW5kIiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9ImVuZCI+MzE8L3RleHQ+PC9nPjxnPjxyZWN0IHg9IjEiIHk9IjYyIiB3aWR0aD0iMTAxOSIgaGVpZ2h0PSIzMiIgY2xhc3M9InBhY2tldEJsb2NrIi8+PHRleHQgeD0iNTEwLjUiIHk9Ijc4IiBjbGFzcz0icGFja2V0TGFiZWwiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiPlNlcXVlbmNlIG51bWJlcjwvdGV4dD48dGV4dCB4PSIxIiB5PSI2MCIgY2xhc3M9InBhY2tldEJ5dGUgc3RhcnQiIGRvbWluYW50LWJhc2VsaW5lPSJhdXRvIiB0ZXh0LWFuY2hvcj0ic3RhcnQiPjMyPC90ZXh0Pjx0ZXh0IHg9IjEwMjAiIHk9IjYwIiBjbGFzcz0icGFja2V0Qnl0ZSBlbmQiIGRvbWluYW50LWJhc2VsaW5lPSJhdXRvIiB0ZXh0LWFuY2hvcj0iZW5kIj42MzwvdGV4dD48L2c+PGc+PHJlY3QgeD0iMSIgeT0iMTA5IiB3aWR0aD0iMTAxOSIgaGVpZ2h0PSIzMiIgY2xhc3M9InBhY2tldEJsb2NrIi8+PHRleHQgeD0iNTEwLjUiIHk9IjEyNSIgY2xhc3M9InBhY2tldExhYmVsIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5BY2tub3dsZWRnZW1lbnQ8L3RleHQ+PHRleHQgeD0iMSIgeT0iMTA3IiBjbGFzcz0icGFja2V0Qnl0ZSBzdGFydCIgZG9taW5hbnQtYmFzZWxpbmU9ImF1dG8iIHRleHQtYW5jaG9yPSJzdGFydCI+NjQ8L3RleHQ+PHRleHQgeD0iMTAyMCIgeT0iMTA3IiBjbGFzcz0icGFja2V0Qnl0ZSBlbmQiIGRvbWluYW50LWJhc2VsaW5lPSJhdXRvIiB0ZXh0LWFuY2hvcj0iZW5kIj45NTwvdGV4dD48L2c+PGc+PHJlY3QgeD0iMSIgeT0iMTU2IiB3aWR0aD0iMTAxOSIgaGVpZ2h0PSIzMiIgY2xhc3M9InBhY2tldEJsb2NrIi8+PHRleHQgeD0iNTEwLjUiIHk9IjE3MiIgY2xhc3M9InBhY2tldExhYmVsIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5GbGFnczwvdGV4dD48dGV4dCB4PSIxIiB5PSIxNTQiIGNsYXNzPSJwYWNrZXRCeXRlIHN0YXJ0IiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9InN0YXJ0Ij45NjwvdGV4dD48dGV4dCB4PSIxMDIwIiB5PSIxNTQiIGNsYXNzPSJwYWNrZXRCeXRlIGVuZCIgZG9taW5hbnQtYmFzZWxpbmU9ImF1dG8iIHRleHQtYW5jaG9yPSJlbmQiPjEyNzwvdGV4dD48L2c+PGc+PHJlY3QgeD0iMSIgeT0iMjAzIiB3aWR0aD0iOTg3IiBoZWlnaHQ9IjMyIiBjbGFzcz0icGFja2V0QmxvY2siLz48dGV4dCB4PSI0OTQuNSIgeT0iMjE5IiBjbGFzcz0icGFja2V0TGFiZWwiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiPldpbmRvdzwvdGV4dD48dGV4dCB4PSIxIiB5PSIyMDEiIGNsYXNzPSJwYWNrZXRCeXRlIHN0YXJ0IiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9InN0YXJ0Ij4xMjg8L3RleHQ+PHRleHQgeD0iOTg4IiB5PSIyMDEiIGNsYXNzPSJwYWNrZXRCeXRlIGVuZCIgZG9taW5hbnQtYmFzZWxpbmU9ImF1dG8iIHRleHQtYW5jaG9yPSJlbmQiPjE1ODwvdGV4dD48cmVjdCB4PSI5OTMiIHk9IjIwMyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjMyIiBjbGFzcz0icGFja2V0QmxvY2siLz48dGV4dCB4PSIxMDA2LjUiIHk9IjIxOSIgY2xhc3M9InBhY2tldExhYmVsIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5DaGVja3N1bSArIFVyZ2VudDwvdGV4dD48dGV4dCB4PSIxMDA2LjUiIHk9IjIwMSIgY2xhc3M9InBhY2tldEJ5dGUgc3RhcnQiIGRvbWluYW50LWJhc2VsaW5lPSJhdXRvIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4xNTk8L3RleHQ+PC9nPjxnPjxyZWN0IHg9IjEiIHk9IjI1MCIgd2lkdGg9Ijk4NyIgaGVpZ2h0PSIzMiIgY2xhc3M9InBhY2tldEJsb2NrIi8+PHRleHQgeD0iNDk0LjUiIHk9IjI2NiIgY2xhc3M9InBhY2tldExhYmVsIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5DaGVja3N1bSArIFVyZ2VudDwvdGV4dD48dGV4dCB4PSIxIiB5PSIyNDgiIGNsYXNzPSJwYWNrZXRCeXRlIHN0YXJ0IiBkb21pbmFudC1iYXNlbGluZT0iYXV0byIgdGV4dC1hbmNob3I9InN0YXJ0Ij4xNjA8L3RleHQ+PHRleHQgeD0iOTg4IiB5PSIyNDgiIGNsYXNzPSJwYWNrZXRCeXRlIGVuZCIgZG9taW5hbnQtYmFzZWxpbmU9ImF1dG8iIHRleHQtYW5jaG9yPSJlbmQiPjE5MDwvdGV4dD48L2c+PHRleHQgeD0iNTEzIiB5PSIzMDUuNSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgY2xhc3M9InBhY2tldFRpdGxlIj5UQ1Agc2VnbWVudDwvdGV4dD48L3N2Zz4=)

Each field is named and sized; the reader sees the header layout without opening a packet decoder. For a custom protocol or a reverse-proxy header contract, this is the diagram that ends "where is the checksum" — forever.

## Copy-paste 3: branch-heavy flow as ZenUML[​](#copy-paste-3-branch-heavy-flow-as-zenuml "Direct link to Copy-paste 3: branch-heavy flow as ZenUML")

ZenUML writes interactions as statement blocks — when the flow's *branching* is the story (auth, retries, timeouts), the blocks read like the pseudocode of the behavior:

```
zenuml

  title Login flow

  Actor User

  Participant API

  Database Creds

  User->API: login(email, pass)

  API->Creds: lookup hash

  alt creds match

    Creds-->API: hash verified

    API-->User: access token

  else creds miss

    Creds-->API: no such account

    API-->User: 401 invalid

  end
```

![Login flow](/assets/images/login-flow-53a2d58c52b51d8cc4343c313eec283a.svg)

Like the sequence alt, the branches are explicit — but written as blocks that diff well and read down a page. Team rule of thumb: sequence for ordering, packet for wire, ZenUML for "the interaction is basically a decision tree." All three coexist on the API runbook page.

## Choosing the API doc shape[​](#choosing-the-api-doc-shape "Direct link to Choosing the API doc shape")

| The question                               | Diagram       | When to use                         |
| ------------------------------------------ | ------------- | ----------------------------------- |
| In what order does the interaction happen? | **Sequence**  | Request traces, multi-service calls |
| What is on the wire, byte by byte?         | **Packet**    | Protocol headers, custom frames     |
| How do the branches behave?                | **ZenUML**    | Auth, retries, async decision trees |
| Where should work wait vs flow?            | **Flowchart** | Long-running work, queues           |

The API runbook's neighbors are on the same wiki: the **data shape** exchanged by the calls as an [ER schema](/blog/mermaid-er-diagram-database-schema-confluence.md) and the **deployment** the services run on as a [system architecture](/blog/mermaid-c4-system-architecture-confluence.md).

## FAQ[​](#faq "Direct link to FAQ")

**Does Confluence have a built-in API sequence diagram tool?** No — Confluence has no native diagramming. Mermaid Plus for Confluence renders `sequenceDiagram`, `packet-beta` and ZenUML from editable text with a live preview.

**Sequence, packet or ZenUML for an API doc?** Sequence for request/response order, packet for the wire format, ZenUML for branch-heavy interactions that read best as blocks. An API runbook often holds all three.

**How do I show failure handling in a sequence diagram?** Wrap the branch in `alt ... else ... end` — success in the alt body, failure in the else body. The runbook's error behavior becomes a drawn part of the flow.

**Can I keep a long API sequence diagram readable?** Split by endpoint or critical path, limit participants to what that flow touches, and put invariants in `note` lines. Small clear transcripts beat a wide wall of arrows.

Render every Mermaid diagram type — sequence, packet, ZenUML, ER, C4 and 24 more — in [Mermaid Plus for Confluence](https://marketplace.atlassian.com/apps/1236814/mermaid-plus-diagrams-for-confluence/), free for up to 10 users.

Try <!-- -->Mermaid Plus for Confluence

All 29 Mermaid diagram types with live preview and one-click templates — free for up to 10 users.

[Get it on the Atlassian Marketplace](https://marketplace.atlassian.com/apps/1236814/mermaid-plus-diagrams-for-confluence?utm_source=ngpilot.com\&utm_medium=website\&utm_campaign=mermaid-plus-for-confluence)

## Related guides

* [How to Create Mermaid Diagrams in Jira](/blog/how-to-create-mermaid-diagrams-jira.md)
* [Export Jira Issues to Excel or CSV](/blog/export-jira-issues-to-excel.md)
* [Bulk Download Jira Attachments](/blog/bulk-download-jira-attachments.md)
* [How to Migrate Confluence Content](/blog/how-to-migrate-confluence-content.md)
* [How to Add a Block Quote in Confluence](/blog/block-quote-confluence.md)

Explore NGPILOT[Browse Solutions](/solutions.md)[All Apps](/apps.md)[Atlassian Marketplace →](https://marketplace.atlassian.com/vendors/1226848/?utm_source=ngpilot.com\&utm_medium=blog\&utm_campaign=hub-links)

**Tags:**

* [confluence](/blog/tags/confluence.md)
* [mermaid](/blog/tags/mermaid.md)
* [sequence-diagram](/blog/tags/sequence-diagram.md)
* [packet](/blog/tags/packet.md)
* [zenuml](/blog/tags/zenuml.md)
* [api](/blog/tags/api.md)
* [how-to](/blog/tags/how-to.md)
