Prerequisites
You have a PassKit account.
You have set-up a basic Membership or Loyalty program.
Outcomes
After finishing this article you will:
understand how-to add custom fields to your membership or loyalty program.
be able to create and update individual member records with custom data using the API, Admin Panel, or PassKit Data Collection pages.
Instruction Video
This video shows you how to setup your PassKit Loyalty program with custom fields, and issue / update passes with custom data.
Why use PassKit the PassKit Membership API?
PassKit supports Membership & Loyalty type projects for you to manage your members.ย
We have taken our years of experience in deploying and managing Digital Loyalty & Membership Programs for Apple Wallet and Google Pay, and incorporated all of this knowledge into a dedicated Membership API.
The Membership API is structured and designed to align with existing business processes and logic for managing loyalty and memberships.
The Membership API consists of 3 key components:
Program: contains the business logic of your program, and is the highest level element in the Membership API hierarchy. At this level you can set details like the Apple Certificate to use, points settings, distribution settings, integrations, or setup web hook callbacks.
Tier: tiers belong to a program. A program needs to contain at least 1 tier. Tiers define the different levels that you can have in a membership or loyalty program (if multi-level). A tier contains the design for your loyalty or membership card. For example, you can have 1 tier for Bronze, 1 for Silver and 1 for Gold. Each tier can have a different design, with different colours, images & different GPS / Beacon details. A tier also allows you to set the expiry-date settings.
Member: this is the lowest level element in the API, and represents an individual member in your program. This is where you define the individual member data values. A member record can hold fields like points, PII -or metadata.
Data Field Types
There are 3 types of data fields that can be used when setting up your program via our GUI and / or API. These fields define how you model your member records, and dictate what data you set up and collect for your individual members.
Predefined Fields:
Fields that are specific to the Membership Business Logic. These fields are used within PassKit to manage dedicated loyalty / membership logic. For example, tier name, points, secondary points, etc. Use these fields where possible; they will provide a richer experience for you when managing your members.
Predefined fields available on a member record:
External ID
Grouping ID
Points
Secondary Points
Tier Points
Tier
Expiry Date
PII Fields:
PII fields contain Personal Identifiable Data. All PII data is stored encrypted. Because of this, search functionality on PII fields is limited and only supports exact matches.
PII fields available on a member record:
Surname
Forename
Other names
Salutation
Suffix
Display name
Gender
Date of birth
Email address
Mobile number
Metadata Fields:
Metadata contains any custom data that isn't covered in the predefined or PII fields. This is where any of your custom fields go.
Member Object
See below pseudo code JSON object for how above data fields are structure in the Member Object. For full object details and descriptions, have a look at the documentation.
{
"programId": "6Q0zoG7PYPaPnIxKTW57bY",
"tierId": "bronze",
// Predefined fields: root level
"externalId": "ABC",
"points": 1000,
"secondaryPoints": 2000,
"expiryDate": "2020-05-04T18:10:50Z",
"person": {
// PII fields go here
"displayName": "Patrick Kosterman",
"emailAddress": "patrick@passkit.com"
},
"metaData": {
// Metadata fields go here
"myCustomKey": "My custom value",
"favouriteCoffee": "Latte",
}
}
The field keys for the fields in your Pass Design can be found in the designer, in the field details at the bottom:
After you enrol your member using our API or SDK, you get back a unique PassKit ID. To redirect your customers to our smart landing pages that do the Device detection and render the pass for your customer; you can replace the PassKit ID in the following link:
https://pub1.pskt.io/{{PASSKIT_ID}}
โ