Create Class Service from Prompt

Download skillThe skill is a reference md and part of wix-manage skill. You can use the following command to add the full wix-manage skill to your project:
Copy

When to Use

  • User wants to create a group class: "create a yoga class", "set up a pilates class", "add a group fitness session", "create a weekly meditation class"
  • The service type is CLASS — a single event or recurring series that multiple customers can book
  • Customers can sign up for one, several, or all sessions in a class series
  • For general service creation where the type is ambiguous, see Create Booking Service from Prompt

Prerequisites


Step 1: Gather Business Context

Run these queries to collect site data for informed defaults.

1a. Query Service Categories

Copy

1b. Query Existing Services (Duplicate Check)

Copy

Warn the user if a service with a similar name already exists.

Note: Staff queries are optional for CLASS services since staffMemberIds is ignored by the API. However, querying staff can still be useful for context (e.g., mentioning instructors in the description).


Step 2: Apply Class Defaults

For any fields the user did not explicitly specify:

FieldDefaultNotes
Capacity10defaultCapacity — required for CLASS
Online bookingEnabledonlineBooking.enabled: true

Pricing (if not specified)

  • If user specifies a price → rateType: "FIXED" (per session)
  • If user says "free" → rateType: "NO_FEE", options.inPerson: true, options.online: false
  • If no price mentioned → infer from context (yoga/fitness classes ~$15-30, art/music ~$20-40) or default to free

Capacity (if not specified)

  • Default: 10 participants
  • If user mentions capacity (e.g., "small group of 6", "up to 20") → use their number
  • Typical ranges: small group 4-8, standard 10-20, large 20-50

Category

  • If categories exist → assign the most relevant one (e.g., "Fitness", "Wellness")
  • If no categories exist → create one:
Copy

Service Name & Description

  • Use the user's wording for the service name
  • Generate a brief, professional description (1-2 sentences) mentioning it's a group class

Step 3: Create the Class Service

CRITICAL: CLASS services do NOT use staffMemberIds or sessionDurations. These fields are ignored. Use defaultCapacity instead.

Paid class:

Copy

Free class:

Copy

CLASS-Specific Reminders

  • Do NOT include staffMemberIds — it is ignored for CLASS services
  • Do NOT include schedule.availabilityConstraints.sessionDurations — not used for CLASS
  • defaultCapacity is required — sets max participants per session
  • After creation, class sessions must be scheduled separately via bulkCreateEvents using the returned service.schedule.id (see Create and Update Booking Services)

Save the serviceId from the response: results[0].item.service.id


Step 4: Summary Message

Provide a summary including:

  1. What was created — service name, price per session, capacity
  2. Assumptions made — list defaults used (e.g., "I set the capacity to 10 participants since you didn't specify")
  3. Schedule note — remind the user that class sessions still need to be scheduled
  4. Next steps — "Click Save to finalize, then set up the class schedule"
  5. Offer to adjust — "Want me to change the price, capacity, or description?"

Example:

I created "Vinyasa Yoga Class":

  • Type: Class (group session)
  • Price: $25 per session
  • Capacity: 10 participants
  • Category: Fitness

I assumed a capacity of 10 since you didn't specify. You can review and adjust the details in the service form.

Next step: You'll need to set up the class schedule (days and times) in the service form.


Error Handling

ErrorCauseAction
400 "INVALID_PAYMENT_OPTIONS"Payment misconfiguredFree: inPerson: true, online: false. Paid: price > 0
403Permission deniedInform user they lack permission

Payment Validation Quick Reference

rateTypeoptions.onlineoptions.inPersonValid?
FIXEDtruefalse
FIXEDfalsetrue
FIXEDtruetrue
NO_FEEfalsetrue
NO_FEEtruefalse
Anyfalsefalse

What This Skill Does NOT Cover


API Documentation Reference

Last updated: 22 June 2026

Did this help?