Marketing

The Marketing workspace connects CBSmembers to an email marketing service (MailChimp for now) so you can keep your mailing audience in step with your membership — automatically, and without exporting spreadsheets by hand.

It's reached from the megaphone/mail icon on the left activity bar, and is only visible to staff who hold the Manage marketing permission (granted in Org Settings → Users & Access).

Marketing is a separate channel from the Mail Sender. The Mail Sender is for transactional post — statements, AGM notices, dividend letters. Marketing is for the society's informal story — newsletters, updates, supporter appeals. The two never share a send path, so a marketing unsubscribe can never block a statement or a legal notice.

How it fits together

CBSmembers mirrors MailChimp's own structure, so the words mean the same in both places:

Layer What it is
Connection One mail-partner login — a provider (e.g. MailChimp) plus its API key. A society can have more than one.
Audience A contact pool inside a connection. A MailChimp account can hold several; you choose which to sync.
Tag A label within an audience — your segment (e.g. "Newsletter"). Members join a tag by a query; non-members are added by hand.
Contact A person in an audience. A member has a CBSmembers member record; a non-member is a standalone contact (newsletter signup, supporter, ex-member).

The workspace has five tabs — Synchronise · Members · Non-Members · Tags · Setup — that all operate on the audience shown top-right. The daily-use tabs sit on the left and the configure-once ones on the right, so once an audience is set up the workspace opens on Synchronise. If you only have one connection and one audience (the usual case), there's no picker; it just opens on it.

Setup — connect a provider

Open the Setup tab and click + New connection:

  • Name — a label for you, e.g. "Stockwood MailChimp".
  • Provider — MailChimp.
  • API key — paste your MailChimp API key (it ends in -us21 or similar). The key is stored encrypted and never shown again — leave it blank when editing to keep the existing one.
  • Server prefix — usually detected automatically from the key.

Click Test connection. CBSmembers confirms the key works and lists the account's audiences. Click Add next to each audience you want to sync; they appear under Synced. Use Remove to stop syncing one.

Getting a MailChimp API key

In MailChimp: profile menu → Account & billing → Extras → API keys → Create A Key. Copy it straight away. The chunk after the dash is the datacentre — CBSmembers detects it for you.

Tags — define your segments

A Tag is the segment that gets applied as a MailChimp tag on sync. On the Tags tab, click + New tag:

  • Tag name — this is the MailChimp tag (e.g. "Newsletter").
  • Include Members — tick this and choose a saved member query (e.g. Members in Postcode Area) to pull members in automatically; fill any parameters it asks for. Leave it unticked for a manual tag — one filled only by hand-picked non-members (e.g. a "Non-members" tag).
  • Enabled — whether the tag is active.

Membership is query-driven for members: you never add a member to a tag by hand — the query includes them automatically.

Members

The Members tab shows everyone in the audience who's a member, matched by your tags' queries, as a sortable grid (NAME · EMAIL · TAGS · STATUS). It's read-only — member details (name, email, address) are owned by the member record, so to change them click Go to member to jump straight to that member's screen.

  • A status-breakdown card sits at the top: a Total tile plus one per MailChimp status, with cleaned / unsubscribed highlighted amber as the ones that need attention.
  • A SHOW filter narrows the grid to a single status — e.g. SHOW: cleaned isolates members whose address has bounced, so you can chase or correct them.
  • A search box filters as you type across name, email, tags and status — handy for finding one person in a large audience.
  • CSV / Excel export the consented audience (members and non-members), ready to upload elsewhere if you ever need to.
  • The status column shows each contact's MailChimp subscribe status. Anyone unsubscribed is suppressed and dropped from the export.

Non-Members

The Non-Members tab is where you manage standalone contacts — newsletter signups, supporters, ex-members — that aren't CBSmembers members. It mirrors the Members tab: a status-breakdown card up top, a SHOW status filter, a search box (name · email · tags · phone · status), and a sortable grid (NAME · EMAIL · TAGS · STATUS).

To add one, click + New contact. To edit one, double-click the row (or use its Edit button) — a pop-up overlay opens with the contact's details and tag tick-boxes; Save applies, Cancel backs out. Each ticked tag is applied on the next sync.

Bulk tidy-up

After a Fetch pulls in a large audience, the Non-Members tab can hold hundreds of contacts that need sorting. The bulk button below the grid is status-aware, so it always offers the safe action for what you're looking at:

  • Filter to subscribed or pending and it reads "Confirm N for review" — a one-click way to accept fetched subscribers as genuine non-member contacts (it clears their needs-review flag without ever offering to delete a live subscriber). The button hides once none are left to confirm.
  • Filter to unsubscribed or cleaned and it reads "Delete N shown…" — clearing the whole dead set in one go, behind a confirm.

Deleting (whether one contact or a bulk set) archives each in MailChimp and removes the local record, so they won't reappear on the next Fetch. If they'd unsubscribed, MailChimp keeps that suppression — the opt-out is still honoured. Bulk Delete is only offered when you've filtered to a specific dead status, so you can never wipe the whole list by accident.

Synchronise — the two directions

This is where data moves between CBSmembers and the provider. The two directions are deliberately separate buttons:

  • Fetch … Contacts (provider → CBSmembers) — pulls the audience in: subscribe-statuses, unsubscribes, and any contacts added MailChimp-side. Run it whenever you want the latest picture — it's safe to repeat. Contacts it can't match to a member appear in the review list to resolve (below).
  • Push Contacts to … (CBSmembers → provider) — sends your members and non-members out, applying each one's tags. If MailChimp rejects any contacts, the push doesn't just say "N errored" — it lists which contacts failed and why (e.g. invalid email, or in a compliance state and cannot be subscribed) in a collapsible panel, so you can find and fix the bad records. On a large audience the push may report "Submitted N contacts — still processing; Fetch again to confirm": MailChimp finishes the batch in the background, so just Fetch again a moment later to see the result.

Good habit: Fetch before you Push. Fetching first brings in the latest opt-outs, so a Push never re-contacts someone who just unsubscribed.

Reconciling unmatched contacts

A Fetch sorts every contact into one of three buckets. The third — matched no member — lands in the review list. For each, choose:

  • Keep as non-member — a genuine signup/supporter; it stays as a non-member contact.
  • Link to member — it's actually a member under a different or old email. Pick the suggested member (CBSmembers fuzzy-matches by name), and optionally tick to adopt that email onto the member record.
  • Ignore — junk; it's dropped.

Tags found in MailChimp

If a Fetch finds tags in MailChimp that aren't defined in CBSmembers, a collapsible panel appears, leading with a count (so a cluttered audience doesn't fill the screen). Expand it to review them — each has an Add button that creates a matching manual tag here, so the two lists stay honest. If they're not tags you want — just clutter — clean them up with Manage MailChimp Tags instead (below).

Manage MailChimp Tags — bulk cleanup

Audiences sometimes accumulate stray tags — most often hundreds of one-tag-per-row tags left behind by a spreadsheet someone imported straight into MailChimp (e.g. Share Offer 2023/100, Share Offer 2023/101, …). The Manage MailChimp Tags… button on the Synchronise tab is the cleanup tool:

  • Every tag in the audience is listed with its contact count.
  • Type in the filter box to narrow down — e.g. Share Offer 20 to isolate one family — then Select all shown.
  • Click Delete … selected, confirm, and they're removed.

Deleting a tag removes the label only — the contacts themselves are never deleted, and any genuine campaign tags you didn't select are left untouched. Clearing out junk tags also makes Fetch and Push noticeably faster, since there's less for them to carry back and forth.

Compliance — what's built in

  • A marketing unsubscribe never blocks transactional post. Marketing and the Mail Sender are separate channels by construction.
  • An opt-out is never undone by CBSmembers. A Push only ever adds a contact (it uses MailChimp's "status if new"), so it can't resubscribe someone who unsubscribed. Suppression is sticky and survives a member being re-added or even deleted.
  • Status follows the person. If a member changes their email, the old address is archived and their status carries to the new one — an email change can't silently re-subscribe an opt-out.
  • Consent is assumed at signup, purpose-limited to the society's informal story. If your society requires explicit opt-in, tick Require explicit opt-in on the connection and MailChimp's own double-opt-in handles confirmation.

Permissions

The whole workspace is gated by the Manage marketing resource. Grant it in Org Settings → Users & Access to whoever should manage the society's mailing audience.