flowchart TB cust(["Customer"]) agent(["Support Agent"]) sys["Order Management<br/>the system being described"] pay["Payment Gateway<br/>external SaaS"] erp["ERP<br/>existing on-premises"] mail["Email Provider<br/>external SaaS"] crm["CRM<br/>external SaaS"] cust -->|"places and tracks orders"| sys agent -->|"amends and refunds orders"| sys sys -->|"authorises and captures"| pay sys -->|"posts financial documents"| erp sys -->|"sends confirmations"| mail sys -->|"reads account and entitlement"| crm
What it is
The outermost view. Your system is one box with no internal detail at all, and everything else on the page is either a person who uses it or another system it exchanges data with. Each line is labelled with what actually flows and in which direction.
The discipline is the emptiness of the middle box. The moment somebody adds a database, a queue or a microservice inside it, the diagram has stopped being a context diagram and become a worse container diagram.
When you produce it
First, and once. It is the opening page of a solution architecture document and the first slide of any design walkthrough, because it is the only diagram in the pack that a non-technical stakeholder can read unaided. On a migration it is also the cheapest way to discover integrations nobody mentioned: draw it, show it to the operations team, and watch them add three more boxes.
Who reads it
Everybody. Executives read it to see scope. Engineers read it to see what they will have to integrate with. Security reads it to find the trust boundaries worth threat-modelling. Commercial reads it to find the third parties that need contracts.
What good looks like
- Exactly one box has no vendor name on it, and that is your system.
- Every arrow is labelled with a business-meaningful verb, not a protocol.
- External systems are marked as external — colour, a note, or a legend.
- It fits on one page at a readable size. If it does not, your scope is wrong, not your font.
Common mistakes
- Drawing the internals. The most common failure by a wide margin.
- Unlabelled arrows. An arrow with no verb tells the reader nothing they could not guess, and hides whether the relationship is a read or a write.
- Omitting the humans. A context diagram of only systems is an integration landscape. The actors are what make it a context.
- Confusing "external" with "someone else's". A system your own company runs but your team does not own is still external to this design.