CSV to flowchart: the three columns that draw the diagram

Drop a .csv onto QueryChart's spreadsheet and it draws. Shape, Box text and Line to are the three columns that make a flowchart; the lane and label columns refine it. Import matches header names, not column order.

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
1StartSubmit a ticket2RaiseRequester
2ProcessRecord the ticket in the helpdesk queue3RaiseService desk
3DecisionEnough detail to work the ticket?6, 4Yes, NoTriageService desk
4ProcessAsk the requester for the missing detail5TriageService desk
5DecisionReply received before the chase window closes?6, 18Reply received, No replyTriageService desk
6ProcessSet the priority from impact and urgency7TriageService desk
7DecisionCan first line resolve it?8, 11Yes, No, escalateTriageService desk
8ProcessApply the documented fix9First lineService desk
9DecisionDid the fix work?15, 10Yes, NoFirst lineService desk
10ProcessRecord what was tried and hand the ticket over11First lineService desk
11QueueAssign the ticket to the specialist queue12EscalationService desk
12ProcessDiagnose the fault and apply a fix13EscalationSpecialist team
13DecisionFixed, or working around it?15, 14Fixed, Workaround onlyEscalationSpecialist team
14ProcessRaise a problem record for the underlying fault15EscalationSpecialist team
15EmailTell the requester what changed16CloseService desk
16DecisionDoes the requester confirm it is resolved?17, 11Confirmed, Still brokenCloseRequester
17SuccessTicket closedCloseService desk
18RejectClosed, no reply from the requesterCloseService desk
#,Shape,Box text,Line to,Line text,Horizontal lane,Vertical lane
1,Start,Submit a ticket,2,,Raise,Requester
2,Process,Record the ticket in the helpdesk queue,3,,Raise,Service desk
3,Decision,Enough detail to work the ticket?,"6, 4","Yes, No",Triage,Service desk
4,Process,Ask the requester for the missing detail,5,,Triage,Service desk
5,Decision,Reply received before the chase window closes?,"6, 18","Reply received, No reply",Triage,Service desk
6,Process,Set the priority from impact and urgency,7,,Triage,Service desk
7,Decision,Can first line resolve it?,"8, 11","Yes, No, escalate",Triage,Service desk
8,Process,Apply the documented fix,9,,First line,Service desk
9,Decision,Did the fix work?,"15, 10","Yes, No",First line,Service desk
10,Process,Record what was tried and hand the ticket over,11,,First line,Service desk
11,Queue,Assign the ticket to the specialist queue,12,,Escalation,Service desk
12,Process,Diagnose the fault and apply a fix,13,,Escalation,Specialist team
13,Decision,"Fixed, or working around it?","15, 14","Fixed, Workaround only",Escalation,Specialist team
14,Process,Raise a problem record for the underlying fault,15,,Escalation,Specialist team
15,Email,Tell the requester what changed,16,,Close,Service desk
16,Decision,Does the requester confirm it is resolved?,"17, 11","Confirmed, Still broken",Close,Requester
17,Success,Ticket closed,,,Close,Service desk
18,Reject,"Closed, no reply from the requester",,,Close,Service desk

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's 1-based position, which is the number every Line to entry points at; QueryChart prints it for you rather than reading it.5
ShapeRequiredChooses the box QueryChart draws: the sample uses Start, Process, Decision, Success and Reject, and anything it cannot match falls back to Process.Decision
Box textRequiredThe label printed inside the box, which is the only text a reader of the finished diagram actually sees.Reply received before the chase window closes?
Line toRequiredThe row number or comma-separated row numbers this step connects to, which is what turns a list of rows into a flowchart.6, 18
Line textOptionalThe connector labels, comma-separated in the same order as Line to, so the first label lands on the first connection.Reply received, No reply
Horizontal laneOptionalGroups the row into a stage running across the diagram, used here for the phase a ticket has reached.Triage
Vertical laneOptionalGroups the row into a swimlane down the diagram, used here for the team that holds the ticket.Service desk

How it works

  1. Put one step on each row

    Give every step of the process its own row, with the step's wording in Box text and its box type in Shape. Start, Process, Decision, Success and Reject cover most flowcharts. If you only fill in these two columns you still get a diagram: a column of boxes with nothing joining them yet.

  2. Join the rows with Line to

    In Line to, write the row number of the step that follows. Numbers, not names: row 1 pointing at row 2 is just 2. A decision points at more than one row, comma-separated, so "6, 18" sends one branch to row 6 and the other to row 18.

  3. Label the branches in Line text

    Line text carries the connector labels in the same order as Line to. Against "6, 18" the value "Reply received, No reply" puts the first label on the connection to row 6 and the second on the connection to row 18. Leave the cell empty for a plain arrow. There is more on this in /guides/how-to-define-flowchart-connections-in-csv.

  4. Add lanes if the process crosses teams

    Horizontal lane and Vertical lane are optional. Fill Vertical lane with the team that owns the step and the flowchart becomes a swimlane diagram; Horizontal lane groups rows into stages across it. Both are plain text: write the same name on every row that belongs to that lane. See /templates/csv-swimlane-flowchart.

  5. Drop the file onto the spreadsheet

    Open a chart, drag the .csv onto the spreadsheet area, or copy the CSV text and paste it there. QueryChart reads your header row and matches columns by name, so their order in the file does not matter. There is no import wizard and no column-mapping screen to work through; the diagram is drawn as soon as the file lands.

What usually goes wrong

  • Writing a step's name in Line to — Line to reads row numbers. "Set the priority from impact and urgency" is not a connection; 6 is. If you are working from an export that references steps by name or by an ID of its own, add a column of row numbers before you import and point Line to at that.
  • Inserting a row after the numbers are written — Because Line to is positional, adding or deleting a row part-way down shifts every row below it and quietly re-aims the connections that pointed there. Finish the list of steps first, then fill in Line to, or add new steps at the bottom and point at them.
  • Line text out of step with Line to — The two columns are matched by position, so a decision with "8, 11" in Line to and one label in Line text leaves the second branch unlabelled, and labels written in the other order silently swap Yes and No. Count the entries in both cells before you save.
  • A comma inside a branch label — Line text is split on commas, so a label like "No, escalate" is read as two labels and lands on the wrong branches. Write it as "No - escalate" or just "Escalate". The same applies to Line to: nothing but numbers and commas belongs in that cell.
  • Keeping the source system's header row — Headers are matched by name, so a column called Step, Task or Next Step is not recognised: it is carried along and ignored, and you get boxes with no text or no connections rather than an error. Rename the header row to Shape, Box text, Line to before importing. /guides/how-to-structure-csv-for-flowcharts walks through it.

Frequently asked questions

What columns does a CSV need to become a flowchart?

Three: Shape, Box text and Line to. Shape picks the box, Box text is what it says, and Line to is the row number the step leads to. Line text, Horizontal lane and Vertical lane refine a diagram that already renders without them.

Does the order of the columns in my file matter?

No. QueryChart matches your header row by name, so Line to can sit anywhere in the file. Columns it does not recognise are carried along and ignored, which means you can import an export with extra fields in it without stripping them out first.

How do I write a decision with two branches?

Set Shape to Decision, put both destinations in Line to separated by a comma ("6, 18"), and put the branch labels in Line text in the same order: "Reply received, No reply". The first label goes on the connection to row 6, the second on the connection to row 18.

How do I import the file?

Open a chart and drag the .csv onto the spreadsheet area, or paste the CSV text straight into it. Those are the two routes. There is no upload wizard and no column-mapper step, so if a column is not being picked up the fix is in your header row, not in a setting.

Can I use a CSV exported from another system?

Yes, any tool that exports CSV will do. Nothing translates the export's schema for you, though: rename the headers to QueryChart's names and replace step references with the 1-based row numbers Line to expects. That is usually two formula columns in the export before you save it.

Is the flowchart generated by AI?

No. The conversion is deterministic: the same CSV produces the same diagram every time, with no model in the path inventing or dropping a step. That is what makes the chart usable as evidence: an auditor can re-import the file and get the diagram you showed them.

Is this a replacement for Visio's Data Visualizer?

It covers the same job from a browser, with no licence. Microsoft announced in November 2025 that it is retiring the Data Visualizer add-in for Excel; the Data Visualizer templates in the Visio desktop app are a separate thing and remain available under Visio Plan 2. QueryChart needs neither.

What happens to the CSV after the chart is drawn?

The rows stay editable as a spreadsheet next to the diagram, so you can keep working in whichever view suits the change. Edits are checkpointed with author and timestamp, and a chart can be routed for approval once the process is agreed.

Open the sample as a chart

More in Spreadsheet to flowchart