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

# Track when a user books a class

## Parameters

<ParamField body="event" type="string" required default="user.book">
  Must be `user.book`
</ParamField>

<ParamField body="user_id" type="string">
  The ID of the user. Must be provided in conjunction with `location_id`.
  Alternatively, `location_member_id` can be provided to substitute for both
</ParamField>

<ParamField body="location_id" type="string">
  The ID of the location. Must be provided in conjunction with `user_id`.
  Alternatively, `location_member_id` can be provided to substitute for both
</ParamField>

<ParamField body="location_member_id" type="string">
  The ID of the location membership. Refers to an association between a location
  and user. Can be used instead of `user_id` and `location_id` together
</ParamField>

<ParamField body="price" type="float" required>
  The price of the booked class
</ParamField>

## Returns

<ResponseField name="id" type="string">
  The ID of the event
</ResponseField>

<ResponseField name="event_name" type="string">
  The name of the event that was captured
</ResponseField>

<ResponseField name="member" type="string">
  <Expandable>
    <ResponseField name="id" type="string">
      The unique ID of the member (user and rewards program association)
    </ResponseField>

    <ResponseField name="point_balance" type="integer">
      The number of points the member currently has
    </ResponseField>

    <ResponseField name="point_total" type="integer">
      The number of points the member has earned all-time
    </ResponseField>

    <ResponseField name="user" type="User">
      The user object

      <Expandable>
        <ResponseField name="id" type="string">
          The ID of the user
        </ResponseField>

        <ResponseField name="phone_number" type="string">
          The user's phone number
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
