31 ways to make sure no customer story falls through
Every feature exists to answer one question: did we remember what matters to this person? Build on top with the full REST API, or use the dashboard. Click any card for details. When one of these breaks, we write down what happened: see the build notes.
Messaging & inbox
14 featuresCategorized inbox
Conversations partitioned the way outreach actually works: Interactive (two-way) · Inbound (unanswered) · Outbound (broadcasts), with smart sub-groups and endless scroll.
- Three tabs derived from real message flow. A reply moves the conversation automatically
- Smart sections: Window closing soon · Your turn · Their turn · Waiting 6h+
- Name AND number on every row + thread. Always know who, on which line
- Search matches message content, not just names and numbers
- Keyboard flow: ↑/↓ through the list, Enter opens, Esc back, "/" to search
- Thread history with day separators + "new since you last looked" divider
- Live 24h window indicator that auto-switches to template mode
- Quote-reply, reactions, media viewer, read receipts, typing indicator
- Auto-growing composer with per-thread draft memory
Team assignment + auto-routing
Assign conversations manually or let the system route them. Round-robin, least-busy, or sticky re-assignment with skill-based filtering.
- Multi-agent seats with individual login
- Admin / agent roles with per-agent API keys
- Claim or assign conversations manually, or enable auto-assignment
- Three routing strategies: round-robin, least-busy, sticky re-assignment
- Skill-based filtering: tag agents with skills, route matching conversations
- Capacity caps per agent. Agents at capacity are skipped automatically
- Per-agent line grants: control who sees which number
- Workspace-level routing config in Settings
Broadcasts & campaigns
Template sends to segments. Delivery funnel, scheduling, pre-send cost estimate.
- Composable audiences: segments, lists, groups, or all opted-in
- Live WhatsApp-bubble preview before sending
- Delivery funnel: sent → delivered → read → replied
- Pre-send cost estimate using 90-day rate history
- Rate-limit-aware retry. Meta throttling backs off, never permanently fails
- Delivery-stage failures recorded with Meta's reason, auto-retried on a stagger
- Consent-checked at send time
Broadcast truth & retry
Every broadcast lives in the inbox as a collapsible group: who got it, who ignored it, who Meta blocked and why, with retry built in.
- One collapsible group per broadcast: sent · replied · failed · awaiting reply
- Failure reasons in plain language: marketing-limit caps, unreachable numbers, holdouts
- One-click "Retry failed". Every consent/budget/window check runs again per contact
- Automatic staggered retry for capped sends: spaced attempts over hours, capped at 3
- Expand any broadcast to see exactly which contacts haven't replied, and message them
- A contact two broadcasts reached appears under both. No data hidden by attribution
Inbox productivity
Canned replies with "/" insert, conversation labels, internal notes, resolve/reopen. The operator toolkit, live.
- Canned replies: type "/" in the composer, arrow-key pick, team-shared library
- Conversation labels with color coding + label-filtered inbox views
- Internal notes on any thread. Never sent to the customer
- Resolve / reopen with bulk-resolve; resolved threads reopen on reply
- Assign and rename via inline popovers. No clunky dialogs
- Contact detail panel alongside the thread: identity, badges, lead stage, notes, linked numbers
Template builder
Create, edit, submit for Meta approval. Track status live via webhooks.
- Rich templates: header media, body variables, buttons
- Edit & resubmit approved templates. Live version keeps sending during re-review
- Media library reuse for headers: pick from existing uploads, skip re-upload
- Approval status tracking in real time via Meta webhooks
- Reuse across campaigns
AI reply assist
One-click "suggest reply" grounded in the thread. Never auto-sent.
- Draft appears in composer. Agent decides to send or edit
- Uses your own AI key (Claude)
- Optional, off by default. No AI without your consent
AI auto-reply
Answers customers on its own, but only from facts you've told it. Won't improvise your pricing or policies.
- Only answers from facts you've told it. Won't invent your pricing, policies, or promises
- Runs on a schedule you set, independent of your away hours
- A keyword or greeting rule you've already written always outranks it
- Off by default at the deployment level. Opt in per workspace, no code change needed
Two-way translation
Auto-detects any language on inbound, translates your reply into the customer's language on the way out.
- No language list to configure, it detects whatever the customer actually writes in
- Shown as a secondary line under each message. The original text is never replaced
- Applies to plain-text sends both directions; templates and media are never auto-translated
- Off by default per workspace, one toggle in Settings
Real-time inbox (WebSocket)
New messages, status updates, and typing indicators arrive instantly via WebSocket. No polling, no refresh button.
- Per-workspace WebSocket hub via Cloudflare Durable Objects
- Inbound messages, delivery/read receipts, and typing signals pushed live
- Automatic reconnect with exponential backoff
- Graceful fallback to 30-second polling if WebSocket is unavailable
- Multi-agent: every agent on the workspace sees updates the instant they happen
Contact detail panel
Identity, consent badges, lead stage, notes, and linked numbers alongside the thread. Context without leaving the conversation.
- Right-pane panel: toggle open alongside any conversation thread
- Identity header with avatar, name, phone, and source badges (known, consent, business)
- Editable lead stage dropdown with instant save
- Internal notes with timestamps and author attribution
- Linked numbers: see other WhatsApp numbers belonging to the same person
- Contact details: company, industry, team size, score, use case
- Responsive: collapses to overlay on narrow screens
Multi-number support
Multiple WhatsApp lines in one workspace. Per-line inbox, per-line send.
- Connect unlimited numbers under one deployment
- Friendly display-name labels per number
- Choose send-from line in UI or via API
- Per-number cost + quality visibility
Auto-replies & keyword triggers
Greeting, away, keyword-based responses. Consent opt-in/opt-out flows.
- Greeting + away auto-messages
- Keyword-triggered template sends
- Welcome message, ice-breakers, persistent menu commands
- Built-in opt-in / opt-out consent capture with payload-based detection
WhatsApp Flows
Create, publish, and manage Meta's native in-chat forms (surveys, booking, lead qualification) from the dashboard.
- Full Flows lifecycle: create, publish, deprecate, delete
- 10 pre-built flows included: appointment booking, lead qualification, feedback survey, order tracking, and more
- In-app preview before publishing
- Flow response data captured in message thread as structured metadata
Drip sequences
Time-based message sequences with pause-on-reply. Enroll contacts or segments, consent-checked at every step.
- Multi-step sequences with configurable delays (hours/days)
- Auto-pause on reply. Never message someone mid-conversation
- Segment or individual enrollment with deduplication
- Consent verified at every step, not just enrollment
- Sequence analytics: enrolled, completed, paused, unenrolled
CTWA ad attribution
Click-to-WhatsApp ad tracking: captures ad source, campaign ID, and headline. Shows "From ad" context chip in every thread.
- Referral capture on inbound: ad campaign, source URL, headline
- "From ad" context chip visible in conversation thread
- CTWA conversations attributed in cost dashboard
- Works with Meta's Click-to-WhatsApp ad format
Platform & data
11 featuresCost dashboard
Real Meta costs by category and campaign. Cost-per-reply. Pre-send estimates. Spend trend & forecast. Markup: $0.
- Reads Meta's conversation-analytics cost data verbatim
- Breakdown by marketing / utility / service / country
- Per-campaign cost + cost-per-reply + blended cost/message
- Pre-send estimate using 90-day rate history
- Spend trend chart with 30/60/90-day forecast
- Permanent "Klaros markup: $0", auditable in code
Digital business cards & QR lead capture
A public profile page at your own link. Scan it at an exhibition, print it on a card, or drop it in an email signature. Every visitor becomes a tagged, opted-in contact, not an anonymous page view.
- Public card page at your own slug. Scans are logged separately from your inbox, so exhibition traffic never buries real conversations
- A visitor who connects becomes a contact automatically, tagged
card-leadandorigin:<your-slug>, ready for segments and campaigns - Cardholders claim and update their own card with a WhatsApp magic link sent to the number printed on it, masked on screen. Possession of the phone is the only credential, no password to manage
Developer API
4 featuresFull REST API
Headless access to every platform capability: contacts, segments, campaigns, sequences, inbox, products, templates. The dashboard is just one client of this API.
- 97 endpoints across 7 resource groups, all under versioned
/api/v1 - Send messages, manage contacts, launch campaigns, enroll in sequences programmatically
- Full OpenAPI 3.1 spec at
/api/v1/openapi.jsonfor codegen, Swagger, and Postman - Consistent response shapes:
{ data }for reads,{ data, meta }for pagination, standard error codes - Idempotency keys, rate-limit headers, error code contract
- API access included on every plan. No gating, no per-call fees
Named API keys with scopes
Create named, scoped, independently revocable API keys. Give your backend send-only access. Give your BI tool read-only. Revoke one without breaking the other.
- Three permission scopes:
send(messages + campaign launch),read(all GETs),manage(mutations) - Named keys: "production-backend", "analytics-dashboard", "staging". Know which integration is calling
- Independent revocation: kill one key without rotating everything
- Last-used tracking: see which keys are active and which are stale
- Optional expiry dates for temporary integrations
- Up to 20 keys per workspace. Managed from the Developers tab or via the API itself
Outbound webhooks
HMAC-signed events to your endpoints. Retry + dead-letter queue. n8n/Zapier-ready.
message.received,message.status,message.optout,contact.created,contact.updated,consent.changed,conversation.assigned,campaign.completed- HMAC-SHA256 signature verification
- Backoff retries, auto-disable dead endpoints
n8n / Zapier / Make integration
Connect Klaros to 5,000+ apps today via each platform's generic webhook and HTTP modules. No published app needed yet.
- Trigger direction: outbound webhooks feed n8n/Zapier/Make's generic webhook-catcher
- Action direction: their generic HTTP module calls our REST API v1
- Every API operation has a stable id for OpenAPI import, so it doesn't need hand-naming per endpoint
- A published, listed Zapier/Make app is next, but this path doesn't wait on it
Behavior sequences + Milestones API
Behavior-triggered WhatsApp from your own backend: one API call fires a milestone, your rule sends the next-step template. At Meta's raw price.
- One-line integration:
POST /api/v1/milestonesfrom your own code when a customer acts (order placed, KYC done, cart abandoned) - Rules in the dashboard: "milestone → template, after N minutes". No flow-builder ceremony
- React to what customers DO, not what day it is. No stale drip messages
- One send per contact per rule, consent + opt-out gated on every send
- Zero markup makes high-frequency triggers economical. Event data never leaves your own deployment
Contacts & segments
Import, tag, segment. Build campaign audiences with deduplication. Source provenance tracking.
- Multi-source import: Google, Outlook, iCloud, CSV, vCard, JSON
- Tag-based segmentation with audience builder
- Dedup across audience sources via phone-level merge
- Source provenance badges: see where each contact came from
- Progressive WhatsApp verification: confirms reachability via delivery receipts
Contact import & sync
Pull contacts from Google, Outlook, iCloud, or upload CSV/vCard/JSON. Nightly auto-sync keeps your list fresh. Zero-friction Google Apps Script method included.
- Google contacts via Apps Script (zero-friction, no App Password) or CardDAV
- Outlook contacts via PowerShell script or App Password
- iCloud contacts via App Password + CardDAV
- File upload: CSV, TSV, vCard (.vcf), JSON with auto-format detection
- Smart parsing: BOM stripping, delimiter auto-detect, first+last name merge, nested JSON
- Nightly auto-sync for credential-based connections. New contacts flow in automatically
- Phone normalization: bare local numbers get country-code prepended (supports 200+ countries)
- Push API endpoint for external integrations:
POST /api/contact-sources/push
Self-deployed on Cloudflare
Workers + D1 + R2 + Queues. Your account, your data, your infrastructure.
- Deploy to your own Cloudflare account
- D1 database, R2 media storage, Queues for async
- Tokens encrypted at rest
- Full data export. Leave any time, keep everything
Full data export
Export contacts, conversations, consent records. No vendor lock-in.
- One-click export to CSV/JSON
- Consent records with provenance
- No "please contact support". It's your data
WhatsApp Business Tools
Manage your business profile, QR codes, welcome messages, and conversational setup, all from the dashboard.
- Edit business profile: display name, about, address, email, website
- Upload and update profile photo
- Create and manage WhatsApp QR codes for offline-to-chat
- Configure welcome messages, ice-breaker prompts, persistent menu commands
System health & monitoring
Live health dashboard with token expiry alerts, number quality tracking, DLQ depth, and setup readiness checks.
- Critical alert on expired or invalid API token. Stops wasting retries
- Dead-letter queue depth visible in health endpoint
- Number quality and messaging-limit status
- Setup readiness checklist: missing secrets, unbound queues, incomplete config
- Inbound message deduplication for at-least-once queue safety
Cost guardrails
Budget-cap alerts, template category-drift detection, cost anomaly flagging, and spend forecasting. Catch runaway costs before they hurt.
- Set monthly budget caps. Alerts fire before you overshoot
- Template category-drift alerts when Meta reclassifies your templates
- Cost anomaly detection: flags unusual spending spikes
- Spend forecast projects end-of-month cost from current run rate
Onboarding wizard
Conversational + interactive guided setup: connects your number, validates display name, checks eligibility, walks through Meta billing. Prevents the #1 rejection cause.
- Step-by-step connection flow with real-time validation
- Display name eligibility check before submission
- Embedded signup, token exchange, phone registration
- Setup readiness checklist for post-connect verification
Product library & catalog
R2-backed media product library with sendable products, now with optional numeric pricing and stock. Meta Commerce Catalog integration for product and multi-product messages.
- Upload and manage products with images, descriptions, numeric price, stock
- Send single-product and multi-product messages from inbox
- Meta Commerce Catalog browser and picker
- R2-backed media storage with signed URLs
Commerce: orders & payment requests
A customer's cart becomes a real order record, not a dead-end chat bubble: build a multi-item payment request from it in one click, track it to paid, and get one automatic reminder if it goes unpaid.
- Every cart or manual payment request is a tracked order: received → payment requested → paid → fulfilled
- Multi-line-item payment-request composer in the Inbox, pre-filled from a received cart
- Works with any payment provider: paste in a Razorpay/PayU/etc. payment link, no Meta Commerce Manager required
- Dedicated Commerce dashboard tab: orders board, order detail, reminder settings
- One automatic reminder if a payment request goes unpaid past a configurable window
- Zero markup: you see Meta's raw messaging cost and whatever your own payment provider charges, nothing added
Overview cockpit
At-a-glance operations dashboard: outcome funnel, do-next action row, zero-markup cost strip, consent funnel, and network stats.
- Outcome funnel: sent → delivered → read → replied
- Do-next action row: surface what needs attention right now
- Zero-markup cost strip with real-time savings projection
- Consent funnel and network health stats
Trust & compliance
3 featuresOfficial Cloud API
100% Meta-sanctioned. No Baileys, no grey-area scraping, no ban risk.
- Embedded signup connects your WABA
- All sends through the official Cloud API
- Template approval through Meta channels
Consent ledger + GDPR
Opt-in/opt-out audit trail. Right-to-erasure. Consent-evidence export.
- Universal compliance gate: consent checked on every send path (inbox, campaign, drip)
- Payload-based consent buttons. Relabeling a button can never silently break opt-in/opt-out
- Full audit trail with timestamps + evidence
- GDPR erasure + data export on demand
BYO-WABA: keep your number
Bring your existing WhatsApp Business Account. Coexistence mode: both work.
- No number migration needed
- Health-check verifies token, webhooks, send capability
- Guided runbook for the full process
Operational intelligence
6 featuresVertical solution packs
Six turnkey packs, opt-in per workspace from the Extensions catalog: Construction PMC, Field Sales, Sales Deals & CRM Pipeline, Commerce & Payments, AI Tools, and QR Codes & Public Pages. Each wires the capabilities below into a domain-specific configuration.
- Construction PMC: daily progress capture, safety audits, material tracking, delay escalation, client-ready narratives
- Field Sales: visit logging, geo check-ins, route compliance, deal tracking
- Sales Deals & CRM Pipeline: visual Kanban deal board, conversation-linked deal tracking
- Commerce & Payments: orders, checkout links, payment confirmation, automated payment requests from sequences and flows
- AI Tools: AI auto-reply, off by default deployment-wide, opt in per workspace
- QR Codes & Public Pages: scannable QR and a public page for eligible assets
- Activating a pack never switches another off. They're additive, and any capability already on deployment-wide is marked rather than double-counted
Project & entity grouping
Group conversations, documents, and team activity under projects, or any entity your business tracks. A construction site, a legal matter, a fleet route, a property. One data model, any domain.
- Tag any conversation to a project. Media and messages file automatically
- Cross-project portfolio view: all active projects, last update, status
- Team members mapped to projects. The system knows who works where
- Roles per project: field engineer, contractor, client contact, auditor
- Every document, photo, and voice note retrievable by project
Structured field capture
Push tappable forms to field teams on schedule: daily progress, safety audits, material receipts, issue reports. Responses land as structured records, not chat messages.
- Domain-specific WhatsApp Flow blueprints, not generic forms, industry-tuned capture
- Scheduled push: the right form, to the right person, at the right time
- Responses auto-route to their parent project based on sender mapping
- Structured records queryable and filterable, not buried in message threads
- Built on existing WhatsApp Flows infrastructure (already live). This adds scheduling and routing
Proactive watchdogs
Know which projects are healthy and which went quiet. Configurable per role. A site engineer silent for 18 hours is a different signal than a client silent for a week.
- Rule-based monitoring on entity records: missing daily reports, stale projects, field-match triggers
- Per-entity silence thresholds, configurable by role and project type
- Auto-escalation with cooldown and dedup, so one problem fires one alert, not a storm
- Absence is treated as signal, not just missing data
- A single cross-project portfolio screen (green / amber / red at a glance) is next, see Roadmap
AI extraction: photos, voice, documents
The system reads what your team sends. Site photos get classified, voice notes get transcribed and tagged, PDF reports get their key numbers extracted. All filed under the right project.
- Schema-driven: each domain defines what to extract. The AI looks for those fields
- Photo classification: activity type, completion stage, issues visible
- Voice note transcription with structured field extraction
- Document parsing: progress tables, percentages, dates, amounts
- Handles the unstructured 20%. Structured capture (Flows) handles the other 80%
Auto-generated digests & reports
Daily internal digest for the operations lead. Weekly client report per project. Both compiled automatically from what the team already sent. No one writes a report manually.
- Daily portfolio digest delivered via WhatsApp to the operations lead
- Weekly per-project report auto-compiled for client stakeholders
- Template-driven: format matches industry reporting norms
- The team's WhatsApp activity IS the report. Capture once, report everywhere
Coming soon
On the roadmapFour more vertical packs
Legal Firm, Fleet & Logistics, Facility Management, and Healthcare Clinic. Six packs already ship today from the Extensions catalog; these four follow the same pattern.
Cross-entity scorecards
When the same contractor or vendor works across multiple projects, their performance pattern becomes visible: responsiveness, issue frequency, delay correlation.
Agent performance + SLA
Response time tracking, resolution metrics, SLA timers, working hours configuration. Agent leaderboard and bottleneck detection.
Published Zapier / Make app
A listed app in the Zapier and Make directories. The integration path itself already works today via the REST API + webhooks (see the Live section above).
Frequently asked
What can Klaros do?
Klaros is a WhatsApp Business platform on Meta's official Cloud API. It covers messaging (text, media, interactive buttons, lists, CTA), a categorized multi-agent team inbox with real-time WebSocket updates, auto-assignment routing, and a contact detail panel, commerce (orders, multi-item payment requests, and payment tracking from any provider), broadcast campaigns, drip and behavior-triggered sequences, WhatsApp Flows, template management, a consent ledger with GDPR export and erasure, contact import and sync, a zero-markup cost dashboard, a full REST API, and self-deployment into your own Cloudflare account with full data export.
Does Klaros have a REST API?
Yes. Klaros ships a 97-endpoint REST API with an OpenAPI 3.1 spec, named API keys with scoped permissions (send, read, manage), and HMAC-signed webhooks with retry and a dead-letter queue. It is included on every plan with no per-call fees.
Does Klaros support WhatsApp Flows and interactive messages?
Yes. Klaros supports interactive messages (reply buttons, list menus, CTA URLs) and WhatsApp Flows, Meta's in-chat forms, with 10 pre-built blueprints and completion actions such as tag, enroll, and branch.
Can I self-deploy Klaros and export my data?
Yes. Klaros self-deploys into your own Cloudflare account (Workers, D1, R2, Queues). You can export contacts, conversations, and consent records at any time. There is no lock-in.
Does Klaros charge a markup on WhatsApp messages?
No. You connect your own WhatsApp Business Account and pay Meta directly at Meta's published rates, so the per-conversation markup is zero. A live cost dashboard shows your real Meta cost by category and per campaign.
Your stories. Your data. Your platform.
Start your free trial in minutes. No credit card, no commitment, no lock-in. Leave any time with everything.
