Communications · Interactive demo

One enquiry, six tools, zero SaaS lock-in.

A WhatsApp message lands in the shared inbox, gets qualified, written to the CRM, booked into the calendar and confirmed by email — with every tool running on infrastructure the business owns.

Most 'all-in-one' platforms rent you your own customer data back at per-seat prices. This demo shows the alternative we deploy: six open, self-hosted tools — inbox, automation, CRM, booking and email — wired together so one enquiry flows through all of them without a human copy-pasting anything.

Every step is sample data — the in-browser sandbox below is offline. Wiring the live stack needs the six services deployed, consent records in place, and a human approval path before any real send or booking.

What triggers this workflow

New enquiry hits the shared inbox

A WhatsApp message, SMS, missed call or website form lands in the one shared inbox the team already works from.

Source: Chatwoot inbox (WhatsApp Cloud API / SMS / web form)

Workflow steps

  1. Chatwoot + WhatsApp Cloud API
    Inbox capture
    The message arrives in the shared inbox with the channel and sender attached.
  2. n8n workflow
    Classify
    Intent, service type and urgency are extracted; the contact is matched or created.
  3. Twenty CRM
    Write to CRM
    The contact, source channel and a summary note are written to the CRM in one shot.
  4. n8n workflow
    Qualify
    The enquiry is scored against the agreed rules — in-area, in-scope, right timing.
  5. Cal.com + Chatwoot
    Book or hand off
    Qualified: real calendar slots are offered. Not qualified or human-requested: the conversation is assigned to a person inside the same inbox thread.
  6. Listmonk
    Confirm
    The booking confirmation and reminder go out by email from the business's own sending domain.
  7. n8n scheduled job
    Report
    The outcome is logged for the weekly reporting workflow — source, branch, time-to-reply.

Tools used

Chatwoot
Shared inbox — WhatsApp, SMS, email and web chat in one thread view
WhatsApp Cloud API
Official WhatsApp channel wired into the inbox
n8n
Automation backbone — classification, scoring, routing, reporting
Twenty CRM
Contacts, pipeline stages, source tagging (EspoCRM swaps in if preferred)
Cal.com
Booking with real availability
Listmonk
Confirmation and reminder email from the business's own domain

Human handoff

The inbox stays human-first

The shared inbox is where the team already works, so handing off means assigning the conversation to a person — thread, history and context intact — not exporting it to another system. Nobody asks the customer to repeat themselves.

  • Customer asks to speak with a human at any point — conversation assigned in the same thread
  • Enquiry scores below the agreed qualification threshold
  • Complaint, dispute or out-of-scope topic detected during classification
  • After-hours: the stack captures and acknowledges, then queues a human follow-up for the morning

Try it in your browser

Edit the sample inputs, choose a branch, and see what the workflow produces. The sandbox runs offline — no accounts touched, no messages sent.

Try it in your browser

Edit the inputs, pick a branch, and see what the workflow produces. Runs entirely in your browser — no messages are sent, no accounts are touched.

Sample inputs
Branch choice
Output — branch: Qualified & booked

1. Enquiry captured in the shared inbox

WhatsApp Cloud API → shared inbox. Sender: Mick O'Donnell. Detected intent: Book a quote.

2. Classified and written to the CRM

Twenty CRM record
Contact
Mick O'Donnell
Source channel
WhatsApp
Intent
Book a quote
Email
mick.odonnell@example.com
Stage
New

3. Branch handling

WhatsApp
Hi Mick O'Donnell, thanks for getting in touch. We can come and take a look — the next slots are:
  1. Tue 8:00–8:30am
  2. Wed 12:30–1:00pm
  3. Fri 3:30–4:00pm

Reply with a number and we'll lock it in. — The team

No slot picked yet — the thread stays open in the shared inbox and the cadence pauses until the customer replies.

4. Reporting payload

{
  "event": "enquiry_handled",
  "stack": [
    "chatwoot",
    "whatsapp_cloud_api",
    "n8n",
    "twenty_crm",
    "cal_com",
    "listmonk"
  ],
  "channel": "WhatsApp",
  "intent": "Book a quote",
  "branch": "booked",
  "contact": "Mick O'Donnell",
  "booked_slot": null,
  "time_to_first_reply_min": 2
}

Sample data only. Numbers, names and messages are placeholders for illustration. Wire the live workflow separately using the setup notes below.

n8n workflow template

n8n template — LGM 10 Own-Infra Growth Stack (SIMULATED, inactive). Ships with active: false — no live integrations are wired. See the setup section below for the wiring checklist, and download the JSON to inspect or import it.

Download workflow JSON

Setup for production

Wiring it for production

This demo runs offline in your browser — the live stack is six self-hosted services, wired once and owned outright.

  1. Deploy the six services on your own infrastructure (a single VPS can carry inbox + CRM + email; booking and automation sit alongside).
  2. Connect the WhatsApp Cloud API number and any SMS provider to the shared inbox.
  3. Wire the automation backbone: inbox webhook → classification → CRM write → qualify → book or assign.
  4. Point the CRM step at Twenty CRM, or swap in EspoCRM — it's one replaceable node in the workflow.
  5. Connect the booking event type and the email-sending domain (SPF/DKIM in place) for confirmations.
  6. Run a 10-enquiry pilot across all four branches before switching production traffic over.

Production prerequisites

  • Server infrastructure (or managed hosting) for the self-hosted services
  • Meta business verification for the WhatsApp Cloud API number
  • Customer consent for AI-assisted replies and marketing email on each channel
  • A human in the loop — the inbox assignment path must be staffed
  • Sending domain DNS (SPF, DKIM) configured before any real email

Nothing here runs by default. Configuration has to be in place before any live send, booking or contact write.

Questions

Isn't six tools harder to manage than one platform?

Each tool does one job and does it well; the automation backbone is the only piece that touches all of them. Compare that to a per-seat SaaS where the CRM, inbox and email are all rented separately — and your data leaves with the subscription.

Who owns the data in this stack?

The business does. Contacts, conversations, bookings and send history all live on infrastructure the business controls. There is no per-seat pricing and no export hostage situation — if you ever leave, the database comes with you.

Can we swap parts of the stack later?

Yes — that's the design. Every integration point in the workflow is a single replaceable node. Businesses that prefer a different CRM (EspoCRM, for example) or a different sender keep the rest of the stack untouched.

Where this fits

Own-Infra Growth Stack — One Enquiry, Every Tool across the platform

Want this own-infra growth stack — one enquiry, every tool workflow running on your stack?

Pick the demo you're curious about or describe your own. We'll come back with what a real deployment looks like for your business — the workflow, the prerequisites, the people involved.

✓ No commitment
✓ Reply within one business day

We’ll use these details to prepare and respond to your request. We don’t send marketing messages unless you ask for them.