Not agreed. Screens illustrate proposals in docs/ and .scratch/ , and invent the states those documents leave open.

Back to your communications

Sign up for leisure centre offers

Membership offers and promotions at Camden leisure centres.

Promoting paid leisure services. Direct marketing.

You can stop these at any time, and it will be as easy to stop as it was to start. We will only use your details for this.

How should we send these?
What we record when you sign up

The wording you agreed to and its version, when you agreed, how you were asked, the channel you picked and why it was that channel. For a consent topic like this one, that record is the consent.

Notice version v1.

Behind the scenes

Property names follow docs/profile-communication-subscriptions.md, which says its own spelling is illustrative. The shape is what was decided.

Usable destinations

email
usable
sms
usable
post
usable
in-app
usable

Seeded by seedChannel() against this fixture — §4.1, the one communication rule with real logic behind it here.

Catalogue entry

topicId
leisure.member-offers
serviceOwner
Leisure
basis
consent
supportedChannels
email, sms
fallbackChannel
email
noticeVersion
v1
status
active
selfServe
true
withdrawable
true — derived, never stored

Subscriptions

subscriptionId
sub-ct-billing
catalogueTopicId
council-tax.billing-and-recovery
state
active
basisAtOptIn
statutory
noticeVersionAgreed
— nothing was agreed
channel
post
channelSource
catalogue-fallback
createdBy
Service
captureChannel
service-api
createdAt
2026-06-29T08:02:00Z
context
{"originatingService":"council-tax","accountReference":"CT-4471902"}
deliveryIssue
none
subscriptionId
sub-ct-bill-ready
catalogueTopicId
council-tax.bill-ready-alert
state
active
basisAtOptIn
public-task
noticeVersionAgreed
v1
channel
sms
channelSource
preferred-seed
createdBy
Citizen
captureChannel
my-account
createdAt
2026-07-02T09:20:00Z
deliveryIssue
none
subscriptionId
sub-ct-direct-debit
catalogueTopicId
council-tax.direct-debit-reminder
state
active
basisAtOptIn
public-task
noticeVersionAgreed
v1
channel
email
channelSource
explicit
createdBy
Citizen
captureChannel
my-account
createdAt
2026-07-02T09:21:00Z
deliveryIssue
none
subscriptionId
sub-ct-support
catalogueTopicId
council-tax.support-and-discounts
state
active
basisAtOptIn
consent
noticeVersionAgreed
v2
channel
email
channelSource
explicit
createdBy
Citizen
captureChannel
my-account
createdAt
2026-07-02T09:22:00Z
deliveryIssue
none
subscriptionId
sub-libraries
catalogueTopicId
libraries.newsletter
state
active
basisAtOptIn
consent
noticeVersionAgreed
v3
channel
email
channelSource
explicit
createdBy
Citizen
captureChannel
my-account
createdAt
2026-07-14T18:40:00Z
deliveryIssue
none
subscriptionId
sub-highways
catalogueTopicId
highways.local-disruption
state
active
basisAtOptIn
public-task
noticeVersionAgreed
v1
channel
sms
channelSource
preferred-seed
createdBy
Citizen
captureChannel
my-account
createdAt
2026-07-20T11:05:00Z
context
{"scope":"address","addressValueId":"ad-ctax"}
deliveryIssue
none

Not modelled

  • Expiry, withdrawal history and officer-captured consent. Examples 6.3, 6.6, 6.7 and 6.8 are not fixtures, so nothing renders them.
  • What happens to a Subscription when the contact value it depends on is removed. Phase 1 sends to the primary confirmed destination for the channel, so there are no per-Subscription pointers to repair.
  • The material-change flow that forces re-opt-in. §5 lists the event; no owner and no journey exist for it.