# Customer State

Customer State is a concept allowing you to query for the current state of a customer, including their active subscriptions and granted [benefits](/docs/features/benefits/introduction), in a single [API call](/docs/api-reference/customers/get-customer-state-by-external-id) or single [webhook event](/docs/api-reference/current/customer_state_changed).

Combined with the [External ID](/docs/features/customer-management#external-id) feature, you can get up-and-running in minutes.

## The customer state object

The customer state object contains:

* All the data about the customer.
* The list of their **active** subscriptions.
* The list of their **granted** benefits.
* The list of their **active** meters, with their current balance.

Thus, with that single object, you have all the required information to check if you should provision access to your service or not.

## The `customer.state_changed` webhook

To be notified of the customer state changes, you can listen to the `customer.state_changed` webhook event. It's triggered when:

* Customer is created, updated or deleted.
* A subscription is created or updated.
* A benefit is granted or revoked.

By subscribing to this webhook event, you keep your system up-to-date and update your customer's access accordingly.
