Your membership system is always the source of truth. PassPlay syncs with your system so that we can provide membership cards, guest passes, benefits, and points instantly, and so that search, audiences, and campaigns can run against your membership data in the most performant way possible.
The sync process runs automatically in the background and, as much as possible, is intended to be a hands-off setup. For the most part there is nothing for you to manage.
What sync brings over
Each time PassPlay syncs a membership it refreshes:
The membership ID and the internal identifier your system uses for the record.
The membership type name and level, and the number admitted (and number of children, where your system supplies it).
The expiration date and whether the membership is currently active.
The primary member and all additional members, with their names, emails, and phone numbers.
The renewal date, for the systems that expose one.
Everything else in PassPlay (benefits, loyalty points, guest passes, campaigns) is owned by PassPlay and is never affected by a sync.
Membership types are matched by name: Sync stores the membership type name from your membership system. Associated details, card colors, and renewal links are determined by the matching entry in your membership types list. If a type name arrives that you haven’t set up in PassPlay, the membership still syncs, but it won’t pick up any of those type-level settings until a type with that name exists.
How sync runs
Membership systems differ in what their APIs can do, so PassPlay uses one of two approaches depending on your integration. Both are set up for you during onboarding.
Full membership roster
For systems that provide an API that can answer “what has changed since a particular date” (ACME, Altru, Bloomerang, NetForum, ClassLink, Outbound, newer Centaman instances, and the SFTP file feeds) PassPlay pulls the whole batch of changes in one pass.
Runs once a day, overnight.
Asks for everything updated since the last successful sync, with a slight overlap to prevent a membership record from slipping between two runs.
Creates memberships it hasn’t seen before and updates the ones it already has.
Only imports memberships that are active with a future expiration date. Depending on how your integration is set up, it may also be limited to the membership types you’ve configured in PassPlay.
Per-membership
Tessitura, Gateway Galaxy, and older Centaman instances don’t provide APIs to return a list of all memberships that have changed, so PassPlay syncs memberships one at a time, each on its own schedule. These are the same integrations described as sync-managed on the LookUp and bulk import page.
The practical difference: PassPlay can only refresh a membership it already knows about, so a brand-new membership arrives via LookUp, the SFTP membership import, your FindMy page, or a member looking themselves up in the app. From then on it refreshes on its own.
How often a membership refreshes depends on how close it is to expiring, because that’s when its data is most likely to change:
Membership state | Refreshes |
Active, expiring within 7 days | every 6 hours |
Active, expiring in 8-30 days | every 12 hours |
Active, expiring in 31+ days | daily |
Expired within the last 90 days | weekly |
Expired more than 90 days ago | on demand only |
An active membership that somehow hasn’t synced in 30 days is treated as overdue and picked up on the next pass. Calls are spaced a few seconds apart so a large roster stays within your membership system’s rate limits. For large organizations it’s normal for the queue to work through memberships over the course of hours rather than all at once.
Syncing something right now
If you have a membership that you want to get the latest information from into PassPlay, you don’t have to wait for the scheduled sync:
A single membership: open its details page and click Sync at the top of the details column. PassPlay queries your membership system immediately and reloads the page with whatever came back. The button appears for integrations that support looking up one membership on demand.
Membership(s) not synced with PassPlay yet: use LookUp.
A batch of memberships: use the CSV upload or SFTP import, where those are available to you.
Your whole roster: contact support and we can trigger a full sync for you.
Members also trigger syncs themselves. When someone looks up their membership in the app or on your FindMy page and PassPlay doesn’t have it yet, PassPlay queries your membership system live to get them synced right away.
Renewals
Detecting a renewal matters because it’s what drives the Membership Renewal trigger on your guest pass and benefit grants, and what records a Membership Renewed entry on the membership’s timeline.
PassPlay uses the renewal date from your membership system when it provides one. When it doesn’t, a renewal is inferred from the expiration date moving forward by about a month or more. That threshold is deliberate:
An expiration date that moves backward, or doesn’t move, is a correction rather than a renewal.
A few days’ grace-period extension isn’t a renewal either, and shouldn’t hand out another year of guest passes.
A membership PassPlay is seeing for the first time is never treated as a renewal, however far out its expiration date is.
Renewal grants are driven by sync, not by the calendar: A renewal is recognized when PassPlay next syncs that membership, not the moment it’s renewed in your system. For per-membership integrations that’s usually within hours of expiration (see the table above); for roster sync it’s the following overnight run.
This is important in cases like if a member renews at the desk and immediately asks about their new guest passes. You can use the Sync button on their details page to bring the renewal across right away and trigger any associated renewal grants.
What sync overwrites
Sync is one-directional for nearly every integration: your membership system’s data is always the source of truth.
Membership fields are rewritten from the source on every sync.
The member list is rebuilt on every sync.
Memberships that are no longer available
What happens when a membership is no longer returned by your membership system depends on your integration:
With per-membership sync, the membership is marked inactive in PassPlay and a Membership Expired entry is added to its timeline. It stays visible in your roster and its history is kept.
With roster sync, memberships that stop appearing in the feed are left alone unless your integration is configured to remove them. Some organizations do want lapsed memberships cleared out automatically; if you’re not sure which way yours is set up, ask support.
Either way, an inactive membership record is retained by PassPlay so that when they renew and reactivate, all of their benefits, loyalty points, and activity history are restored.
Members simply lose access to their card and benefits in the app.
When sync has trouble
Sync is built to be as resilient as possible. When issues occur syncing with your system, though, we take a number of steps to try to get things back into the expected state:
A membership sync that fails is retried automatically.
If your membership system starts refusing connections (expired API credentials, a maintenance window, etc.) PassPlay backs off instead of retrying in a tight loop, then resumes once the system responds normally again.
Every sync run is logged. PassPlay monitors those logs daily across all organizations, so a persistently failing integration is usually noticed on our side before it becomes visible on yours.
Common things worth checking before you get in touch:
What you’re seeing | Likely explanation |
A new membership isn’t in PassPlay | Not synced yet. Use LookUp to pull it in immediately. |
A membership’s details are out of date | Wait for the next scheduled refresh, or click Sync on its details page. |
A renewal hasn’t taken effect | The membership hasn’t synced since the renewal, or the expiration date moved by less than the renewal threshold. |
A membership shows the wrong admits or details | Its type name doesn’t match anything in your membership types list. |
Guest passes or benefits didn’t arrive on renewal | Check the grant’s trigger and audience first - the renewal itself is recorded on the membership timeline, so start by confirming it’s there. |
Whole roster looks out-of-date | Contact support - we can check your integration’s sync logs and trigger a full sync if necessary. |
