Build by hand
Start with a blank canvas and drop nodes one at a time. Good for greenfield systems, services not in your repo, AI workflows, internal automations, or anything you want to sketch before you build it.
Naming your map
Set the map's name and description in the Canvas tab of the right panel. Both have a limit and show a live character counter as you type:
The limits are enforced in the editor and again on save, so anything longer is trimmed to fit.
Adding nodes
Click Add node (or the + button in the toolbar) to open the integration picker.
Search tools, services, workflows, and AI platforms - pick one and Canopy fills
in the name and icon automatically.
If the service isn't in the library, use a Custom node from the top of the picker. These carry a generic icon - database, server, compute, storage, cloud, queue, cache, notebook, workflow, approval, webhook, AI agent, background job, and more - so you can represent anything that doesn't have a brand mark. Drop one, rename it, and set its cost like any other node. To change a node's icon later, type a keyword in the Tool / step field in the inspector and pick a suggested mark (brand or generic).
Custom nodes still count toward cost and node totals, but they're excluded from the tool-usage stats because they don't represent a specific vendor.
Each node has the same fields in the Inspector panel on the right:
Drawing edges
Hover any node to reveal the edge handle on its right side. Drag it onto another
node to draw a directed arrow - web → api → db. Edges describe request flow and
don't count toward your node limit.
Double-click any edge to add a label (gRPC, webhook, REST, async) for clarity.
Hit Auto-layout in the toolbar to re-flow the whole graph at any time.
Find & fix issues
Press ⌘ F (Ctrl F on Windows) to find a node by name, tool, or step -
start typing and pick a match to jump straight to it on the canvas.
The toolbar also runs a live map lint. The Issues panel (the checklist icon in the left rail, or the ⚠ badge by the map name) flags the things a JSON paste or AI-generated map tends to leave broken:
- Dangling edges - an edge whose source or target node doesn't exist
- Duplicate node ids
- Unknown or missing icons - an icon slug Canopy doesn't recognise, or none set
- Missing cost - a node with no monthly cost (a suggestion, not an error)
Click any node-scoped issue to select and centre that node.
Keyboard shortcuts
Press ? anywhere in the editor to open this cheat-sheet (or click the keyboard
icon in the toolbar). On Windows and Linux, ⌘ is Ctrl.
Undo and redo also cover canvas drags - move a node and ⌘ Z puts it back.
Combining approaches
You can mix methods on the same map. A common pattern: import a repo to detect the core services, then hand-add the third-party SaaS tools (Stripe, Segment, Slack) that don't show up in a lockfile.
For workflow maps, use the same canvas vocabulary: a webhook can point to an AI agent, which points to a review step, then to a CRM update or background job. Edges describe the handoff, data flow, or dependency between each step.