Welcome to FlowZap dear Business Process Maniacs!

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

FlowZap Code Generator screenshot 1FlowZap Code Generator screenshot 2

 

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 example Sales { # 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.