Content approval workflow (with legal review)

A content approval workflow is a flowchart of the checks a piece of content clears before it is allowed out: an editorial and factual review, a legal and compliance review, a brand and messaging review, and a final sign-off. In an organisation where publishing carries real regulatory or reputational risk those reviews sit with different people answering different questions — is it any good and is it true, will it expose us, is it on message — which is the reason the process has stages at all rather than a single approver.

People draw this one when a review process has grown by accretion and nobody can say any more who is actually accountable, when an auditor or a regulator asks how published content is controlled, or when someone joins a comms team whose rules have only ever been handed on verbally. Its real subject is not the happy path but what happens when a review fails: three different failures all return the piece to the same revision step, and one of them can stop it for good — a workflow without that outcome drawn on it is describing a rubber stamp.

Content approval workflow Contentbrief Write draft Editorial andfact check Standardsmet? Revise draft Legal andcompliancereview Risklevel? Accountableowner decides Cleared? Do notpublish Brand andcomms review Onmessage? Final sign-off Schedulerelease Archiveapproval record Published Yes Material No Yes No Yes No Fixable None
Open in editor

Mermaid source

---
title: Content approval workflow
---
flowchart LR
    Brief([Content brief]) --> Draft[Write draft]
    Draft --> Review[Editorial and fact check]
    Review --> Standards{Standards met?}
    Standards -->|No| Revise[Revise draft]
    Revise --> Review
    Standards -->|Yes| Legal[Legal and compliance review]
    Legal --> Risk{Risk level?}
    Risk -->|Fixable| Revise
    Risk -->|Material| Owner[Accountable owner decides]
    Owner --> Verdict{Cleared?}
    Verdict -->|No| Spike([Do not publish])
    Risk -->|None| Brand[Brand and comms review]
    Verdict -->|Yes| Brand
    Brand --> Message{On message?}
    Message -->|No| Revise
    Message -->|Yes| Signoff[Final sign-off]
    Signoff --> Schedule[Schedule release]
    Signoff --> Archive[Archive approval record]
    Schedule --> Live([Published])

Stock Mermaid vs Line9 on this content approval workflow

Run the same source through the stock Mermaid engine and it often will not look as good. In some cases, Mermaid is able to deliver a usable graph, but not always. On this one:

The same content approval workflow through stock Mermaid — a band six times wider than it is tall, with the three rework branches drawn as long crossing arcs and their labels floating mid-canvas
Stock Mermaid · same source View full size ↗

The four decision points are what this graph is about, and the rework paths drawn by stock Mermaid are uncomfortably long arcs, caused by a layout that is too elongated. The graph as a whole comes back six times wider than it is tall. The ‘Do not publish’ terminal is trapped inside the logic flows and the return edge from ‘Revise draft’ crosses the ‘Yes’ branch from ‘On message?’. Line9 lays out the same source in a usable aspect ratio of 2.1:1, brings the three longer lines into parallel lanes in a single channel and avoids the unnecessary edge crossing.

For a fuller product comparison — layout, export, CLI, and pricing — see Line9 vs mermaid.live.

Render your own

Paste any Mermaid flowchart into the free online editor — no account needed. Prefer the terminal? Install the line9 CLI (free for personal use).

More scenarios on the Mermaid examples hub.