Pipeline
Drag-and-drop kanban view of every lead by stage.
The Pipeline (/crm/pipeline) is your kanban view: every active lead in the workspace, organized into columns by pipeline stage. Drag a card from one column to another to move that lead to a different stage. Real-time-synced across your team.
Columns
Columns are your tenant's pipeline stages, in the order configured in Settings → Pipeline. Out of the box, every workspace gets five default stages:
- New (active)
- Contacted (active)
- Qualified (active)
- Won (won)
- Lost (lost)
Each column shows:
- A colored top stripe matching the stage color
- The stage name and a count of leads currently in it
- The cards themselves, newest first
Cards
Each card is a single lead. The card shows:
- The lead's name (Unnamed if neither first nor last was captured)
- The primary contact (email, falling back to phone)
- The source on the lower-left
- A relative time-since-creation on the lower-right
Click the name to open the full lead detail view. Drag the card (anywhere except the name link) to move it between columns.
Three ways to move a card
You can change a lead's stage three different ways, depending on what you're doing.
1. Drag-and-drop
Pick up a card and drop it on a different column. Best for one card at a time when you can see the destination.
2. Per-card "Move to" menu
Hover any card. A small three-dot icon appears in its top-right. Click it for a popover listing every stage; pick one and the card moves. Best when you don't want to scroll horizontally to find the destination column.
3. Bulk select and move
Hover any card. A checkbox appears in its top-left. Click it to select that card. Repeat across any cards in any columns — selection is global, not per-column. As soon as one card is selected, a blue action bar appears at the top of the board showing your count and a Move to button. Click it to send everything you've selected to the same stage in one go. Click Clear to drop the selection.
Bulk moves write a Stage moved activity row per lead, marked as bulk: true so the timeline shows it was part of a sweep.
Drag-and-drop details
Pickup is intentionally a touch-and-hold motion: you have to move the cursor at least 6 pixels before the drag activates. This way, ordinary clicks open the lead detail without accidentally starting a drag.
When you start dragging:
- The original card fades to indicate it's "in flight"
- Hovering over a column highlights it in blue with a dashed boundary
- Releasing on a column moves the lead and writes a
Stage movedentry to that lead's activity timeline
The change is optimistic: the card jumps to the new column immediately, before the server confirms. If the server write fails for any reason, the next refresh reconciles back to the truth.
Empty stages
A stage with no leads in it shows a subtle "Drop leads here" hint instead of being a featureless empty box. Helpful for new workspaces or after big moves.
Real-time
Two team members on this page see each other's drags within seconds. If a colleague moves a lead while you're looking, you'll see it shift columns automatically.
Won and Lost
Stages with stage_type = 'won' or 'lost' are also valid drop targets. Moving a lead into Won or Lost effectively closes it. The status field is independent and stays as it was; if you also want to mark the status, do it from the lead detail view.
Mobile
The board scrolls horizontally on narrow screens. Column width is fixed; you swipe to see more columns. Drag-and-drop with touch is supported but works best with a stylus or careful finger.
What's not in v1
- Reordering cards within a column. Cards in a column are always sorted newest first by
created_at. Manual ordering lands later if there's demand. - Multiple pipelines per tenant. Single pipeline per workspace. Multi-pipeline is on the v3 roadmap.
- Filtering by source/owner/etc. v1 shows everything. Filtering arrives once tenants accumulate enough leads to need it.