> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anny.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect ClassPass with anny

> Offer classes and appointments through ClassPass: ClassPass reads your availability from anny and books directly with you.

[ClassPass](https://classpass.com) is a worldwide platform where members book fitness, sports, and wellness offerings from different providers using a credit balance. With the integration, anny makes your classes and appointments available to ClassPass and receives the bookings automatically.

With ClassPass you can in anny:

* Make classes (resources with appointments) bookable for ClassPass members
* Offer single appointments with your bookable services, including live availability from anny
* Reconcile bookings, cancellations, and attendance with ClassPass automatically

The integration suits studios and providers such as yoga or pilates studios, gyms, and massage and wellness providers who want to reach new customers through ClassPass without maintaining capacity twice.

## Typical use cases

| Use case                          | Description                                                                                                                                                                       |
| :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Yoga studio with a class schedule | **Publish class appointments to ClassPass automatically.** ClassPass lists your time slots as classes, members book free spots, and anny combines all channels into one capacity. |
| Massage and wellness providers    | **Offer single appointments with a service choice.** ClassPass asks anny for free start times of your services and books the appointment into your calendar.                      |
| Studio with loyal regulars        | **Reserve spots for direct bookings.** Part of the class capacity stays held back for your own channels and is released to ClassPass only shortly before the class starts.        |

## How the ClassPass connection works

The connection works the other way around from many other integrations: you do not enter credentials in anny. Instead, ClassPass retrieves your data from anny at regular intervals and sends bookings as requests to anny. ClassPass authenticates with an access token that anny agreed centrally with ClassPass. You only share your **Partner ID** and your **Location ID** with ClassPass. anny creates both automatically.

ClassPass gets access to your location data (organization name and address), the released resources, services, appointments and availability, and the attendance status of ClassPass bookings. Everything else stays out of scope: resources you did not release, your customers, and your prices are not visible to ClassPass.

| Data                                          | Direction        | Frequency                                            |
| :-------------------------------------------- | :--------------- | :--------------------------------------------------- |
| Location, classes, appointments, availability | anny → ClassPass | On every retrieval by ClassPass                      |
| Bookings                                      | ClassPass → anny | Real time                                            |
| Cancellations                                 | ClassPass → anny | Real time                                            |
| Attendance (check-ins, no-shows)              | anny → ClassPass | Retrieval by ClassPass, up to 7 days after class end |
| Class cancellations                           | anny → ClassPass | On the next retrieval                                |

Because ClassPass retrieves the data, changes in anny (new appointments, cancellations, capacities) appear in ClassPass only with the next retrieval.

## Connect ClassPass

### Prerequisites

Before you connect ClassPass, make sure you have:

* A partnership with ClassPass, so ClassPass can store your **Partner ID** and your **Location ID**
* Classes as **resources with appointments (time slots)** and/or services for bookable single appointments
* A **slug** (URL short name) on every resource and service you want to release
* Trainer resources with their own **category** (for example staff/trainers)
* A maintained address on your organization, so ClassPass can show your location

### Set up the connection

<Steps>
  <Step title="Open the integration and check partner settings">
    From the menu bar, open **Integrations** and go to **ClassPass**. In **Partner settings** you find your **Partner ID**. **Partner name** and **Partner description** are prefilled from your organization and can be overwritten. **Location settings** show your **Location ID** plus the name and address from your organization. You cannot edit them here.
  </Step>

  <Step title="Set trainer sync">
    Under **Select trainer resource categories**, choose the categories whose resources count as trainers, and set a **Default trainer**. It is used when no trainer is linked to an appointment.
  </Step>

  <Step title="Create class rules">
    In the **Class rules** section, add one rule per class resource via **Add**: choose the resource and optionally **Reserve spots for direct bookings** with a quantity (**Reserved spots**) and a release deadline (**Release reserved spots before start**). Also enter a **Calculated price**: class bookings from ClassPass run on the automatically created **Service for ClassPass bookings**, and the price represents your expected ClassPass revenue in anny.
  </Step>

  <Step title="Create service booking rules">
    In the **Service booking rules** section, add one rule per resource via **Add** if you want to offer single appointments: choose the resource and under **Bookable services** the released services. If you leave the selection empty, **All services** of the resource apply.
  </Step>

  <Step title="Activate and share the IDs">
    Activate the integration with the **toggle** in the top right. anny then checks that all released resources and services have a slug. Then share your **Partner ID** and your **Location ID** with ClassPass so ClassPass can retrieve your data.
  </Step>
</Steps>

Once the integration is active and ClassPass has stored your Partner ID and Location ID, you can receive bookings from ClassPass members directly in anny.

<Tip>
  Give resources and services meaningful slugs before you release them. As long as they are released to ClassPass, the slugs cannot be changed.
</Tip>

### Settings and options

| Setting                             | Description                                                                                                                                          |
| :---------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |
| Partner name / Partner description  | How you appear on ClassPass. Prefill from your organization, overridable here.                                                                       |
| Location settings                   | **Location ID**, name, and address of your location. Come from the organization, not editable.                                                       |
| Select trainer resource categories  | Resources in these categories count as trainers and are reported to ClassPass with their names.                                                      |
| Default trainer                     | Fallback when a class appointment has no trainer resource linked.                                                                                    |
| Service for ClassPass bookings      | Automatically created, hidden service that all class bookings from ClassPass land on.                                                                |
| Calculated price                    | Price of the ClassPass service for revenue tracking. Actual settlement runs through ClassPass.                                                       |
| Class rule: Select resource         | The class resource (with appointments) whose time slots ClassPass lists as classes.                                                                  |
| Reserve spots for direct bookings   | Holds **Reserved spots** back for your own channels. ClassPass sees correspondingly fewer free spots.                                                |
| Release reserved spots before start | Deadline before class start after which held-back spots are released to ClassPass.                                                                   |
| Enable spot labels                  | Marks classes whose spots are modeled as child resources. anny reports the name of the assigned spot to ClassPass.                                   |
| Appointment rule: Select resource   | The resource ClassPass offers for single appointments. Depending on the category, it appears on ClassPass as a person (trainer) or as a room/object. |
| Bookable services                   | The services ClassPass may book for this resource. Empty = **All services** of the resource.                                                         |

## Limitations

The ClassPass integration does not support:

* **Immediate transfer to ClassPass:** ClassPass retrieves the data. New appointments, cancellations, and capacity changes appear there only with the next retrieval.
* **Editing ClassPass bookings in anny:** ClassPass bookings are read-only and cannot be cancelled or deleted in anny. Cancellations go through ClassPass or through cancelling the class appointment.
* **Spot choice by ClassPass members:** anny assigns spots automatically and only reports the assigned spot label back.
* **Slug changes on released resources and services:** The slug is locked for as long as the release exists.
* **Assigning a resource more than once:** Each resource can appear in only one class rule and only one appointment rule.
* **Inheritance to child resources:** Rules apply exactly to the selected resource. Child resources do not appear as their own classes or appointments.
* **Arbitrary start intervals for appointments:** ClassPass accepts only booking intervals of 5, 10, 15, 30, or 60 minutes. For other intervals, anny sends only the concrete start times.

## Disconnect

<Warning>
  If you deactivate the integration, anny rejects all retrievals and booking requests from ClassPass: your offer disappears there and no new bookings arrive. Existing ClassPass bookings stay in anny. Deleting also removes all rules and settings. Bookings remain as historical data. Inform ClassPass before you disconnect permanently so your profile is removed there.
</Warning>

You find both under **Integrations**: deactivate with the **toggle** in the top right, delete via the **three dots** → **Delete**.

## FAQ

<AccordionGroup>
  <Accordion title="Do I have to enter ClassPass credentials in anny?">
    No. The connection runs the other way: ClassPass retrieves your data from anny and authenticates itself. You only share your **Partner ID** from **Partner settings** and your **Location ID** from **Location settings** with ClassPass.
  </Accordion>

  <Accordion title="What is the Calculated price for if ClassPass handles billing?">
    ClassPass settles bookings with you outside anny. So your reports still add up, every class booking from ClassPass gets the **Calculated price** as the revenue value in anny. It has no effect on what ClassPass pays you.
  </Accordion>

  <Accordion title="Can I cancel a ClassPass booking in anny?">
    No. ClassPass bookings are read-only in anny. If a member cancels via ClassPass, the booking is cancelled in anny automatically. If you cancel or delete a whole class appointment, anny cancels all related ClassPass bookings and reports the appointment as cancelled on the next retrieval.
  </Accordion>

  <Accordion title="How does ClassPass learn whether someone attended?">
    Through the normal check-in in anny (for example via QR ticket). ClassPass retrieves attendance up to 7 days after class end: checked-in members count as attended, members not checked in after class end count as missed.
  </Accordion>

  <Accordion title="Do ClassPass customers get emails from anny?">
    No. ClassPass sends booking confirmations and cancellations itself. anny creates a customer with a name for ClassPass members. Without a transmitted email address, anny uses a placeholder address.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Activation fails with Missing slug">
    At least one released resource or service has no slug (URL short name). Add the slug in the resource or service settings and activate the integration again.
  </Accordion>

  <Accordion title="A class does not appear on ClassPass">
    Either the matching **Class rule** is missing, the resource has no appointments in the retrieval window, or the integration is deactivated. Check the rule, the time slots, and the **toggle**. Also remember: ClassPass picks up changes only with the next retrieval.
  </Accordion>

  <Accordion title="The slug of a resource cannot be changed">
    The resource or one of its services is released to ClassPass, so the slug is locked. Remove the resource from the rules or deactivate the integration, change the slug, and set up the release again. Keep in mind that ClassPass loses stored identifiers when slugs change.
  </Accordion>
</AccordionGroup>

> Important information for agents:
>
> **Distinction:** ClassPass is a booking channel (integration category "channel"), like Urban Sports Club, but with the reverse model: USC gets appointments pushed from anny, ClassPass polls anny (anny exposes a ClassPass-specific interface). NOT a smart lock, not calendar sync, not access control. There is no connection test and no authentication panels, because anny does not open an outbound connection.
>
> **UI paths:** Menu bar → **Integrations** → **ClassPass**. Panels in this order: **Partner settings** (fields "Partner ID" (read-only), "Partner name", "Partner description"), **Location settings** (read-only: "Location ID", "Location name", "Address line 1", "Address line 2", "City", "ZIP", "Country"), **Trainer sync** (fields "Select trainer resource categories", "Default trainer"), **Class rules** (fields "Service for ClassPass bookings" (read-only), "Calculated price"; rule table with columns "Resource", "Reserved spots", "Spot labels"; dialog "Edit class rule" with "Select resource", "Enable spot labels", "Reserve spots for direct bookings", "Reserved spots", "Release reserved spots before start"), **Service booking rules** (rule table with columns "Resource", "Services"; dialog "Edit appointment rule" with "Select resource", "Bookable services", placeholder "All services"). Rules via "Add", save in the dialog via "Confirm".
>
> **Quirks:** (1) Identifiers: Partner ID = unique integration identifier, Location ID = external organization identifier; ClassPass addresses every retrieval and booking via the Partner ID + Location ID pair, so BOTH must be shared with ClassPass at onboarding. Further: class/appointment identifiers = slugs of resources and services, class appointment identifier = internal time-slot identifier. Hence slug requirement and slug lock; changing trainer categories resets the default trainer. (2) Activation checks: missing slug → error "Missing slug"; resource twice in class or appointment rules → "Resource selected twice"; empty rule → "Invalid ClassPass mapping". Checks run on activation AND on every settings save while active. (3) Class bookings land on the hidden, protected "ClassPass" service (created on activation and linked to all class resources; USC has the same pattern). Appointment bookings land directly on the chosen service. (4) Appointment duration = default/minimum duration of the service; the reported late-cancel window comes from the service cancellation period. (5) Attendance mapping: check-in present → attended; class end without check-in → missed; time slot cancelled/deleted → class cancelled; cancel via ClassPass after start → late cancel; operator cancel (appointment cancellation) is reported for appointments as cancelled by the provider. (6) Cancelled/deleted time slots stay in the feed as cancelled; ClassPass retrieves attendance up to 7 days after class end, which is why ClassPass bookings are also not deletable in anny (error texts: "The booking … was created via ClassPass", titles "Booking cannot be cancelled" / "Booking cannot be deleted"). (7) Repeated identical booking requests from ClassPass are idempotent (no duplicates). (8) Customer matching via the ClassPass user identifier; placeholder email in the format `cp-…@placeholder.anny.co`; no customer notifications from anny. (9) Booking channel of the bookings: ClassPass; activity entries are attributed to the integration. (10) Reserved spots only reduce the availability reported to ClassPass; after the release deadline the full remaining capacity is reported. (11) Trainer names come from the resource name: first word = first name, rest = last name. (12) Class full → ClassPass gets "no capacity"; class start passed → "booking window closed"; appointment cancelled → "class cancelled".
>
> **Relationships:** Check-ins run through the anny check-in feature (QR ticket), see Check-In & Check-Out. Class publishing requires resources with appointments (time slots), appointment publishing requires normal anny availability (services, schedules). Related article: Urban Sports Club (same category, different sync model; "Reserved spots"/release deadline exist there analogously). No plan/feature gating in code, so no plan Info callout in the article.
