-
Notifications
You must be signed in to change notification settings - Fork 13
Use Cases
This document was created during the November 2022 Sprint in San Francisco.
MCR = Membership Contact Role
When a new Membership record is created for a household account, do the following steps:
-
Copy the membership Start Date, End Date and Status to the account fields. This should be done in the Membership after-save flow.
-
Create MCR records with Start Date, End Date, Status, and Type fields populated. If the Membership type is Household, then create an MCR for all contacts in the household. If the type is Individual, create an MCR for the household's primary contact only. This should be done in the Membership after-save flow.
In the account, populate the Primary Membership lookup field UNLESS the "Disable Primary Account" checkbox is ticked in the Membership Setting custom metadata.
On the primary contact, populate the Primary Membership lookup field UNLESS the "Disable Primary Contact" checkbox is ticked in the Membership Setting custom metadata.
When a new Membership record is created for an organization account, do the following steps:
-
Copy the membership Start Date, End Date and Status to the account fields. This should be done in the Membership after-save flow.
-
Create MCR records for all active contacts in the organization account. Populate the Start Date, End Date, Status, and Type fields.
On the account, populate the Primary Membership lookup field UNLESS the "Disable Primary Account" checkbox is ticked in the Membership Setting custom metadata.
When the following fields are modified in a membership record:
- Start Date
- End Date
- Status
It should update the corresponding fields on the related account, UNLESS the "Disable Primary Account" checkbox is ticked in the Membership Setting custom metadata.
It should update the corresponding fields on the Membership Contact Role records.
The Lapse Period (in days) is defined in the Membership Setting custom metadata in a record named "Default".
A scheduled Batch Apex should run nightly to find the following categories of non-lifetime memberships:
- Status = Current and End Date < today's date
- Status = Lapsed and End Date < today's date + lapse period
The batch does the following:
- Update the membership records' Status field to Lapsed or Former depending on the conditions
Note: The Membership automation above will handle the account and MCR updates.
- When a Contact is added to the household account, create an MCR. This is done in the Contact after-save flow.
- When a Contact is removed from the household account, set the MCR Status = Former and the End Date = today's date. This done in the Contact after-save flow.
- When a Contact is added to the organization account, create an MCR. This is done in the Contact after-save flow.
- When a Contact is removed from the Organization account, set the MCR Status = Former and the End Date = today's date. This done in the Contact after-save flow.
- When an Affiliation status changes to "Former" and the contact has an active MCR with the Account, then set the MCR End Date = today's date and the Status = Former.
- When an Affiliation is deleted, and the Status = Current and the contact has an active MCR with the Account, then set the MCR End Date = today's date and the Status = Former.
When a payer buys a membership for another person, the Membership record is linked to the recipient account, not the payer's account.
On the membership, the Opportunity field should be populated with the paying opportunity. This represents the only link between the payer and the membership.