Canvas Layout

Canvas Layout

The AppFlow Studio workspace provides an expansive visual grid where non-technical administrators can design complex phone routing logic by simply dragging blocks onto a screen.


Editor Controls Map

The layout below traces out the primary workspace tools accessible from your canvas editing screen:

graph LR
    %% Toolbar
    subgraph ToolboxSidebar["Left Node Palette"]
        DragSound["PlayAudio block<br/>(Streams recorded sound files)"]
        DragInput["Input block<br/>(Collects keypad choices)"]
    end

    %% Center Grid
    subgraph DesignGrid["Interactive Routing Workspace"]
        NodeStart["Start Anchor<br/>(Initial call trigger point)"]
        NodeChain["Active Audio Path<br/>(Connected via output lines)"]
    end

    %% Top Controls
    subgraph ControlsHeader["Workspace Header"]
        SliderZoom["Zoom & Panning controls<br/>(Magnify grid nodes)"]
        CheckSave["Auto-Save Status<br/>(Preserves layout states)"]
    end

    %% Links
    ToolboxSidebar ==>|"Drag onto grid"| DesignGrid
    ControlsHeader --> DesignGrid
    NodeStart ==>|"Link Output connector"| NodeChain

    %% Tailored Style Variables
    classDef sideToken fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef gridToken fill:#312e81,stroke:#ec4899,stroke-width:2px,color:#fff,rx:6px,ry:6px;
    classDef ctrlToken fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff,rx:6px,ry:6px;

    class ToolboxSidebar,DragSound,DragInput sideToken;
    class DesignGrid,NodeStart,NodeChain gridToken;
    class ControlsHeader,SliderZoom,CheckSave ctrlToken;

Visual Studio capabilities

1. Instant Connection Snapping

Click and drag from any right-hand module output circle directly into the input target circle of subsequent shapes. The editor snaps connections in place automatically.

2. Auto-Save Validation

As soon as workspace shapes change positions on screen, portal controllers write cached JSON properties directly back to central servers, keeping edits intact if browser tabs accidentally reload.