Apple Automatic Loyalty Enrollment Setup

Automatic Loyalty Enrollments (ALE) utilizes Apple’s "Personalizable" pass type. By pulling directly from the customer’s iCloud “Me” card, the pass captures a customer’s data automatically, preventing potential customer churn during the enrollment process.

In this guide, we’ll discuss the ALE customer flow, data flow, and how to enable ALE.

Before you get started: Automatic loyalty enrollment can only be used with NFC-enabled passes. This is an Apple requirement. More information on enabling NFC for your campaigns here.

Pass Addition Flow

Before you enable this feature, it’s important to understand the steps a new loyalty member takes when adding an ALE-enabled loyalty pass to their Apple Wallet. Below you can see the journey through screenshots:

Notice that in the second step, the user is presented with a blank pass. Even though they haven’t technically downloaded the pass, the system has already created random Vibes wallet pass identifier, also known as the wallet_item_id. However, this information is unavailable until the terms & conditions are accepted, at which point it will be passed along to the endpoint of your choosing.

Name, Zip Code, Email, and Phone are the fields included on the sign-up form provided by Apple. Apple recommends that you allow customers to leave any (and all) fields blank if they so choose. We suggest providing a URL on the back of the pass that links to your traditional loyalty sign up website so that users who completely abstain have a route to add this information if they change their mind.

See the final pass below, which becomes available inside the customer's Apple Wallet once the above steps have been completed:

This example pass includes a loyalty points balance token value, a token value for the NFC tap or barcode scan, and the customer's personal information provided in the initial form. This example assumes you have updated this specific pass via the Wallet Campaign API immediately after receiving the customer information payload from Vibes.

Data Flow

Once the end user accepts the Terms & Conditions, Vibes will send the data from the “Me” card and the wallet_item_id to the API endpoint of your choosing.

Below is an example payload you will receive from Vibes when a customer accepts the T&C. The "wallet_id" is the campaign Smartlink token value, and the "wallet_item_id" is the wallet pass UUID - in this use ALE case, that would be the random guid sent to your loyalty endpoint.

{ "wallet_id"=>"99e8ko", "wallet_item_id"=>"81f2fe36-27d6-4eac-b5e8-eeb1c64f95ef", "emailAddress"=>"[email protected]", "givenName"=>"John", "fullName"=>"John Appleseed", "postalCode"=>"60614" }

Once the data is accepted, your system will need to make an API call that updates any relevant loyalty account data. The most important value to include is the customer’s loyalty account number, which will be used to update the token value used in the NFC message. More details on enabling NFC for your campaigns here.

In addition, we suggest including a token value to indicate if this customer is a new or existing loyalty member. You may need reporting information for any new loyalty member added via an Apple Pay point-of-sale terminal for billing purposes; this is not required for an ALE loyalty pass distributed via another medium.

Below is an example of a call to update the wallet item. Learn more about updating mobile wallet passes in the Wallet Campaign API page.

PUT /companies/:company_key/campaigns/wallet/:wallet_id/items/:wallet_item_id
    "tokens": {
        "loyalty_account_number": "55379ab3-a733-4869-a126-6310f65d615c",
        "last_name": "Ruppert",
        "ale_customer_status": "new"
        "first_name": "Patrick",
        "point_balance": "50",
        "available_rewards": "Sign up reward available! Free guac unlocked.",
        "current_reward_content": "Side of Guacamole"
    "passbook": {
        "notification": "Sign up reward earned! Free guac available now."

How to Enable Automatic Loyalty Enrollment

If you’d like to enable automatic loyalty enrollment flow, follow the steps below:

  1. Create a loyalty pass campaign with an iOS pass configured in the campaign flow.
  2. Enable your Vibes platform account to use NFC.
  3. Contact Customer Care and inform them that you would like to use ALE. Please provide them with the following information:
Required ALE DetailsTypesDetails
CampaignURL / NamePlease provide the wallet campaign name as well as the SmartLink URL.
Base URLstringPlease provide the URL for your loyalty endpoint. This the location where Vibes will send you the payload including the customer's Me Card data, as well as the wallet pass UUID and campaign identifiers.
UsernamestringCustomer Care will provide instructions on how to safely transfer your credentials to Vibes.
PasswordstringCustomer Care will provide instructions on how to safely transfer your credentials to Vibes.
DescriptionstringThe content that will appear above the Me Card form, below the "Add Personal Info" label.
Terms & ConditionsstringThis content will be shown to the customer before they agree to accept the conditions for saving the pass to their Apple Wallet.

Automatic Loyalty Enrollment vs. Known Loyalty Members

While ALE is great for enrolling new members, you may also want to use it to deliver NFC-enabled loyalty passes to your existing customers. Since they already are enrolled, these customers don’t need to follow the whole ALE flow, and instead simply need an NFC pass populated with their account details and rewards.

To send your existing loyalty members an NFC enabled loyalty pass without triggering the ALE form flow, create a URL parameter on the SmartLink that contains the NFC message's token field value. This value will most likely be the customer's loyalty account number or whatever personal identifier is used in your CRM or marketing database.

Example URL that would trigger the ALE flow:

Example URL that would not trigger the ALE flow:[loyalty_account_number]=55379ab3-a733-4869-a126-6310f65d615c

In platform, the token "loyalty_account_number" would need to be included inside of the "NFC message" field: