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
Marketing team drafts an announcement and submits it for approval.
Source: Internal form / CMS event
Workflow steps
- Twenty CRMDraftMarketing draft captured in Twenty CRM with version + author.
- Twenty CRM + n8nAudience filterFilter applied — consented customers matching the topic.
- Twenty CRM + n8nApproval queueDraft sits in the approval queue; nothing sends without sign-off.
- n8nBranchApprove / reject / skip — each with a clear audit entry.
- Listmonk + TwilioSendApproved branch sends via the configured channel; STOP keywords respected.
Tools used
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.
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.
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.
- Configure the approval state in Twenty CRM (draft → approved → sent).
- Define the audience filter — consent + topic match — in the n8n workflow.
- Add STOP / unsubscribe handling so customers can opt out.
- 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.
More demos you can run in your browser
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.