Overview
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
E.g.:
Billing |
1234 Some St, Preston VIC |
Reminder |
jbloggs[at]gmail[dot]com |
|
0412345678 |
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.
Configuration
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