13d21c63-b5ec-5912-8397-c3a5ddb27a97). Use List Installed Apps to verify, and Install Wix Apps to install if missing.Run these queries to collect site data for informed defaults.
Extract properties.paymentCurrency. Fall back to USD if unavailable.
Warn the user if a service with a similar name already exists.
Note: Staff queries are optional for COURSE services since staffMemberIds is ignored by the API. However, querying staff can still be useful for context (e.g., mentioning the instructor in the description).
For any fields the user did not explicitly specify:
| Field | Default | Notes |
|---|---|---|
| Capacity | 10 | defaultCapacity — required for COURSE |
| Online booking | Enabled | onlineBooking.enabled: true |
rateType: "FIXED" (for the entire course)rateType: "NO_FEE", options.inPerson: true, options.online: falseCRITICAL: COURSE services do NOT use staffMemberIds or sessionDurations. These fields are ignored. Use defaultCapacity instead.
Paid course:
Free course:
staffMemberIds — it is ignored for COURSE servicesschedule.availabilityConstraints.sessionDurations — not used for COURSEdefaultCapacity is required — sets max participants for the entire coursebulkCreateEvents using the returned service.schedule.id (see Create and Update Booking Services)Save the serviceId from the response: results[0].item.service.id
Use the RUN_IN_BROWSER tool to navigate the user to the service form for final review:
This executes in the user's browser and redirects them to the service editing page.
Provide a summary including:
Example:
I created "Yoga Teacher Training":
I assumed a capacity of 10 since you didn't specify. The price of $300 covers the entire course — customers pay once for all sessions. You can review and adjust the details in the service form.
Next step: You'll need to set up the course schedule (specific session dates and times) in the service form.
| Error | Cause | Action |
|---|---|---|
| 428 "App not installed" | Bookings not installed | Install using Install Wix Apps |
| 400 "INVALID_PAYMENT_OPTIONS" | Payment misconfigured | Free: inPerson: true, online: false. Paid: price > 0 |
| 403 | Permission denied | Inform user they lack permission |
| rateType | options.online | options.inPerson | Valid? |
|---|---|---|---|
| FIXED | true | false | ✓ |
| FIXED | false | true | ✓ |
| FIXED | true | true | ✓ |
| NO_FEE | false | true | ✓ |
| NO_FEE | true | false | ✗ |
| Any | false | false | ✗ |
staffMemberIds is ignored for COURSE. Staff association is managed through calendar events.