Documentation Industry-specific Jackrabbit Class

Industry integration

Jackrabbit Class

Jackrabbit Class integration overview
  • CategoryIndustry
  • AuthBearer token

Overview

Jackrabbit Class connects a dance, gymnastics, swim, martial arts, or music school to MessageMind through an org-scoped bearer token. The AI reads the school's live timetable (classes plus listings) and answers availability questions from current data, with spots and tuition quoted as the school publishes them, in the organisation's own currency.

What MessageMind can do with it

  • Validate the token live against GET /Options/me, which also returns the org name, email, and default currency, so the organisation name is never typed by the user.
  • Sync the full catalogue in the background by walking GET /Classes (full detail, including dateLastUpdatedUtc) and GET /ClassListings (customer-facing set with the online registration link).
  • Answer availability questions over any date, time, time range, or combination, filtered by class name, venue, days of the week, and student age.
  • Report spots left as whole-class, whole-term capacity, with wording that stops the AI from claiming a specific date has a place free.
  • Quote tuition exactly as the school publishes it and only in the organisation's own currency.
  • Narrow an open-ended question by asking the customer about venue, class type, or days, rather than listing hundreds of rows.

Requirements

  • A Jackrabbit Class organisation with API access and an org-scoped bearer token issued for the integration.
  • Optionally, the organisation's orgId (used only to label registration links).

How to connect

  1. In the MessageMind dashboard, open /integrations and click the Jackrabbit card. The 'Connect Jackrabbit' modal opens with the description: 'Enter your Jackrabbit Class API token. MessageMind checks it against Jackrabbit before saving, then imports your classes so your AI agent can answer questions about them. Class data stays in sync automatically once a day.'
  2. Paste the org-scoped bearer token into 'Your Jackrabbit API token'. Optionally paste the organisation ID into 'e.g. 542725 (optional)'; it appears in your Jackrabbit registration links after id=.
  3. Click Integrate. MessageMind proves the token live against GET /Options/me on api.jackrabbitclass.com/v0. The organisation name, email, and default currency returned by Jackrabbit are stored on the integration; no org name is ever typed by the user.
  4. Once validated, the catalogue sync starts in the background and the AI can answer timetable questions from live data.

Authentication and permissions

Mechanism
Bearer token on every call to api.jackrabbitclass.com/v0. The token is validated live before being stored. No OAuth exchange and no app credentials.
Credentials
A single org-scoped bearer token (wire key 'token'), plus an optional 'orgId'. The organisation name is always taken from Jackrabbit's own /Options/me response, never from user input.

Available data and actions

Reads

  • The organisation profile (name, email, default currency) from /Options/me.
  • Full class detail from /Classes (including dateLastUpdatedUtc).
  • The customer-facing class listings from /ClassListings (including the online registration link).
  • Per-class attributes used to shape answers: meeting-day flags, start and end times, term, start and end dates, spots left, waitlist status, age range, gender restriction, tuition fee and billing cycle, location, and instructors.

AI agent use cases

  • A parent asking which beginner classes are open on a specific weekday gets a live answer with venue, time, tuition, and spots left.
  • A customer asking which classes suit a seven year old gets only classes whose published age range includes seven, with any boundary case flagged for confirmation with the school.
  • An open-ended 'what classes do you offer?' gets the AI to ask one narrowing question (venue, type, or days) rather than listing hundreds of rows.
  • A proven caller asking for the registration link on a specific class gets a link labelled with the optional orgId when it was supplied at connect time.

Configuration

  • Catalogue freshness: the live catalogue is cached for about five minutes. A stale catalogue (up to roughly fifteen minutes) may be served when the API is unreachable, except on the path that hands out a registration link.
  • A background sync walks the catalogue hourly, with a six hour cache on the organisation currency.
  • Page size is 100 (Jackrabbit's maximum). Pacing between pages holds the org's 100 requests per minute ceiling for even a worst-case walk.
  • A browse answer is capped at 25 classes (MAX_CLASSES_RETURNED). Beyond the cap, the AI is prompted to narrow the question before offering more.
  • If a class has no usable published time, the AI is told to confirm the time with the school rather than quote one.
  • Day narrowing is applied locally (not via the API's Days parameter) because Jackrabbit filters on a different field than the one that drives meeting dates.

Example workflows

Answer a timetable question in chat

  1. A parent asks about a class on a specific day or in a specific window.
  2. The AI calls getJackrabbitClassAvailability with the shape of what was asked (any_time, by_date, by_date_range, by_time_range, or a combined mode).
  3. MessageMind reads from the cached catalogue, applies the local filters (venue, days, name, age), and shapes the result.
  4. The AI quotes classes with term, meeting days and times, instructor, venue, age range, tuition in the org's own currency, and spots left for the whole term.
  5. On a Jackrabbit outage with no fresh cache, the function returns the configured UNAVAILABLE_MESSAGE instead of inventing a result.

Limitations

  • Jackrabbit publishes no webhooks. Catalogue freshness is bound by the hourly sync and the five minute cache.
  • Jackrabbit caps throughput at around 100 requests per minute and 1,000 per hour per organisation. MessageMind paces the catalogue walk to stay inside the limit even on worst-case runs.
  • Spots are enrolment capacity for the whole class and term, not for a single date. The AI is instructed never to claim a specific date has a free place.
  • Tuition is quoted exactly as the school publishes it, in the organisation's own currency only; totals are never multiplied up or converted.
  • A browse that would return more than 25 classes is truncated and the AI is told to ask the customer to narrow down.
  • Only class availability is exposed; MessageMind does not take enrolments, payments, or waitlist signups on Jackrabbit's behalf.

Troubleshooting

The connect form says the token is not valid.

The token did not authenticate against /Options/me. Confirm the token is active and org-scoped for Jackrabbit's v0 API, then paste it again.

The AI says the class timetable could not be reached.

The catalogue could not be read and no fresh cache was available, so the function returned the UNAVAILABLE_MESSAGE. Retry in a few minutes; if it persists, re-issue the token or contact support.

The AI will not list classes and asks the customer to narrow down.

The query matched more than the 25 class cap, or asked for everything with no filter. Ask the customer about venue, class type, or days, and the AI will answer from a narrower set.

The registration link in the AI's reply is missing the orgId.

The orgId field was left blank at connect time. Open the Jackrabbit card, paste the organisation ID into 'e.g. 542725 (optional)', and save; new link labels will include it.

Disconnect and reconnect

  • On /integrations in the dashboard, open the Jackrabbit card and choose Disconnect. The token, orgId, and cached org name are removed from your tenant and the catalogue sync stops.
  • To reconnect, paste a fresh token in the connection form. The organisation name and currency will be re-read from /Options/me on the next validation.