Communications · Planning example

Announcements should never be sent by accident.

Mass messages to customers deserve a clear approval path. This demo shows the approve / reject / skip branches with a full audit trail.

What triggers this workflow

Announcement drafted

Marketing team drafts an announcement and submits it for approval.

Source: Internal form / CMS event

Workflow steps

  1. Twenty CRM
    Draft
    Marketing draft captured in Twenty CRM with version + author.
  2. Twenty CRM + n8n
    Audience filter
    Filter applied — consented customers matching the topic.
  3. Twenty CRM + n8n
    Approval queue
    Draft sits in the approval queue; nothing sends without sign-off.
  4. n8n
    Branch
    Approve / reject / skip — each with a clear audit entry.
  5. Listmonk + Twilio
    Send
    Approved branch sends via the configured channel; STOP keywords respected.

Tools used

Twenty CRM
Draft, approval state, audit trail
n8n
Audience filter, approval routing
Listmonk
Email send
Twilio
SMS send
Chatwoot
Approver notifications

Human handoff

A manager always approves

No announcement goes out without a documented approval. Rejected drafts return to the editor with the reason attached; skipped drafts are archived with the rationale.

  • Announcement affects policy or pricing
  • Audience is larger than the agreed threshold
  • Announcement includes a regulatory disclosure

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: Approve

1. Audience filter applied

Audience: active customers. Topic: fee change. Channel: email.

2. Approval-gated send

Drafts sit in an approval queue until a manager approves. Nothing goes out without sign-off.

Email
Subject: Important update from Bright Minds Tutoring

Hi there,

A short update on fee change. Read the full change here: brightminds.example/notice

Reply STOP at any time to opt out of non-essential messages.

— Bright Minds Tutoring

Send logged with version + approver. Reply STOP keyword processed by Chatwoot for SMS / by Listmonk for email.

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

Setup for production

Wiring it for production

Live deployment needs approval routing, audit trail and consent flags.

  1. Configure the approval state in Twenty CRM (draft → approved → sent).
  2. Define the audience filter — consent + topic match — in the n8n workflow.
  3. Add STOP / unsubscribe handling so customers can opt out.
  4. Document the audit-trail fields (version, author, approver, timestamp).

Production prerequisites

  • Approver role defined internally
  • Audience filter sign-off (consent + topic match)
  • STOP keyword handler in place

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

Questions

Could an announcement go out by accident?

No. Every announcement needs a manager approval in Twenty CRM; the send only fires after the approval state is recorded.

Can customers opt out?

Yes. STOP / unsubscribe replies write the opt-out to Twenty CRM and remove the contact from future announcements.

Where this fits

Approval-Gated Announcements across the platform

Want this approval-gated announcements 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.