The Standard Membership Card will display information for the logged in user based on the Membership Organization that you have designated. It will pull their name, level, status, and expiration date directly from Tessitura. For instructions on the default set up see How do I set up the Standard Membership Card?
However, if you have additional needs you can set up a Custom Membership Card. This allows you to customize the data that is displayed on the Membership Card using a Custom Procedure that you create in Tessitura.
In the image below the fields that you can customize are highlighted. You can also customize the value in the barcode and the format (QR Code or Barcode).
Examples
Here are a few examples of how the Customizable Membership Card can be used:
- At a museum, display the number of adults, youths, and guests that are allowed entry with the member that is logged into the app.
- Display the balance currently available on the members subscriber rewards card.
How it Works
- You create a Custom Procedure in Tessitura that accepts a constituent ID and returns the data in the format as described below.
- When displaying the membership card, InstantEncore will get the data from the Custom Procedure using the Custom/Execute/MultipleResultSets REST API endpoint.
Step 1: Create a Custom Procedure
In Tessitura you need to create and register a custom procedure. Local stored procedures are registered in TR_LOCAL_PROCEDURE.
The technical details for creating a custom procedure are outside the scope of this article. If you do not have a team member with experience creating custom procedure we recommend reaching out to Tessitura consulting for help.
Inputs
The procedure will receive the following inputs:
| Field | Type | Description |
|---|---|---|
| constituent_id | string | ID of the logged in constituent. |
Outputs
The procedure should return the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
| barcode_text | string | y | Text to be encoded in the barcode or qr code. |
| render_mode | string | y |
|
| description | string | Text to be displayed at the bottom of the membership card. | |
| image | string | Url to an image that will be displayed at the top of the membership card. | |
| name | string | Text to go in the Name field of the membership card. Often is the constituent's name, but could be used for other purposes, too. | |
| level | string | Text to go in the Level field of the membership card. Often is the constituent's membership level, but could be used for other purposes, too. | |
| status | string | Text to go in the Status field of the membership card. Often is the constituent's membership status, but could be used for other purposes, too. | |
| expiration_date | string | Text to go in the Expiration field of the membership card. Often is the date the membership expires, but could be used for other purposes, too. | |
| expires_label | string | Text before the expiration_date. Defaults to "Expires" if not provided. | |
| cls | string | For future use: CSS selector that will be included in the HTML for the membership card. Can be used to customize the style for different cls values. | |
| status_cls | string |
If provided, this string is appended to Recommended that this value is a single word, all lowercase. For example, if the
.membership-card__status-container--expired {
background-color: red;
color: white;
}
|
Example:
{
"barcode-text": "12345",
"render_mode": "barcode",
"description": "Balance: $120.00",
"image": "https://somedomain.com/image.jpg",
"name": "Jane Smith",
"level": "Subscriber",
"status": null,
"expiration_date": null,
"expires_label": "Expires",
"cls": "subscriber",
"status_cls": "active"
}Step 2: Configure the App
After creating the Custom Procedure you will need to configure the app to use it. Log into instantencore.com and go to the Membership Card Settings (Control Panel > InstantApps > Tessitura > Membership Card Settings).
- Type: Select "Custom".
- Procedure Name: Input the name of the custom procedure that you created.
- Test the procedure by input the email or constituent ID of a constituent and clicking the Test button. Verify that the data is as you expect for various constituents.
- Click Save Changes to save the settings.
Displaying individual member barcodes
If you'd like to have a carousel of barcodes for the individuals in a membership, add an items array to the returned fields. Due to limitations in the Tessitura API, the items array needs to e returned array of item objects encoded as a string.
Item fields
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | y | ID of the item. Typically the constituents ID. |
| barcode_text | string | y | Text to be encoded in the barcode or qr code. |
| title | string | y | Text to go in the title field for the item. |
| description | string | Text to go in the description field for the item. | |
| affiliation_id | number | y | Affiliation ID. This is used to add a specific item to Apple/Google Wallet. |
Example:
{
"barcode-text": "234567",
"render_mode": "qr_code",
"description": "Thank you for being a WA Museum member.",
"image": "https://somedomain.com/image.jpg",
"name": "Schumacher Household",
"level": "Directors",
"status": null,
"expiration_date": null,
"expires_label": "Expires",
"cls": "subscriber",
"status_cls": "expired",
"items": "[
{
\"id\": \"34567\"
\"barcode_text\": \"234567\"
\"title\": \"Evan Schumacher\"
\"description\": \"Adult\"
\"affiliation_id\": \"8978123\"
},
{
\"id\": \"70123\"
\"barcode_text\": \"C0070123\"
\"title\": \"Cadel Schumacher\"
\"description\": \"Child - 10 yo\"
\"affiliation_id\": \"2131243234\"
}
]"
}