Device Fleet

Operator sign-in

Device Fleet
Fleet Wall Conversations Recipes Developer Settings

Devices

Fleet wall

Low-res, low-fps thumbnails, streamed only while this wall is open. Click a tile to focus & control. Only devices that have granted screen-capture consent stream — others show a placeholder.
Sections Jump between sections
← Back to fleet
Live screen Session, control, capture Idle
View: Drag the lower-right corner to resize the panel.
Click to tap · drag to swipe · scroll to scroll · type or paste to enter text · Esc = Back

Press Start session to view this phone's screen. The phone prompts for on-device screen-capture consent the first time.

Macros Read-only checks, conversation capture, and single-send runs
Send a WhatsApp message

A single, deliberate, operator-initiated send — not a bulk sender. Paced to one run per 15s per device. The message text reaches the phone only for this send and is never stored in the run history or audit log.

Recent runs
Captured conversations
View captured conversations → Read-only viewer of the WhatsApp messages captured into our own store for this device — a per-contact, conversation-style record that survives on-device deletion.
Edit macro recipes → Super-admin editor for the dynamic (data-driven) macro recipes that drive on-screen WhatsApp capture — tune selectors, preview which fleet devices can run a recipe, save, and roll back, all without rebuilding the app. A recipe takes effect on each device's next heartbeat.
Installs the built-in backfill recipe so the historical “Backfill” macro can run (it only runs from a saved recipe). One-time; you can fine-tune its message selectors afterwards in the recipe editor. It reaches each device on its next heartbeat.
Device status Health, readiness, app identity
Organisation Group and tags
Agent config Capture mode, heartbeat and command polling

Safe, non-code settings only — the phone applies them on its next heartbeat (within the old interval) and clamps every value on-device. Blank = keep the default.

Notes Operator notes for this device
Recent heartbeats Latest device telemetry
Command history Queued and completed actions

Settings

View View Overview Settings directory Current Profile Profile Account Profile & password Administration Administration Users & roles Access control Administration Activity log Audit trail Operations Operations Backup Export & restore Operations Relay metrics Live sessions Operations API access Internal tokens System System About Build & scopes
Overview

Profile 1

Account Profile & password

Administration 2

Users & roles Access control Activity log Audit trail

Operations 3

Backup Export & restore Relay metrics Live sessions API access Internal tokens

System 1

About Build & scopes
Account
Signed in as
—
Role
—

Users & roles

Roles: super-admin (everything, incl. user management), operator (view + control + macros), viewer (read-only). Destructive device delete and this section are super-admin only.

Add a user
Accounts

Activity log

Append-only record of significant actions — actor, action, target and time. Read-only; it logs actions and metadata, never captured message content.

Backup & restore

Download the fleet's device metadata (names, labels, groups, tags, notes, archived state) as a JSON file so a database loss doesn't mean re-labelling every phone by hand. No device tokens, telemetry, or message content are included. Restore re-applies the metadata to devices that have re-enrolled, matched by device name — it never creates or deletes a device.

Media store

Inbound photos, voice notes and documents are stored in the MinIO object store. If it's not configured or unreachable, media is captured but can't attach — a message then shows as a "[Photo]" marker with no image, on both the fleet viewer and the CRM. This is its live status.

Checking…

Live relay

Read-only health of the live-view WebSocket relay (fleet wall + focused sessions). See docs/relay-scaling-investigation.md for what these mean and the thresholds to watch.

Active sessions
—
Streaming devices
—
Viewers
—
Frames in / out (per sec)
—
Dropped frames (per sec)
—
Egress (per sec)
—
Event-loop delay
—
Backend uptime
—

API access

Token-authenticated API for device status, running any macro (incl. WhatsApp send), and outbound webhooks. Meant for your own automations — not a public API. Restrict it to your internal network at your reverse proxy, and keep the server flag INTERNAL_API_ENABLED off until you need it.

Full endpoint/scope reference, scoped token management, webhooks (with a test button), and the request + delivery logs.

Open the developer portal →

Copy this token now — it is shown once and cannot be retrieved again:

LabelCreatedLast usedStatus
About

Device Fleet — the operator console for this WhatsApp device fleet: live view and remote control, fleet health monitoring, grouping and tagging, role-based access, and an append-only activity log.

Your access
—
Health alert delivery
—
Device Fleet · checking build…

Change password

Set group / tags

Permanently delete device

This removes the device and all of its heartbeats and command history. This cannot be undone. To confirm, type below.

Absorb a duplicate into this device

Reunite a phone that was reinstalled and re-registered as a new device. is the device you keep — it should be the one this phone is live as right now, so it stays working. The device you pick below is the duplicate: its conversations, media and history move onto this device and it is archived. This cannot be undone.