How to Write and Edit FlowZap Code (No Tech Skills Needed!)


FlowZap is built for real business users—Accountants, Customer Sales Reps, Plant Managers—who want to map out processes quickly, clearly, and without technical jargon. Here’s your step-by-step guide to writing and editing FlowZap Code, the simple language that powers your FlowZap Diagrams.
What Is FlowZap Code?
FlowZap Code is a straightforward way to describe your workflow visually. You’ll write a few short lines to define steps (nodes), connect them (edges), and organize everything into swimlanes (lanes) that match your real-world teams or roles. Although FlowZap Code is a DSL (Domain Specific Language) designed specifically for describing business process diagrams, it is not a programming language. No programming background is needed.
1. Organize Your Process with Lanes
Think of lanes as rows in your diagram, each representing a team, department, or role. Every lane groups together related steps.
lane1 {
...nodes...
...edges...
}
lane2 {
...nodes...
...edges...
}
- The lane name (like
lane1
,lane2
) is up to you. - Use clear names that make sense for your process (like
Sales
,Accounting
).
2. Add Steps with Nodes
Inside each lane, list every step in your process. Each step is called a node.
n1: circle label:"Start"
n2: rectangle label:"Enter data"
n3: taskbox owner:"Alice" description:"Validate input" system:"FormApp"
n4: diamond label:"Is valid?"
How to Write a Node:
- Nodes: nodeId:shape label:"Description"
- Shapes: Pick from circle (start/end), rectangle (process), diamond (decision), taskbox (only if requested)
- You can use sequential IDs (n1, n2, etc.) within each lane
- label:"Text" is what appears in the diagram. Keep labels concise but descriptive of the step or decision
- Respect the empty space or no space syntax at all times
- Don't insert comments, as there are no syntax outside of node and connection definitions
3. Connect Steps with Edges
After your nodes, describe how each step connects to the next.
node.handle(direction) -> node.handle(direction) [label="Text"]
How to Write an Edge:
Main flow should move from left to right within lanes Use directions: right (main flow), left (backward), top/bottom (decisions) Label all decision outcomes (e.g., [label="Yes"], [label="No"]) Always use equals sign (=) for label assignment, never colon (:) Respect the empty space or no space syntax at all times Keep edge labels short and clear
4. Connect Across Lanes
If a step jumps from one lane to another, just add the lane name before the node:
n3.handle(bottom) -> lane2.n5.handle(top) [label="Send for Review"]
So, Cross-lane: node.handle(direction) -> laneName.node.handle(direction) Use when responsibility transfers between actors/systems Clearly show handoffs between lanes Minimize crossing lines for better readability When connecting across lanes, the edge definition must live inside the braces of the origin lane
5. Full Example
Here’s a complete FlowZap Code sample for a two-lane process:
couple { # couple
n1: circle label:"Start Planning"
n2: rectangle label:"Define Budget & Priorities"
n3: rectangle label:"Review Proposals"
n4: rectangle label:"Make Final Decisions"
n5: circle label:"Wedding Day!"
n1.handle(right) -> n2.handle(left)
n2.handle(right) -> n3.handle(left)
n3.handle(right) -> n4.handle(left)
n4.handle(right) -> n5.handle(left)
n2.handle(bottom) -> planner.n6.handle(top) [label="Hires"]
}
planner { # planner
n6: rectangle label:"Initial Consultation"
n7: rectangle label:"Create Planning Timeline"
n8: rectangle label:"Coordinate Vendors"
n9: rectangle label:"Final Walkthrough"
n6.handle(right) -> n7.handle(left)
n7.handle(right) -> n8.handle(left)
n8.handle(right) -> n9.handle(left)
n7.handle(bottom) -> vendors.n10.handle(top) [label:"Requests"]
}
vendors { # vendors
n10: rectangle label:"Receive Requirements"
n11: diamond label:"Available?"
n12: rectangle label:"Send Proposal"
n13: rectangle label:"Confirm Booking"
n10.handle(right) -> n11.handle(left)
n12.handle(right) -> n13.handle(left)
n11.handle(right) -> n12.handle(left) [label="No"]
n11.handle(bottom) -> n12.handle(bottom) [label="Yes"]
n12.handle(top) -> couple.n3.handle(bottom) [label="Sends"]
}
See more FlowZap Code examples here.
6. Tips & Best Practices
- Keep IDs short: Use simple codes like
n1
,n2
. - Help from AI : Ask your favourite AI Agent helper to draft a first template of FlowZap Code for you.
- Auto-Layout checkbox: The Auto-Layout checkbox will take a first stab at organizing your Diagram. You can always tidy it up later.
- Comments: Add inline comments after the opening brace using
#
, for exampleSales { # internal SLA 48 h
. Lines beginning with//
are ignored and will not be preserved when you regenerate the code. - Labels: You can leave a connector label empty (
label=""
) or leave it out.
Just write or paste your FlowZap Code into the editor and click “Update Diagram.” Your process comes to life—no technical skills required!
FlowZap makes process mapping as easy as writing a checklist. If you can describe your workflow, you can diagram it in FlowZap.