Canvas 🟡 PREVIEW - Whiteboard

Collaborative visual workspace

Canvas Interface Screen

Overview

Canvas is the collaborative whiteboard in General Bots Suite. Draw diagrams, create flowcharts, sketch ideas, and collaborate in real time with your team. Use drawing tools, shapes, text, and layers to build visual representations of complex concepts and systems.


Features

Tools

ToolDescription
SelectMove, resize, rotate elements
PenFreehand drawing
RectangleDraw rectangles and squares
EllipseDraw circles and ovals
LineDraw straight lines
ArrowDraw arrows for flowcharts
TextAdd text labels
EraserRemove elements

Colors

OptionDescription
PalettePredefined color palette
CustomFull RGB color picker
OpacityTransparency control
FillShape fill color
StrokeOutline/border color
WidthLine thickness

Layers

ActionDescription
Add LayerCreate new layer
Delete LayerRemove layer
ReorderChange layer stacking
VisibilityToggle layer visibility
LockPrevent edits to layer
RenameLabel layers for clarity

Export

FormatDescription
PNGRaster image export
SVGVector scalable export
PDFHigh-quality document
JSONEditable board data

Collaborate

FeatureDescription
Real-timeMultiple users editing simultaneously
Cursor ViewSee other users’ cursors
PresenceActive collaborator list
HistoryView edit history
PermissionsView/edit access control

Keyboard Shortcuts

ShortcutAction
VSelect tool
PPen tool
RRectangle tool
EEllipse tool
LLine tool
AArrow tool
TText tool
XEraser tool
Ctrl+ZUndo
Ctrl+YRedo
Ctrl+ASelect all
Ctrl+GGroup selected elements
Ctrl+Shift+GUngroup elements
DeleteDelete selected
Ctrl+SSave board

Canvas via Chat

Creating a Flowchart

Drawing a System Diagram

Adding Text Labels


API Endpoints

EndpointMethodDescription
/api/canvasGETList all boards
/api/canvasPOSTCreate new board
/api/canvas/:idGETGet board data
/api/canvas/:idPATCHUpdate board
/api/canvas/:idDELETEDelete board
/api/canvas/:id/elementsPOSTAdd element
/api/canvas/:id/elements/:el_idPATCHUpdate element
/api/canvas/:id/elements/:el_idDELETEDelete element
/api/canvas/:id/layersGETGet layers
/api/canvas/:id/layersPOSTCreate layer
/api/canvas/:id/exportGETExport board
/api/canvas/:id/collaboratorsGETGet collaborators
/api/canvas/searchGETSearch boards

Create Board Request

{
    "title": "User Registration Flow",
    "width": 1200,
    "height": 800,
    "elements": [
        {
            "type": "oval",
            "x": 500,
            "y": 50,
            "width": 200,
            "height": 60,
            "fill": "#4CAF50",
            "text": "Start"
        },
        {
            "type": "arrow",
            "x1": 600,
            "y1": 110,
            "x2": 600,
            "y2": 160,
            "stroke": "#333333"
        }
    ],
    "layers": [
        {
            "name": "Main",
            "visible": true,
            "locked": false
        }
    ]
}

Board Response

{
    "id": "board-abc123",
    "title": "User Registration Flow",
    "width": 1200,
    "height": 800,
    "elements": [
        {
            "id": "el-001",
            "type": "oval",
            "x": 500,
            "y": 50,
            "width": 200,
            "height": 60,
            "fill": "#4CAF50",
            "text": "Start",
            "layer": "Main"
        }
    ],
    "layers": [
        {
            "name": "Main",
            "visible": true,
            "locked": false
        }
    ],
    "collaborators": [],
    "created_at": "2025-05-15T09:00:00Z",
    "updated_at": "2025-05-15T11:00:00Z"
}

Configuration

Canvas settings can be configured in config.csv:

key,value
max-elements,1000
auto-save-interval,30
default-canvas-width,1200
default-canvas-height,800
collaboration-enabled,true

Troubleshooting

Board Not Loading

  1. Check internet connection
  2. Verify board data isn’t corrupted
  3. Check browser WebGL support
  4. Refresh the page

Elements Not Syncing

  1. Verify WebSocket connection is active
  2. Check collaboration permissions
  3. Ensure board isn’t locked by another user
  4. Refresh to re-sync

Export Quality Issues

  1. Check canvas dimensions
  2. Verify all elements are visible
  3. Ensure fonts are loaded
  4. Try different export format

See Also