14-May-2026 - Sync members directly from Ramblers' Salesforce (#254)

One change in commit affd148.

Sync members from the Salesforce member API (#254)

What's new

Areas with several groups

If your site covers more than one group, the Salesforce connection handles them all. The settings page reads your group codes from the Area & Group settings and gives each one its own API key field and its own Test connection button, so you can confirm every group is reachable individually. A sync then pulls members for every configured group code in turn, and the sync log reports each group separately - member count, timing and any errors - so you can see exactly how each group fared.

Marketing consent

A second tick-box, granular consent, controls how much marketing-permission detail is pulled in:

Note: This is a demo toggle while the wider consent design is being finalised - tracked in #209.

Keeping Salesforce up to date when someone unsubscribes

When a member fully opts out of emails - either by dropping their last subscription, or by being blocked at the account level - that opt-out is now sent back to Salesforce, so the central member record stays accurate. Partial opt-outs, where the member is still subscribed to something, stay local and are not sent.

If a Salesforce update ever fails, the member's local unsubscribe still goes through as normal, and the failure is recorded in the audit log alongside the unsubscribe. No silent failures.

Who is affected

No member or committee member sees any change unless an admin sets up and enables the Salesforce connection - it is off by default. This is groundwork for when Ramblers' Salesforce member API is available; see #209 for the agreed API.

Screenshot of new Salesforce System Settings sub-tab