OOctwin Platform Guides
Octwin — platform capabilities

Octwin by Cequens

The platform, end to end.

Every capability the platform ships, what each one is for, and the business problems they compose into. A reference for a working session, not a pitch.

The shape

Two engines over one shared core.

CHANNELS WhatsApp Web CONVERSATIONAL ENGINE channels · conversation · agent flow runtime · taps · tools how the bot talks primitives BACK-OFFICE ENGINE records · casework · worklist · scheduling commerce · surveys · journey · automation the data it operates on Shared core tenancy · identity & access · storage · media · integrations · email · adapters Dependency runs one way: the conversation consumes the back office through a single seam, never the reverse.

Reach

One agent, both channels, per-channel limits handled for you.

You compose a conversation once. Each channel declares its own limits and the renderer clamps, pages and splits to fit them.

On WhatsApp

SurfaceLimit
Interactive list10 rows · 24-char titles
Reply buttons3 · 20-char labels
Carousel2–10 cards · 2 buttons each
Body text1,024 characters
Catalog & cartNative

On the web widget

SurfaceLimit
Interactive list10 rows · 256-char titles
Reply buttons3 · 256-char labels
Carousel1–10 cards · 2 buttons each
Body text4,096 characters
Catalog & cartRendered by the widget

The turn

Two lanes: one intelligent, one instant.

Free text Agent loop intent → tool choice Button or list tap t:invoke:search:city=Cairo Tool or flow Rendered reply

Taps carry their inputs already bound, so the model is never invoked to re-derive what the customer already chose.

Try it · tap a reply

Drive it yourself.

Nile Clinics — how can I help?
Book an appointment
Which clinician?
Dr. Nour Fahmy
Thursday 14 August — 09:30, 11:00 or 16:15?
11:00
Booked — Thursday 14 August, 11:00 with Dr. Nour.
Turns so far · 0 taps · 0 model calls

Every reply above is a tap. Each one carries its inputs already bound, so the turn routes straight to the tool — the language model is not invoked to re-derive a choice the customer already made.

Type something off-script instead and the other lane takes over: the agent reads the intent and picks the same tool.

Authoring

Conversations are written, not compiled.

Declared in YAMLFlows are state machines in a documented DSL. No build step between an edit and a conversation.
Pause and resumeA flow suspends mid-task and picks up on the next inbound — hours or days later.
Channel-blindA flow returns data and one render intent. The renderer decides how each surface shows it.
No executable codeA pack is YAML, Markdown, JSON and images. Every code extension is rejected before a bundle is stored.

The same declaration drives WhatsApp, the web widget and the console.

The data layer

Your own records, not our schema.

YOU DECLARE xrm.yaml entities · fields · stages refs · actions · roles YOU ALSO GET, FREE product · cart · order case · booking survey_response · campaign SEVEN SYSTEM ENTITIES One records layer timeline · record events · audit filters, facets and analytics for free Every module below reads and writes through this layer — which is why a case, a booking and an order all show up on the same customer record, with the conversation that produced them.

Capabilities · 1 of 3

Serve, book and sell.

Cases with queues, routing, SLAs and dispositions. The agent stays the only voice the customer hears.

Any record becomes queue-routed human work — approvals, reviews, verifications — with SLA clocks.

Resources, availability rules and slots. A booking is claimed on the tap, so two people cannot take one slot.

Catalog, cart, order and payment inside the thread. Native catalog and cart on WhatsApp.

Card checkout is live. Native in-chat pay is region-gated by Meta; elsewhere it degrades to a hosted page.

Orders are records with status, so fulfilment, returns and reporting all read the same row.

Capabilities · 2 of 3

Listen, ask, react and understand.

A voice note is transcribed and a photo is read, so the agent answers what was actually said or shown.

Questionnaires asked conversationally, with responses stored as records and rolled up into scores.

Reactors turn a record event into a notification, a task, a schedule or a stage transition — no code.

Declared stages measured, so you see where conversations actually stall rather than guessing.

Scheduled outbound intents. On WhatsApp they land inside the 24-hour service window.

Every send outcome and async failure recorded, reconciled against WhatsApp’s own optimistic health reading.

Capabilities · 3 of 3

Connect, govern and operate.

Connections, OAuth and port execution, with a stage map that translates another system’s vocabulary into yours.

Grants compose a resource, one of eight fixed verbs and a scope of own, team, queue or all.

Every database call is bound to its tenant and project by the runtime, not by a filter someone remembered.

Roles declared in YAML; queue coverage bound when the role is assigned, so one role serves every region.

Token, message and conversation metering rolled up per workspace.

Transactional email for invites, resets and verification, with bounces returning through a signed webhook.

How a domain ships

A pack is one declaration, published and installed.

manifest.yaml agent · flows · entities roles · locales · images DECLARATION ONLY Published immutable, content-addressed Listed capabilities derived, not typed Installed per project Two projects can run different versions of the same pack at once, and a project’s data, telemetry and conversation memory survive an upgrade.

Business applications

The same capabilities, composed differently.

IndustryPrimary jobRecordsBookSellServeSurvey
Retail & e-commerceSell and support in-thread
Clinics & healthcareFill the diary, follow up
Real estateQualify and book viewings
Field serviceSchedule visits, track jobs
Financial servicesOnboard, review, approve
EducationEnrol, remind, support

What changes between rows is the declaration. The engine underneath does not.

Use case

Retail & e-commerce.

Browse and buyA catalog carousel, a cart built by tapping, an order and a card payment without leaving the thread.
Order status“Where is my order” answered from the order record — a tap, with no model call.
Returns and refundsA refund becomes a queued approval with an SLA, worked by a person, answered by the agent.
Abandoned cartsCarts are records with a lifecycle, so which carts, holding what, and for how long is a query.

Boundary. Recovering an abandoned cart by messaging first is business-initiated. On WhatsApp that needs an approved template and is still landing.

Use case

Clinics & healthcare.

BookingReal availability per clinician, room or device. The slot is claimed on the tap, not from a cached list.
Patient recordsYour own fields, with the booking, the case and the conversation on one record.
Post-visit surveyOne rating question in the same thread, rolled up per clinician and per branch.
EscalationA low score or a clinical question opens a case routed to the right queue, with the booking attached.

Use case

Real estate, field service and financial services.

Qualify then bookFilter inventory in the conversation, then book a viewing or a site visit against a real diary.
Job trackingA visit is a record with a stage, an assignee and an SLA, visible to the customer as status.
Review and approveOnboarding, documents and limit changes become queued work with scoped approval rights.
Act on a changeA stage transition fires a reactor — notify, schedule, assign — without anyone writing code.

Operating it

A console your team runs, not a black box.

Multi-tenantIsolated workspaces with per-user sign-in. One platform, many brands or clients.
The work surfacesRecords, cases, the work inbox, the diary and orders — each filterable, each auditable.
What it costsToken, message and conversation usage per workspace, visible as you scale.
What actually sentDelivery outcomes and async failures per number, bucketed by error code.
GovernedAccess decided by role, scope and entitlement — and read the same way by the console and the audit trail.
ExtensibleInstall another pack for another domain without touching what is already running.

Going live

Two of the gates are Meta’s.

Connect the numberFrom our console via embedded signup — the customer never opens Meta Business Manager.
Display-name approvalMeta’s, and the long pole. Submit it first; business-initiated sends are blocked until it clears.
Payment methodMeta’s. Required before template messages will send.

State this precisely. Conversations the customer starts are fully supported today, including everything in this deck. Business-initiated messaging outside WhatsApp’s 24-hour service window needs an approved template, and that path is still landing — so do not commit to scheduled campaigns on WhatsApp yet.

Next

Bring a workflow, not a wish list.

The fastest session is one where you describe a real journey your customers take today, and we map it onto the capabilities above in the room.

See it workingA live conversation on WhatsApp or in a widget on your own page.
Sketch your domainYour entities, stages and roles, drafted as a declaration.
Size itVolumes and channels, against the metering you would actually see.

OCTWIN BY CEQUENS · Platform capabilities