CSV flowchart generator: drop a file in, get a flowchart out

A browser-based CSV flowchart generator. Drop a .csv onto the spreadsheet and the rows draw as shapes. Generation is mechanical rather than generative: the same file always draws the same chart.

The CSV that produces this diagram

One row per step. The numbers in Line to are row numbers — that is what draws the connectors, and it is the column most files are missing.

#ShapeBox textLine toLine textHorizontal laneVertical lane
1StartCustomer requests a refund2RequestCustomer
2InputRecord the order number, date and reason3RequestAgent
3DecisionOrder found in the system?5, 4Yes, NoRequestAgent
4DecisionProof of purchase supplied?5, 22Supplied, No reply after two remindersRequestCustomer
5DecisionHow old is the order?7, 6, 21Within 30 days, 31 to 90 days, Over 90 daysEligibilityAgent
6DecisionSupervisor approves the late request?7, 21Approved, DeclinedEligibilitySupervisor
7DecisionIs the item physical or digital?8, 11Physical, DigitalEligibilityAgent
8ProcessBook the return and inspect the item9ConditionAgent
9DecisionWhat condition is the item in?12, 13, 10Unopened, Opened but resaleable, FaultyConditionAgent
10DecisionIs the fault covered by the warranty?14, 21Covered, Customer damageConditionSupervisor
11DecisionHas the digital item been downloaded?12, 13, 15Not accessed, Partly used, Fully consumedConditionAgent
12ProcessCalculate the full refund amount16AdjudicationAgent
13ProcessCalculate the partial refund amount16AdjudicationAgent
14DecisionReplacement or refund?19, 12Replacement, RefundAdjudicationCustomer
15DecisionGoodwill credit within the agent's limit?18, 17Within the limit, Above the limitAdjudicationAgent
16DecisionIs the amount above the agent's approval limit?20, 17At or below the limit, Above the limitApprovalAgent
17DecisionSupervisor approves the payment?20, 18, 21Approved in full, Approved as store credit, DeclinedApprovalSupervisor
18ProcessIssue store credit to the account24SettlementFinance
19ProcessShip the replacement and close the return25SettlementAgent
20CompensationPay the refund to the original payment method23SettlementFinance
21RejectRefund declined, reason recordedSettlementAgent
22EndRequest closed with no replySettlementAgent
23SuccessRefund paid to the original methodSettlementFinance
24SuccessStore credit issuedSettlementFinance
25SuccessReplacement shippedSettlementAgent
#,Shape,Box text,Line to,Line text,Horizontal lane,Vertical lane
1,Start,Customer requests a refund,2,,Request,Customer
2,Input,"Record the order number, date and reason",3,,Request,Agent
3,Decision,Order found in the system?,"5, 4","Yes, No",Request,Agent
4,Decision,Proof of purchase supplied?,"5, 22","Supplied, No reply after two reminders",Request,Customer
5,Decision,How old is the order?,"7, 6, 21","Within 30 days, 31 to 90 days, Over 90 days",Eligibility,Agent
6,Decision,Supervisor approves the late request?,"7, 21","Approved, Declined",Eligibility,Supervisor
7,Decision,Is the item physical or digital?,"8, 11","Physical, Digital",Eligibility,Agent
8,Process,Book the return and inspect the item,9,,Condition,Agent
9,Decision,What condition is the item in?,"12, 13, 10","Unopened, Opened but resaleable, Faulty",Condition,Agent
10,Decision,Is the fault covered by the warranty?,"14, 21","Covered, Customer damage",Condition,Supervisor
11,Decision,Has the digital item been downloaded?,"12, 13, 15","Not accessed, Partly used, Fully consumed",Condition,Agent
12,Process,Calculate the full refund amount,16,,Adjudication,Agent
13,Process,Calculate the partial refund amount,16,,Adjudication,Agent
14,Decision,Replacement or refund?,"19, 12","Replacement, Refund",Adjudication,Customer
15,Decision,Goodwill credit within the agent's limit?,"18, 17","Within the limit, Above the limit",Adjudication,Agent
16,Decision,Is the amount above the agent's approval limit?,"20, 17","At or below the limit, Above the limit",Approval,Agent
17,Decision,Supervisor approves the payment?,"20, 18, 21","Approved in full, Approved as store credit, Declined",Approval,Supervisor
18,Process,Issue store credit to the account,24,,Settlement,Finance
19,Process,Ship the replacement and close the return,25,,Settlement,Agent
20,Compensation,Pay the refund to the original payment method,23,,Settlement,Finance
21,Reject,"Refund declined, reason recorded",,,Settlement,Agent
22,End,Request closed with no reply,,,Settlement,Agent
23,Success,Refund paid to the original method,,,Settlement,Finance
24,Success,Store credit issued,,,Settlement,Finance
25,Success,Replacement shipped,,,Settlement,Agent

The diagram those rows produce

Rendered from the rows above, unchanged. Edit a cell and the diagram follows; move a box and the rows follow.

The columns QueryChart reads

Header names are matched, not column positions — extra columns are carried along and ignored by the diagram.

ColumnRequired?What it doesExample
#OptionalThe row number the editor prints, and the number every connection points at; you do not have to supply it, because a row's position in the file is its number.5
ShapeRequiredDecides what the box is drawn as: Start, Process, Decision, End, Success, Reject and a few more.Decision
Box textRequiredThe words printed inside the box, so this column is the one a reader actually reads.How old is the order?
Line toRequiredThe row number or numbers this row connects to, comma-separated; leave it empty only on the rows that end the process.7, 6, 21
Line textOptionalThe labels drawn on those connections, in the same order as Line to, which is how a decision gets its branches.Within 30 days, 31 to 90 days, Over 90 days
Horizontal laneOptionalGroups the box into a column of the chart, normally a stage or phase; leave the whole column out and the chart draws without lanes.Eligibility
Vertical laneOptionalGroups the box into a row of the chart, normally the team or role that owns the step.Supervisor

How it works

  1. Get your steps into a .csv

    One row per step. Name the header cells the way QueryChart's spreadsheet prints them (Shape, Box text, Line to, Line text) because import matches header names, not column positions. Any tool that exports CSV will do; /guides/how-to-structure-csv-for-flowcharts shows the layout in full.

  2. Drop the file on the spreadsheet

    Open a chart and drag the .csv onto its spreadsheet area, or copy the CSV text and paste it in. Those are the two routes, both covered in /guides/how-to-import-csv-into-a-flowchart-tool. There is no wizard to click through and nothing to configure first.

  3. Read the flowchart it drew

    The chart is on screen as soon as the file lands. Each row is one shape, Line to is the arrows, Line text is the labels on them. Nothing was inferred, so anything that looks wrong on the canvas is wrong in the file: go and find that row.

  4. Fix it on whichever side is easier

    The spreadsheet and the canvas are the same chart. Retype a cell or drag a box; both edits land in the same place. Re-dropping a corrected file draws it the same way it drew the first one.

  5. Take the chart somewhere

    Export it, share the URL, or send it through the approval workflow so a reviewer signs the version your file produced. If you would rather start from a file that already works, /templates/csv has wired examples.

What usually goes wrong

  • Line to holds a step name — Line to takes row numbers: 9, or 7, 6, 21 for a branch. A step's title in that cell connects to nothing, and the row draws with no arrow leaving it and no error to tell you why.
  • Line text ordered differently from Line to — The two columns are read in parallel. Line to of 7, 6, 21 paired with Line text of Over 90 days, Within 30 days, 31 to 90 days draws every arrow with the wrong label: a chart that is confidently wrong. /guides/how-to-define-flowchart-connections-in-csv walks through the pairing.
  • Commas left unquoted — The two columns that carry branches are the two that contain commas. Wrap them in double quotes ("7, 6, 21" and "Within 30 days, 31 to 90 days, Over 90 days") or the values spill into the columns beside them and the row loses its shape.
  • A shape name the parser does not know — Anything outside the recognised list normalises to Process without warning. A mistyped Decision comes back as a rectangle that still carries its branch labels, so the chart reads as a straight line where a real choice happens.
  • Renamed headers — Import matches header names, so renaming Box text to Step turns that column into one QueryChart does not recognise: it is carried along, ignored, and every box draws empty. Extra columns you add are safe for the same reason: they are carried and ignored too.

Frequently asked questions

What does a CSV flowchart generator actually do?

It reads a table and draws it. Each row becomes one box, Shape decides which box, Box text is what the box says, and Line to draws arrows to the row numbers you list. There is no interpretation step in between: rows in, shapes out.

How long does it take to see a diagram?

One action. Drag the .csv onto the spreadsheet area of a chart, or paste the CSV text into it, and the chart is on screen. The refund decision tree on this page is 25 rows and six stages, and it draws in that one drop.

Does it use AI to work out my process?

No. Nothing is guessed and no steps are written for you. The same file produces the same flowchart on every run, which is what makes the result checkable: a colleague can read the diagram against the file row by row and see where each arrow came from.

Is this the same idea as Visio's Data Visualizer?

The idea is the same, a table of steps driving a diagram; the delivery is not. Microsoft announced in November 2025 that the Data Visualizer add-in for Excel is being retired, while the Data Visualizer templates in the Visio desktop app remain available to Visio Plan 2 subscribers. QueryChart draws from a plain .csv in a browser tab, with no add-in and no Visio subscription.

Do I need to install anything?

No. It runs in the browser on macOS, Windows, ChromeOS and Linux. There is no desktop application, no Excel add-in and no Microsoft 365 dependency, so a machine that can open this page can draw the chart.

Which columns are required?

Three: Shape, Box text and Line to. Those draw the diagram on their own. Line text, Horizontal lane and Vertical lane refine it: labels on the branches, and boxes grouped by stage and by owner. /templates/csv-to-flowchart is a file with only the three.

What happens to columns QueryChart does not recognise?

They are carried and ignored. An export that keeps a ticket ID, a system name or a due date beside the process columns imports without complaint, so you do not have to cut your file down before dropping it in.

My CSV has no lanes. Is that a problem?

No. Leave Horizontal lane and Vertical lane out and the chart draws as a plain flowchart. You can add them later by typing into those columns in the spreadsheet; /templates/csv-swimlane-flowchart shows what a file looks like once it carries both.

Open the sample as a chart

More in Spreadsheet to flowchart