This is an old revision of the document!
Table of Contents
Membership Validation
Protohaven memberships assume certain conditions apply for the membership to be valid. For instance: a Company Membership requires two or more individuals to belong to the same company.
A membership validation script runs every Wednesday morning via Cronicle that inspects all Neon CRM accounts and sends a list of all accounts that fail to meet the proper preconditions for their active memberships to the #membership-automation Discord channel. Links to Neon CRM are provided for each account in violation.
See protohaven_api/commands/finances.py in the protohaven_api GitHub repository for more details on the validation process.
The following sections describe each validation error in detail, along with steps to remedy the problem.
Abnormal zero-cost membership
This occurs when a membership that normally costs money (e.g. General Membership) instead has a $0 monthly fee. This is abnormal and should be resolved in one of two ways:
- If the zero-cost membership is intentional (e.g. a gifted membership period for departing staff) then the member's “Zero-Cost Membership OK Until Date” field should be set explicitly to the end of that gift period. Use YYYY-MM-DD format for this field, e.g. 2024-02-01 for Feb 1st, 2024.
- If the zero-cost membership is not intended, reach out to the member to set up autopayment for the membership, at the correct price (visible at https://www.protohaven.org/membership/ for most memberships).
Missing required 2+ members in company
All Company, Nonprofit, and Corporate Membership holders must belong to an organization with at least 2 members. If this validation error is raised:
- Browse to the account in Neon CRM, click Company Contacts, and check to see whether there were ever two members in the company or if it's just an orphaned employee.
- With context at hand, contact the active member and explain the situation, asking them whether they'd like to (re-)enroll another member into the company membership or shift their membership to a different type (e.g. General Membership).
- Assist the member in enrollment and membership changes so that there are either 2+ members in the company, or they no longer have a Company/Nonprofit/Corporate membership.
Missing required non-additional paid member in household
This validation error indicates that a member has an Additional Family Membership, but that their household in Neon CRM does not have anyone with a non-additional membership. In order to have an Additional membership, you must first have a “regular” membership in your household.
To resolve this error:
- Contact the Additional member and explain the situation, asking whether they would like to convert their additional membership into one of the regular memberships (e.g. General, Weekend, or Weeknight), add another regular membership for a different household member, or discontinue their membership to resolve the problem.
- Assist the member in converting/changing memberships to resolve the validation issue.
Multiple active memberships
Neon CRM does not require an account to hold exactly one membership - it happens that a member could be unintentionally paying for multiple memberships at the same time.
When this occurs, contact the member (usually via email) and ask them which membership they'd like to keep, and which one they'd like to cancel. Offer to pro-rate their membership for an amount of time matching the cost of double-payment.
Membership with no end date (infinite duration)
This validation error indicates that the active membership is indefinite; this is almost certainly a mistake as it's the equivalent of a single-cost lifetime membership.
To resolve this:
- Navigate to the account in Neon CRM, click on Memberships, then the active membership.
- Click the Edit button next to “Membership Info”
- Manually set the Term End Date field to a reasonable value (you can also try the Calculate button)
- Click “Save Changes”
- As a courtesy, let the member know (via email) that their membership had a configuration problem and that the renewal/end date is now correctly set.