Customer subscription management

Donate to this project

Development Project Status: Under Discussion

Due date for completion of this stage: 
Project funding: 

You can donate money to this project by entering the amount above and clicking the 'Add to cart' button. In the Checkout process you can either choose to pay now (via Bank Transfer, Cheque or Pay Pal) or you can pledge the amount by choosing the 'Pledge a payment for a Development Project' method. If you make a pledge, then when we have 100% funding commitments, you will be notified by email and you can then action your payment. Note that development will not commence until all funds are received.

Project description: 


At present, subscriptions are managed by assigning contact purposes to a customer's contacts. e.g. a Reminder purpose can be assigned to a customer's email address so that they receive patient reminders via email.

Contact purposes are used to:

  • classify contacts (e.g. a phone number is a mobile)
  • indicate a subscription (e.g. use this contact for reminders)

The following purposes are provided:

  • Home - used to indicate a home phone number
  • Work - used to indicate a work phone number
  • Mobile - used to indicate a mobile phone number
  • Fax - used to indicate a fax number
  • Correspondence - used to denote that a location should be used for general correspondence
  • Postal - used to indicate a postal address. Unused
  • Reminder - used to indicate a contact should be used for patient reminders
  • Billing - used to indicate a location contact should be used for billing purposes

These can be extended by practices; e.g a Newsletter purpose could be assigned to a customer email contact to indicate that they wish to receive a newsletter via email.

This project will provide a Subscriptions Management window to make it easier to manage customer subscriptions, and provide a web API to allow customers to unsubscribe from particular notifications.

Subscriptions Management

To provide a clear overview of a customer's subscriptions, and to allow them to be changed, a new Subscriptions Management window will be provided. This will be launched via a Subscriptions button in Customers - Information

This will:

  • display available contact purposes, with the customer contact used for that purpose in a drop-down list. Selecting None in the drop-down removes the contact purpose from the contact.
  • support multiple contacts for some contact purposes
  • support custom ordering of the contact purposes


Billing 1234 Some St, Preston VIC
Reminder jbloggs[at]gmail[dot]com
Newsletter jbloggs[at]gmail[dot]com
Marketing None

Subscription API

A web API will be provided to allow individual subscriptions to be removed, given an encoded key containing the customer identifier and contact purpose.

The API will be password protected; it is not intended for direct use by clicking a link, but should instead be invoked by a customer portal.

A subscription:encode(customer, purpose) method will be provided so that reports can generate the key for an unsubscribe link.


The contact purposes available for subscription will be configurable, as will the contact types that they apply to.

This will be done via 2 new archetypes, lookup.subscriptions and lookupRelationship.subscriptionContactPurpose.

The lookup.subscriptions archetype links to available contact purposes using lookupRelationship.subscriptionContactPurpose.

The lookupRelationship.subscriptionContactPurpose archetype:

  • links to a lookup.contactPurpose
  • determines the order that they are displayed in

The lookup.contactPurpose archetype will be updated to enable the contacts that the purpose applies to, to be selected.

Related Projects

Syndicate content