Update Passes

Pass updates are an integral piece of your mobile wallet campaign strategy. Once a wallet pass is installed on a user’s device, send content updates that make sense for the campaign’s lifecycle.

Updating Pass Information

After a user installs a pass, you can seamlessly update the pass as the user accrues loyalty points, uses some of their gift card balance, or event information changes, so that your users are always up to date.

By updating an already-installed pass, you help ensure that your customers never miss their gates, and that they take advantage of the loyalty programs that bring them back to your business.

When you update passes and adaptive links, you only need to provide the individual fields that you want to update.

PUT /v1/pass/12345/ HTTP/1.1
Authorization: Basic <authorization string>
Content-type: application/json

{
  "fields": {
    "points": {
      "value": "98765"
    }
  }
}

Update Passes After Updating a Template

If you change your template, you can “publish” an update to your template to update passes for all of your passholders. This makes it easy to update the look and feel of your passes with a single operation. You can also update fields on your template when you publish changes, but you should take care when updating fields that might be personalized. If you update a field that has already been personalized for individual passholders, you’ll erase passholders' personalized information when you publish changes to your template.

 Note

If you add or remove fields from a template, Airship automatically publishes your changes to relevant passes generated from a template

Learn how to publish changes to templates.

Updating Flights and Events

You can manage flights and events independently of boarding passes and event tickets respectively, making it much easier to update passholders when their flights or events change.

You can also use passGroups to update a group of flights or events — e.g. for a flight with multiple stops.

Update a flight
PUT /v1/flights/project/<projectId>/<flightId> HTTP/1.1
Authorization: Basic <authorization string>
Content-Type: application/json

{
    "fields": {
        "departureGate": {
            "value": "21"
        },
        "boardingTime": {
            "value": "2018-07-30T09:20:00"
        },
        "departureTime": {
            "value": "2018-07-30T09:45:00"
        },
        "arrivalTime": {
            "value": "2018-07-30T11:45:00"
        },
        "passGroups": [
            "sfo-pdx-20180730"
        ]
    }
}

Tags and Pass Organization

You can assign tags to passes, to organize groups of passes and passholders. You can target tags in the wallet API to change a group of passes.

Update passes by tag
PUT /v1/tag/tag-name/passes HTTP/1.1
Authorization: Basic <Base64 key>
Content-Type: application/json
Api-Revision: 1.2

{
    "fields": {
        "secondary1": {
            "value": "12/31/2013"
        },
        "primary1": {
            "value": "$2 Off"
        }
    }
}

After users install your pass, update the pass with values and notifications relevant to where users are in the campaign’s lifecycle.

Pass Type: Loyalty

Scenario: Tier Upgrade

StepUpdate the pass when…New content for the pass
1A user hits a new point tier.Point balanceStrip imageNotification: New point balance and tier status
2A user hits the next point tier — go back to step 1!

Pass Type: Coupon

Scenario: Sale offers

StepUpdate the pass when…New content for the pass
1A sale startsValidate the pass
2Pass expiration is impendingNotification: Warning about expiration, which drives people to stores
3A sale endsExpire the passAdd image that tells the user to watch for new offers
4You have a new offer — go back to step 1!

Pass Type: Event Ticket

Scenario: Event details: session content, address, resources, contest results

StepUpdate the pass when…New content for the pass
1A user’s next session is starting soonNotification: Upcoming session time and location, and contest enrollment
2A user’s session endedNotification: Attendance thank you, and contest results
3Next session — go back to step 1!
4You have an announcementNotification: Festival news, or about events related to previously attended sessions
5You have a VIP eventInvitation to VIP event

Use Cases

Simple

  • Loyalty: Upgraded tier
  • Coupon: Sales offer
  • Gift Card: Balance change
  • Member Card: Renewal reminder
  • Event Ticket: Seat assignment
  • Boarding Pass: Gate change

Common

  • Send alerts and additional information based on tags or location changes.
  • Modify values, with or without an alert.
  • Add generic locations or beacons to a pass via the UI (up to ten locations or beacons).

Complex

  • Personalize with user-specific location or beacons tied to the pass (not supported by all passes).
  • Add/remove segmentation properties for a pass.
  • Change barcode type and/or value.

Considerations

Consider these three things for each update, and you’ll know your passholders are getting the right changes.

  1. AUDIENCE: Make sure you are updating via the appropriate endpoint.
  2. GENERIC vs. PERSONALIZED
    • Are you updating a generic pass, where all passholders have the same content? Go for it.
    • Are you updating personalized passes? If so, make sure you aren’t replacing values for all passholders that are passholder-specific.
  3. TEST: Use a test template and confirm the changes before updating your users' passes. Already confident with test templates? You may want to use a test tag instead.

See API: Passes: Update Pass for the full documentation.