Flowchart examples
Nine real flowcharts, from a two-question troubleshooting chart to a full order process. Each one is a free template: download the draw.io file and change it, or edit the Mermaid code online.
The colours follow the shape: green for start and end, yellow for decisions, blue for steps, purple for input and output. If a shape is new to you, the flowchart symbols chart explains it.
Lamp does not work
The classic first flowchart: two questions, each with a yes and a no. A good model for any troubleshooting guide.
Shows: Start, two decisions, three actions.
Mermaid code
flowchart TD
start([Lamp does not work]) --> plugged{Is it plugged in?}
plugged -->|No| plug[Plug it in]
plugged -->|Yes| bulb{Is the bulb burned out?}
bulb -->|Yes| replace[Replace the bulb]
bulb -->|No| repair[Repair or replace the lamp]Largest of three numbers
A favourite school exercise. It reads three numbers and prints the largest, using nested decisions.
Shows: Input and output (parallelograms), nested decisions.
Mermaid code
flowchart TD
start([Start]) --> read[/Read A, B, C/]
read --> ab{"Is A > B?"}
ab -->|Yes| ac{"Is A > C?"}
ab -->|No| bc{"Is B > C?"}
ac -->|Yes| printA[/Print A/]
ac -->|No| printC[/Print C/]
bc -->|Yes| printB[/Print B/]
bc -->|No| printC
printA --> stop([End])
printB --> stop
printC --> stopSum of numbers from 1 to N
Shows a loop: the arrow goes back up to the decision until the condition is false.
Shows: Preparation (hexagon) to set the counters, a loop back to the decision.
Mermaid code
flowchart TD
start([Start]) --> read[/Read N/]
read --> init{{"sum = 0, i = 1"}}
init --> check{"Is i ≤ N?"}
check -->|Yes| add["sum = sum + i"]
add --> next["i = i + 1"]
next --> check
check -->|No| print[/Print sum/]
print --> stop([End])User login
How an app checks a password and locks the account after three failed attempts.
Shows: Input, decisions, two loops back to the input.
Mermaid code
flowchart TD
start([Start]) --> enter[/Enter email and password/]
enter --> exists{Account exists?}
exists -->|No| noAccount[Show: no account found]
noAccount --> enter
exists -->|Yes| correct{Password correct?}
correct -->|Yes| open[Open the dashboard]
correct -->|No| count[Add 1 to failed attempts]
count --> three{3 failed attempts?}
three -->|No| enter
three -->|Yes| lock[Lock the account for 15 minutes]
open --> stop([End])
lock --> stopOnline order fulfillment
From a new order to the tracking email, including what happens when payment fails or an item is out of stock.
Shows: Decisions that rejoin the main flow, output at the end.
Mermaid code
flowchart TD
start([Order placed]) --> paid{Payment approved?}
paid -->|No| retry[Email the customer to update payment]
retry --> stop([End])
paid -->|Yes| stock{All items in stock?}
stock -->|No| supplier[Order missing items from the supplier]
supplier --> date[Tell the customer the new date]
date --> pack
stock -->|Yes| pack[Pick and pack]
pack --> label[Print the shipping label]
label --> carrier[Hand over to the carrier]
carrier --> email[/Send the tracking email/]
email --> stopCustomer support ticket
A support team’s process, with escalation to level 2 and a check that the customer is happy before closing.
Shows: Two decisions merging into one, a loop back to the start.
Mermaid code
flowchart TD
start([Ticket received]) --> tag[Read and tag the ticket]
tag --> known{Known issue?}
known -->|Yes| saved[Reply with the saved answer]
known -->|No| level1{Can level 1 solve it?}
level1 -->|Yes| solve[Solve and reply]
level1 -->|No| escalate[Escalate to level 2]
escalate --> solve
saved --> happy{Customer satisfied?}
solve --> happy
happy -->|No| tag
happy -->|Yes| close[Close the ticket]
close --> stop([End])Purchase approval
Who signs off on a purchase, depending on the amount.
Shows: A decision that splits the path and rejoins it.
Mermaid code
flowchart TD
start([Purchase request]) --> amount{"Over $1,000?"}
amount -->|No| manager[Manager approves]
amount -->|Yes| finance[Manager and finance approve]
manager --> approved{Approved?}
finance --> approved
approved -->|No| explain[/Tell the requester why/]
approved -->|Yes| po[Create a purchase order]
po --> order[Order from the supplier]
explain --> stop([End])
order --> stopNew employee onboarding
From a signed offer to the 30-day check-in. The first week is grouped in a frame.
Shows: A group (frame) for one phase, a waiting loop.
Mermaid code
flowchart TD
start([Offer accepted]) --> papers[Send the contract and paperwork]
papers --> back{Paperwork returned?}
back -->|No| remind[Send a reminder after 3 days]
remind --> back
back -->|Yes| setup[Order laptop and accounts]
setup --> welcome
subgraph week [First week]
welcome[Welcome meeting] --> training[Security and tools training]
training --> team[Meet the team and a buddy]
end
team --> checkin[30-day check-in]
checkin --> done([Onboarding done])Should I buy it?
A personal decision as a flowchart. Simple enough for a first class on flowcharts, and honest about saving up.
Shows: Three decisions in a row, a waiting loop.
Mermaid code
flowchart TD
start([I want to buy something]) --> need{Do I need it?}
need -->|No| skip[Don't buy it]
need -->|Yes| afford{Can I afford it?}
afford -->|No| save[Save up for it]
save --> afford
afford -->|Yes| cheaper{Is it cheaper elsewhere?}
cheaper -->|Yes| there[Buy it there]
cheaper -->|No| buy[Buy it here]
skip --> stop([End])
there --> stop
buy --> stopMaking your own
- Write the steps as a list first. Each line that starts with a verb is a box.
- Every question becomes a diamond. Give each answer its own labelled arrow, even the obvious one.
- Keep the flow going down the page. Arrows going back up are loops; use them sparingly.
- Show it to someone who does the work. If they say "that's not what really happens", the chart is wrong, not them.
More on this in how to design a clear flowchart.
Already drew it on paper or a whiteboard?
Take a photo. Sketch2scheme turns the sketch into an editable flowchart like the ones above, ready for draw.io, PNG or SVG.