Skip to content
MermaidViewer

Diagrams

Flowcharts meaning, for a first diagram

If you looked up flowcharts meaning, the definition worth keeping is a picture of a process: steps in order, and a branch when the next step depends on a question.

By MermaidViewer editorsUpdated 13 min read

If you looked up flowcharts meaning, the definition worth keeping is a picture of a process: steps in order, and a branch when the next step depends on a question. The box is something you do. The diamond is a decision. The arrow is the order, not a decoration between shapes. That is the whole idea. Everything else people call a flowchart, a sitemap, an org chart, a mind map, a cloud of boxes from a workshop, is a different picture that borrowed the word because it also has arrows.

The word, before the symbols

"Flow" is the part that does the work. Something moves through the picture. A request, a refund, a form, a support ticket. It starts, it may branch, and it stops. If you can't say what is flowing, you don't have a flowchart yet. You have shapes. I ask that question in reviews when a diagram has twelve boxes and no obvious start. The author usually wanted an architecture sketch, and the arrows were "depends on," which is a dependency graph. A dependency graph can be drawn with the same syntax. It is not a flowchart in the ordinary sense, because nothing is flowing. The boxes are parts, and the arrows are relationships that are true all at once.

A map is the comparison that clears this up for most beginners. A map shows where things are. A subway map shows stations and lines. You can stand at a station. You do not "do" the station and then get routed by a diamond. A flowchart shows what happens next. If your picture still makes sense when you shuffle the steps, it was probably a map of parts, or a list of topics, and the arrows were habit. If shuffling the steps changes the outcome, you have a flow, and the order is the content.

People also say "flow" for a user journey that is really a story: the person feels confused, then relieved. That can be a useful drawing, and it is not what I mean here. A flowchart step is an action or a check, not a mood. "User is frustrated" is not a step you can implement. "Show the missing-field error" is. I keep the word tight so a support lead and a programmer can point at the same box.

The flowchart syntax page is where the shapes and arrows are listed. This post is the meaning. I am not going to walk every symbol Mermaid can draw. A beginner needs a process box, a decision, and an arrow. The rest can wait until a real process needs a second shape. If you want the build steps after the idea is clear, the how to create a flowchart guide is the mechanical follow-on. Read this first if you are still deciding whether a flowchart is the picture you want.

What the diamond is for

The diamond is a question with mutually exclusive answers. "Fields filled?" Yes or no. "Over 50 dollars?" Yes or no. "Billing or bug?" Billing or bug, if those are the only routes you handle in this picture. The diamond is not a step. "Validate the form" is a box. "Is the form valid?" is a diamond. I split those because teams merge them and then nobody knows whether the arrow is the work or the result of the work.

Each arrow out of a diamond needs a label. An unlabeled fork is a picture of a question you forgot to answer. Mermaid will draw |Yes| and |No| on the edges. Use words from the policy, not words from the implementation. "Yes" is fine when the question is a yes-or-no. "Approved" and "Rejected" are better when the diamond is a review. "True" and "false" are a code leak. Readers who don't live in the boolean will guess, and they will guess wrong in the direction that matches their hopes.

One question per diamond. A diamond labeled "Valid and allowed and in stock?" is three policies hiding in one shape. Split them. The picture gets taller and the review gets easier, which is the trade I want. A short diamond with a vague label feels elegant and then fails the first exception. The exception was always a second question. Give it a shape.

The diamond is also not a loop by itself. A loop is an arrow that goes back to an earlier box, usually after a "no." "Fields filled? No, show the error, return to the form." The back-edge is the loop. If you need to say "retry at most three times," the diamond can ask "retries left?" or the label on the back-edge can say so. Don't hide a counter inside a box called "Handle it." That box is where meaning goes to die.

Not a map

A site map lists pages. Home, pricing, docs, a blog. Arrows might mean "links to." You can read it in any order and it is still the site. Nothing is decided. A flowchart of "how a person buys a seat" might pass through three of those pages and ignore the rest. The pages are scenery. The decisions are the content: signed in or not, card accepted or not.

I see site maps drawn as flowcharts because the tool that was open only had boxes and arrows. The picture looks official. It answers the wrong question. If a new hire asks "what pages exist," give them the map. If they ask "what happens when the card fails," give them the flowchart. Putting both in one drawing produces a tangle that is bad at both jobs. I split them even when it feels like extra files. Two short pictures beat one impressive knot.

Geographic maps and network maps have the same problem. A network map shows where a host sits. A flowchart shows the path of one request, including the branch where the host says no. The request path is allowed to omit hosts that exist and didn't participate. Completeness is a map virtue. A flowchart that tries to be complete becomes a map with extra diamonds. When someone asks you to "just add the staging cluster," ask whether staging changes a decision. If it doesn't, it stays off the flow.

The login flowchart template is a process, not a map of the auth product's pages. That is why it is a useful reference once the meaning is clear. You can see a start, a question, and a stop. You are not looking at a sitemap of an account portal.

Not an org chart

An org chart answers "who reports to whom." The boxes are roles or people. The lines are authority, and they are usually true at the same time. There is no start, and there is no diamond, unless someone has misused the diamond to mean "this team is a matrix," which is a different problem and not a process.

The confusion is understandable. Both pictures use boxes and lines. A workshop will ask "and then who handles it?" and suddenly the flowchart grows a box called Finance that means the department, not the step. "Finance" is not a step. "Manager review" is a step. "Email the reason" is a step. The department can be a subgraph title if you need to show who owns a cluster of steps. It should not be the only label on the box, because then the reader learns the org and still doesn't know what happens.

I use a subgraph for that ownership when the process really does cross teams. The subgraph title is "Support" or "Finance." The nodes inside are verbs or verb phrases. If I can't find a verb, the node is an org-chart box that wandered in. I delete it or I rewrite it until it is something a person can finish. "Billing" becomes "Check the invoice." "Engineering" becomes "Ask for steps to reproduce." The rewritten form is longer and it is the actual flow.

Org charts also tempt people into hierarchy layouts for processes that aren't hierarchies. Top-down is a good flowchart direction when the story is a decision tree. It is not a claim that the top box manages the bottom box. Say the direction out loud as time, not as power. Time moves down the page. If your culture reads time left to right, use flowchart LR and keep the diamonds readable. The meaning doesn't change. The reading order does.

A first chart you can read aloud

This is the smallest flowchart I will bother to draw. A person opens a form. If a field is missing, show which one and go back. If the fields are filled, save a draft. You can read every label as a sentence. If you have to invent a sentence the label doesn't support, the label is wrong.

mermaid
flowchart TD
    open[Open the form] --> filled{Fields filled?}
    filled -->|No| ask[Show the missing field]
    ask --> open
    filled -->|Yes| save[Save the draft]
Open in the live editor

open, filled, ask, and save are ids. The words in brackets or braces are labels. I keep the ids boring so I can rewrite "Show the missing field" without touching the arrows. The diamond uses braces, {Fields filled?}, which is the decision shape. The back-edge ask --> open is the loop. There is no separate loop symbol. The arrow is the loop.

"Save the draft" is a stop for this picture. I don't draw a circle that says End unless the process has two different stops that a reader could mix up. One stop can just be the last box. Two stops, success and failure, deserve labels that say what the person experiences. "End" is not an experience. "Draft saved" is. I also refuse the node id end in Mermaid files, because end closes a subgraph. Use save or doneBox and put the human word in the label.

This chart is deliberately smaller than a real signup flow. There is no password rule, no rate limit, no email verification. Those are more diamonds. Add them when the policy exists, one diamond at a time, each with labeled exits. A first chart that includes every future rule is a spec pretending to be an introduction. You wanted the meaning. The meaning fits in four nodes.

A second chart, with a real branch

Support tickets are where the word flowchart gets used loosely. Here is a tight one. A new ticket is either billing or a bug. Billing checks the invoice. A bug asks for steps. Both paths reply. The reply is one box because the step is the same even though the earlier work differed. Merging the arrows is the point. Two paths, one outcome shape.

mermaid
flowchart TD
    ticket[New ticket] --> kind{Billing or bug?}
    kind -->|Billing| invoice[Check the invoice]
    kind -->|Bug| repro[Ask for steps]
    invoice --> reply[Send the reply]
    repro --> reply
Open in the live editor

The diamond's answers are not Yes and No. They are the two kinds the queue actually sorts. If a third kind exists, "account access," add a third edge or the chart is a lie you will feel on the next on-call week. I would rather have an ugly diamond with three labels than a tidy one that drops a category on the floor. The third edge can point at a new box, "Reset the factor," and then join reply or not. Joining is optional. Don't join paths that don't share a next step just to make the picture neat.

Notice what this is not. It is not an org chart of Support and Engineering. It is not a map of the help center. It is not a sequence of HTTP calls. If the interesting question becomes "which service writes the reply," you have outgrown a flowchart and you want participants and messages. Stay here while the question is the policy of sorting tickets.

The what a flowchart is used for post goes further into jobs this picture is good at. Flow charts is the wider set of examples. Make a flow chart is the build. I am keeping this page on the definition so those don't have to re-explain the diamond every time. If you are still choosing among diagram types, how to make a diagram is the step back. A flowchart is one choice, and it is the wrong choice for a type hierarchy or a table relationship.

When the word is being misused

I push back in three situations.

The picture has no question and no order. It is a map or a list. Take the arrows off, mentally, and see if you lost information. If you didn't, delete them for real.

The boxes are people or departments and the lines are "reports to" or "owns." That is an org chart. Drawing it as flowchart TD doesn't change the meaning, and it invites a diamond that doesn't belong. If you truly have a process and an owner, put the owner in a subgraph title and the process in the nodes.

The arrows mean "might call" or "is allowed to know about." That is an architecture sketch. Use it as a schematic or a dependency graph, and don't expect a beginner to read it as steps. A new hire will try to follow the arrows as time. They will invent a sequence you didn't mean, and they will debug that sequence. I have watched that happen with a "flowchart" of twelve services that was really a context diagram. We redrew it as layers. The false sequence went away.

A smaller misuse is a diamond for a step that always happens. "Save?" with only a Yes arrow is a box you were afraid to commit to. Either there is a No and you should draw it, or there isn't and the diamond should be a rectangle. Decision shapes are expensive for the reader. They stop and look for the other branch. If the other branch doesn't exist, you have charged them for nothing.

The cheat sheet is where I look up an arrow or a shape after the meaning is settled. I don't start there. A sheet of symbols will not tell you whether you needed a flowchart. The process will. Write the steps as a numbered list first. If the list contains a "depending on," you have a diamond. If it doesn't, you may not need a picture at all. A short list in the README is better than a flowchart that adds no branch and no order beyond the list.

How I teach it to a new teammate

I sit with one real policy from our repo, not a textbook example about making tea. Tea diagrams are cute and they don't survive contact with a refund rule. I ask them to name the flowing thing in four words. Then I ask for the first step and the first question. We put those two shapes down and we stop. If they can't name the question, we don't open the editor yet. We go back to the code or the support macro and find the if.

Then we label both exits before we add the next box. This order matters. People draw three boxes in a column, drop a diamond on top, and only then think about the No path, which ends up as an arrow into empty space. The empty space becomes a box called "Handle error" and the meaning leaks out. Label the exits while the question is still embarrassing and specific.

I also ask them to read the chart aloud to someone who didn't build it. If the listener says "and then what?" at a box, the box is a department or a topic. If they say "what if it isn't?" at a box that isn't a diamond, a decision is missing. Those two questions catch almost every beginner chart I see. The syntax errors are cheaper. A missing quote is a parser message. A missing question is a wrong process that renders beautifully.

When the aloud reading works, we put the fence in Markdown and review the text, not a screenshot. The next edit will be a new edge with a label. That is the meaning, preserved as a diff. A dragged box in a GUI would have preserved the pixels and lost the argument.

If you want to try the two charts from this page without setting anything up, open the editor and paste the form example first. Read it aloud. Then change the diamond's question to one from your own project and fix the labels until both exits are true. That is the meaning, practiced once. The symbols can stay this small until the policy grows.

Frequently asked questions

What does the diamond mean?

A decision. One question, more than one labeled exit. If you cannot label the exits, it is not a decision yet.

Is a flowchart a map?

No. A map shows where things are. A flowchart shows what happens next. An org chart is closer to a map of people than to a process.

Do I need special software to make the first one?

No. A few lines of Mermaid in the editor are enough. The five-minute how-to is the make-a-flow-chart post.