Tracking user counts

To monitor how many users have access to your Experience, subscribe to the user provisioning events and maintain a record of unique users per account. This is the supported way to derive a seat count while the list-users endpoint is unavailable.

Setup

1. Subscribe to the provisioning events. When creating your event subscription, ask for:

Event Fires when
provisioning.user.created A new user is provisioned in an account that has access to your Experience.
provisioning.user.deleted A user is deleted and no longer has access to your Experience.

2. Assign your Experience at the account level. When your Experience is assigned to an account, all current and future users in that account have access to it — which is what makes the running count meaningful.

  • Store the accountId, both for your own reference and to correlate incoming webhook events.
  • Seed your initial count from the list-users endpoint.

Spec gap. The list-users endpoint is not yet available. See known issue 5. Until then there is no documented way to seed an initial user count for an account; you can only track deltas from the point your subscription becomes active. Agree a backfill approach with your Alianza onboarding contact if an accurate starting count matters.

Gap ID list-users-on-account

Processing events

Each time a user is created or deleted in an account where your Experience is assigned, a webhook event is delivered to your endpoint. The data payload carries both userId and accountId, so you can attribute the change to the right account in real time:

{
  "type": "provisioning.user.created",
  "timestamp": "2026-07-10T14:32:18Z",
  "subscriptionId": "d9792eb7-56fb-4cfa-b303-8ce1b1f0b4b7",
  "scope": {
    "experienceId": "65d86040-2d31-4a77-a841-4ba783122c8b"
  },
  "data": {
    "userId": "bfbdc8ce-1be8-4bd5-96f4-4dc6351d643f",
    "accountId": "f90f4ada-6699-4697-a2da-216f92e61984",
    "updatedAt": "2026-08-06T20:59:08.959211386Z"
  }
}

Maintaining user records

Keep a set of unique userId values per accountId:

  • On provisioning.user.created — add the userId to the active-user set for that account.
  • On provisioning.user.deleted — remove the userId from that account's set.

Use a set rather than a counter. Events may be delivered more than once, so incrementing and decrementing a running total will drift on retries, whereas adding and removing a known userId is naturally idempotent.

Determining the active user count

The number of users with access to your Experience for a given account is the count of unique userId values currently tracked for that account. The count updates in real time as webhook events are processed.

To get a total across your whole Experience, sum the per-account sets — keeping them separate means you can still report per-account seat counts, which is typically what Service Providers and end customers ask for.