WarmblyDocs

Live collaboration

See your team working in real time across the whole dashboard.

The dashboard is live by default: sends, opens, clicks, replies, new mail, contact changes, automation runs, meetings, and audit entries appear the moment they happen, for everyone, without a refresh. A presence layer on top shows who is online and what they are working on.

Online teammates

The header shows an avatar stack of everyone with the dashboard open. Hover for each person's name and where they are ("in unibox", "editing"). Click a teammate to jump straight to their page, which is the fastest way to join someone.

Who is already on this?

Anywhere a record opens, Warmbly shows when a teammate has it too:

SurfaceIndicator
UniboxGreen pulse on a row someone is reading, amber when they are writing a reply, plus a name pill on the open thread, so two people never answer the same prospect
AutomationsAn amber "is editing" pill by the automation name. Coordinate before saving: last save wins
Campaigns, contactsWho else is viewing or editing the same record
Deals, tasks, templates, mailbox settings, integrationsThe same indicator on every record that opens

Indicators are workspace-scoped. Teammates see only your name, avatar, current page, and open record.

What updates live

  • Campaign sends update progress, the leads list, and analytics for every viewer as the worker sends.
  • Opens, clicks, and replies pulse into stats and the activity feed. Out-of-office and other automated replies never count as replies.
  • New mail appears in every member's unibox as it syncs, respecting inbox permissions.
  • Contact imports, edits, and deletes refresh contacts views for the whole team.
  • Mailbox health transitions (a warmup quarantine, say) flip status badges live.
  • The CRM is live end to end: moving a deal, ticking a task, or editing pipeline stages shows up immediately, and a deal being dragged carries a colored ring so you know it is in motion.
  • The audit log streams new entries, so the activity trail is itself a live feed.

Events are permission-aware: a member without inbox access never receives unibox events, and billing events reach only those who can manage billing. See Team roles.

Live cursors and chat

On a shared page you see each other's cursors move, tagged with avatar and name, across the contacts table, deal board, unibox, settings, and everywhere else. On app-scrolling pages the cursor tracks content as either person scrolls.

Press / to chat from your cursor: an input opens at your pointer and what you type appears live in a colored bubble beside your cursor on teammates' screens, exactly where you are pointing. Enter sends (it lingers a few seconds, then fades), Escape dismisses. It is built for spatial remarks that do not deserve a thread: "this one?", "typo here".

Chat respects record permissions, enforced by the realtime service like the rest of the stream.

Shared builder canvases

The automation builder and sequence editor are shared canvases. You see teammates' cursors, watch cards slide as they drag, and see what each person has selected, outlined in their cursor color with their name, so "the step I have selected" is visible rather than described. Cursor chat works here too.

Card positions save automatically, so the layout you leave is the one everyone opens next time. Moving a card never marks the flow unsaved; only logic edits do.

Presence privacy

An admin controls this under Settings > Workspace > Team presence with two independent toggles:

  • Show who's online turns the avatar stack and online indicators on or off workspace-wide.
  • Show activity keeps online status but hides what each person is doing, so no "viewing" or "editing" detail is shared.

The realtime service enforces both, so a hidden signal is never sent, not merely hidden in the interface. Changes apply immediately with no reload, and editing them needs the Manage settings permission. With "show activity" off, cursors and card drags are not shared either.

Developers

The same stream, including presence events, is available over a WebSocket. See the Realtime WebSocket reference.

On this page