AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The wix-manage skill provides a structured library of REST API recipes designed to help developers and agents interact with Wix business solutions. It covers a wide range of administrative and configuration tasks, including site setup, entity management, SEO, analytics, accessibility, and dashboard navigation. By providing specific endpoint, method, and payload patterns, it ensures accurate API usage for backend integrations, data synchronization, and automated site management.
What it does
- Provides standardized REST API recipes for configuring Wix business apps like Stores, Bookings, and CMS.
- Facilitates administrative tasks such as bulk updates, contact labeling, and data migrations.
- Offers guidance on managing SEO tags, URL redirects, and Google Search Console connections.
- Enables programmatic accessibility scanning and reporting for Wix sites.
- Generates direct dashboard navigation links for various Wix business solutions.
- Supports backend integrations through server-to-server automations and data synchronization.
When to use it
- When you need to perform administrative or configuration tasks on a Wix site via REST API.
- When you need to retrieve or update business data like products, services, or contacts.
- When you need to provide a user with a direct link to a specific page in their Wix dashboard.
- When you are building backend integrations or automations for a Wix site.
- When you need to audit or manage SEO, accessibility, or analytics configurations.
Advantages
- Reduces errors by providing exact API endpoints, methods, and payload structures.
- Eliminates the need to guess API paths or manually construct dashboard URLs.
- Ensures consistent and reliable interaction with Wix business entities.
- Simplifies complex workflows like multi-step booking service setup or accessibility scanning.
- Provides a clear separation between management operations and frontend display logic.
Usage examples
- “How can I update the SEO title for my homepage?”
- The agent uses the Manage SEO Tags recipe to identify the homepage, retrieve current tags, and apply the requested update via the appropriate API endpoint.
- “Where can I find my site's booking calendar in the dashboard?”
- The agent uses the Bookings Dashboard Navigation recipe to generate a direct link to the calendar page within the user's Wix dashboard.
- “Scan my site for accessibility issues.”
- The agent initiates an accessibility scan using the Accessibility Scans API, polls for completion, and reports findings categorized by severity.
- “List all my installed Wix apps.”
- The agent calls the List Installed Apps API and returns a summary of all apps currently active on the site.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/wix/wix-manage/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip wix-manage.zip -d .agents/skills
Documentation by Wix
Management Recipes Index
Standard call shape for every curl example across these recipes. The
<AUTH>placeholder in example curls is shorthand for theAuthorizationheader only; body-bearing calls also needContent-Type: application/json.
What Are Management Recipes?
Management recipes are for REST API operations that configure, set up, and manage Wix business entities on your site. These recipes use REST API calls and are designed for:
Site setup and configuration — Initial setup of stores, bookings, payments, and other business apps
Entity management — Creating, updating, and deleting products, services, staff members, pricing plans
Administrative operations — Bulk updates, contact labeling, data migrations
Backend integrations — Server-to-server automations, webhooks, data synchronization
These recipes do NOT cover frontend development or SDK usage for displaying data to users.
App Installation
Install Wix Apps
Installs Wix apps on a site using Apps Installer API. Covers enabling Velo (Wix Code), app installation, and common app definition IDs.
List Installed Apps
Lists all apps installed on a site using Apps Installer API. Useful for verifying app installations before making API calls and diagnosing authorization errors.
App Management Dashboard Navigation
"Builds direct links to the app-management dashboard pages on manage.wix.com — the App Market and the installed-apps management page. Pairs installed apps with the List Installed Apps read API. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Custom Apps
Use App Tools
"Discovers and runs app tools, the actions and lookups that apps installed on a Wix site expose to AI agents, for example converting a price with a pricing app or tracking a package with a shipping app. Covers listing the site's app tools, choosing one by its description, and running it with a payload built from its input schema. Use when the user asks for something an installed app provides rather than a built-in Wix feature, asks what their apps can do, or names an app or app tool."
SEO
Manage a Wix Site's SEO Tags
Read and update SEO titles and tags at the right level, and publish static-page SEO changes. "Change my site's SEO title" names no page, so its default is one question and no write, also under instructions to work autonomously or pick defaults: ask whether the user means the homepage, a specific page, or a page-type pattern, with no API call; site-level tags accept meta tags only, never titles. Discover item IDs and pattern variables, preserve existing tags, and report resolved tags with their sources.
Manage URL Redirects on a Wix Site
"Retrieve, create, and delete URL redirects on a Wix site using the public SEO Redirects API. Covers exact and group redirects, language-scoped redirects for multilingual sites, bulk creates of up to 100 and bulk deletes of up to 500, and the change flow for a redirect that already exists. This API has no query, search, or update method: List Redirects is the only read-many. Redirects do not chain, so creating one that points at a path another redirect starts from permanently deletes that other redirect; list and check before every write."
Manage Google Search Console for a Wix Site
"Connect a Wix site to Google Search Console and drive its setup through the public GSC Connection and Site Readiness APIs: check connection and readiness, start the Google authorization, verify ownership, add the property, submit the sitemap, request indexing, read search performance, run URL inspection, recover a stale connection, or disconnect. The site owner authorizes in their own browser via a single-use connect URL."
Generate AI SEO Suggestions for a Wix Site
"Generate AI-written SEO text for a Wix site through the public Tag Suggestions and Page Optimization APIs: title tag and meta description options for a page, alt text for the images of a page, store product, or blog post (one image or up to 20 per call), corrected heading levels for a page's headings, and a whole-page rewrite of title, description, headings, and body text aimed at the page's focus keyword, returned as before/after pairs. Use it when the user asks for SEO title or meta description options or ideas, or wants to improve, optimize, audit, or write the SEO text of a page or the homepage: Wix's AI writes the texts. Suggestions are returned for review; applying one is a separate SEO tags write."
Accessibility
Scan a Wix Site for Accessibility Issues
Run a Wix accessibility scan for a full site, one page, or every page in any supported page collection, including products, blog posts, booking services, events, and restaurant pages. Poll the asynchronous scan to completion, report failed pages separately, retrieve prioritized findings, and use the returned fix guidance to help the user resolve and verify issues.
Analytics
Query Site Analytics
Retrieve a Wix site's analytics through the Semantic Model API. Covers listing semantic models, inspecting a model's schema (measures, dimensions, parameters), and querying model data with a required time interval, filters, sorting, paging, and human-readable formatting.
Analytics Dashboard Navigation
"Builds direct links to Wix Analytics dashboard pages on manage.wix.com — highlights, reports, per-domain overviews (traffic, behavior, sales, marketing), and performance insights/benchmarks. Pairs analytics data with its read API so you can answer a question via API and hand back a 'see it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Blog
How to Create Blog Posts
Creates and publishes blog posts using Blog Posts API. Covers resolving the required author memberId (including creating an author member when the site has none), Ricos rich content format, image upload via Media Manager, category/tag assignment, and bulk post creation.
Find and Update Blog Posts
"Finds a site's live blog posts and changes existing posts and drafts through the Wix Blog REST APIs. Covers looking up published posts by title, publish date, category or tag (including the newest and the first post ever), editing an existing post (adding or changing a sentence, paragraph or link in its text, its cover image, excerpt, categories and tags), publishing a draft, moving a live post back to drafts, and deleting or restoring posts. Use whenever the user names a post that already exists on the blog: to find it, change its content, publish, unpublish or delete it; writing a new post is How to Create Blog Posts."
Blog Dashboard Navigation
"Builds direct links to Wix Blog dashboard pages on manage.wix.com — posts list (published and draft tabs), categories, tags, writers, comment moderation, blog analytics, monetization, and settings. Pairs each main Blog entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Bookings
Booking Service Policy Setup
Sets up booking policies, cancellation rules, and waitlist configuration using the Booking Policies API — query for the (default) bookingPolicy entity, then PATCH it with its revision. Covers cancellationPolicy, reschedulePolicy, booking-notice limits, waitlistPolicy, and participants limits — e.g. "customers can cancel up to 24 hours before".
Bookings Staff Setup
"Creates staff members and configures custom working hours using Staff API + Calendar Events API. Critical two-step process: create staff → assign schedule → create working hours events."
Create and Update Booking Services
"Creates and updates Wix Bookings services of every type — appointments, classes and courses — from a plain request such as 'a 60-minute consultation for $75', 'a yoga class for 12 people every Tuesday' or 'a 6-week photography course'. Covers choosing the service type, defaults for what the request leaves out, pricing (free, fixed, free-to-paid), staff, capacity, duration, categories, visibility, images, scheduling class and course sessions on the calendar, and changing existing services."
Check Bookings Availability (and Diagnose Issues)
"Answers whether an appointment-based Wix Bookings service currently has bookable availability — the primary question — and diagnoses the cause only when there's no availability or the owner asks why. To diagnose, first rules out service-level blockers the availability endpoint can't see (service hidden, online booking off), then runs DiagnoseAvailability for ordered, machine-readable staff/setup reasons, with a manual fallback for booking-policy and capacity causes. Use when someone asks whether a service has availability, or why a service shows no times / customers can't book it."
End-to-End Booking Flow
Books and settles appointments, classes and courses with the site owner's credentials — an operator managing bookings, or server-side code booking as the owner. Covers service discovery, availability with Time Slots V2, creating the booking, and settling it by direct confirmation or by taking payment through eCommerce checkout. A visitor booking for themselves needs a visitor token instead; this recipe links that path.
External Calendar Integration
OAuth-based integration with Google Calendar, Microsoft Outlook, and Apple Calendar. Covers authentication flows, sync configuration, and bidirectional event management.
Multi-Resource Service Creation
Creates resource types and individual resources using Resources API. Enables services that require multiple resources (rooms + equipment + staff) with automatic allocation.
Bookings Dashboard Navigation
"Builds direct links to Wix Bookings dashboard pages on manage.wix.com — services list, edit a specific service, calendar, booking list, staff, availability, resources, and settings pages. Pairs each main Bookings entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Calendar
Configure Default Business Hours
Uses Calendar Events API to create WORKING_HOURS events on the business schedule. Covers the critical distinction between Calendar Events API (correct) vs Site Properties API (incorrect) for setting base availability.
Dashboard links for calendar surfaces (availability, default business hours) are in Bookings Dashboard Navigation.
CMS
CMS Data Items CRUD
"Add, query, update, and delete items in CMS collections, one at a time or in bulk. Also covers counting items, upserting with bulk save, truncating a collection, aggregating data with a pipeline, linking items through single- and multi-reference fields, and reading items with their referenced items expanded."
CMS eCommerce Catalog Integration
The recommended way to sell existing CMS collection items (tickets, bookings, memberships) through Wix checkout. Add the CATALOG plugin to convert any CMS collection into purchasable products with cart and payment integration.
CMS Schema Management
Create and modify CMS collection structures. Covers listing collections, creating collections with fields, adding/removing fields (including single- and multi-reference fields that link two collections), and updating collection settings.
CMS Draft & Publish Workflow (Draft Items plugin)
"Interact with CMS collections that gate their items behind a draft/publish workflow via the Draft Items plugin. Covers detecting the plugin, locating the paired drafts collection, reading published vs draft items, authoring/editing drafts, and publishing, unpublishing, reverting, and deleting items. Key endpoints: /wix-data/v2/items/publish-draft, /wix-data/v2/items/unpublish, /wix-data/v2/collections/add-draft-items-plugin, and the paired drafts collection referenced by draftItemsPluginOptions.draftsCollectionId."
CMS Dashboard Navigation
"Builds direct links to the Wix CMS (Content Manager) dashboard pages on manage.wix.com — the collections list and a specific collection's items view. Pairs collections and data items with their read APIs so you can fetch data and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Contacts
Site members (is someone a member, list or count members, approve a join request, block or unblock a member, change the name a member shows on the site, add a member) → use Find and Manage Site Members. A contact is not always a member: for people who are not members, use the contacts recipes below.
Bulk Delete Contacts
Deletes multiple contacts using filter-based bulk delete. Covers safe deletion patterns, GDPR compliance, soft delete alternatives, and batch processing strategies.
Bulk Label and Unlabel Contacts
Creates contact label definitions or adds/removes labels from matching contacts. Use Find or Create Label for label creation alone; use bulk labeling only when the user requests contact assignments.
Create a Contact
Creates a contact with the Contacts API. Covers the minimum identifying fields, the single-object shape of email and phone, and adding a physical address with the ISO 3166-2 subdivision format required for state, region, and province codes.
Update a Contact
Updates an existing contact's email, phone, name, or address with the Contacts API. Covers locating the contact when the user identifies it by name, passing its current revision, and the ISO 3166-2 subdivision format required for state, region and province codes.
Find Contacts
"Finds a site's contacts and answers questions about them: one contact by name, email or phone, contacts in a city, state or country, contacts with a label, birthdays, site members or email subscribers among the contacts, how many contacts match, every contact for an export, and possible duplicate contacts. Covers which contact fields can be filtered, how name matching works, paging through every result, and which fields the answer reads. Use when the user asks to find, look up, list, count or export contacts, wants a contact's details such as their address, or needs a contact's ID for another task such as their bookings or orders."
Find and Manage Site Members
"Finds a site's members and manages their access: one member by login email or name, the list of members with their emails, status and join dates, how many members a site has, pending, approved and blocked members, approving a pending member, blocking or unblocking a member, adding a member, and changing the name a member shows on the site. Covers which member fields can be filtered, the fieldsets that return email and status, and the member ID other tasks need. Use when the user asks whether someone is a member, wants to see or count their site members, approve a join request, block or unblock someone, add a member, or needs a member's ID for a task other than writing a blog post."
Contacts Dashboard Navigation
"Builds direct links to Wix Contacts (CRM) dashboard pages on manage.wix.com — the contacts list, a specific contact's view page, contact import, and the segments page. Pairs each main contacts entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Dashboard Navigation
Dashboard URLs are recipe data, not general knowledge. A manage.wix.com route is an app-registered slug that appears in no API reference and cannot be derived from the entity's name or its API path (Forms pages live under wix-forms, not contacts/forms; Stores products under wix-stores/products). So for every request for a dashboard link — even one that needs no API call, and even when a route feels obvious — open the solution's dashboard-navigation recipe below and copy the route from its table. Answering from memory is the one failure mode these recipes exist to prevent.
Dashboard Navigation
"Entry point for building direct links into a site's Wix dashboard (manage.wix.com). Documents the shared URL structure for all dashboard pages (site and account level, app-ID fallback, entity deep links, machine-readable routes.json) and routes to a per-business-solution recipe for every covered solution — bookings, stores/ecommerce, events, blog, pricing plans, restaurants, CMS, contacts, forms, marketing, get paid, analytics, google ads, app management, site settings, sites, and domains. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Domains
Analyse Domain
Report on the domains in the user's own Wix account — what kind a domain is, which site it is on, when it expires and whether it renews — for one domain, or by listing and filtering the account's domains.
Assign Domain
Connect a domain the user already owns to one of their Wix sites, as its primary domain or as a redirect — the starting point for every "connect my domain to my site" request, whether or not a domain is named; change which of a site's domains is primary; move a domain from one site to another; or take a domain off its site.
Check Domain Availability
Answer whether a domain name, or several at once, is available to register through Wix — a stand-alone "is example.com available?" question with no request to buy or connect.
Domain Search, Purchase and Connect
Buy a domain through Wix — intent, suggestions, site resolution, registration, privacy, cart and checkout — or bring a domain registered elsewhere into the Wix account with the dashboard connect link, once Assign Domain finds it is not there yet. A request to connect a domain the user owns to their site starts at Assign Domain. Availability checks are not done here: they all use Check Domain Availability.
Domains Dashboard Navigation
"Builds direct links to the domain-management pages on manage.wix.com — the site-level domain settings page and the account-level My Domains page. Pairs domain search/purchase with its read APIs. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
eCommerce
Routing — pick the right entry point:
Any sales/business improvement request (boost sales, promotions, help my business, holiday deals, improve revenue, discounts, shipping, coupons, clearance, gift cards) → use Recommend: eCommerce Strategy. This is the default entry point — it analyzes ALL domains (discounts, shipping, gift cards) and generates cross-domain recommendations. Do NOT ask clarifying questions.
Traffic acquisition is NOT an eCommerce-strategy request ("grow my traffic", SEO, ads, social, content) → do NOT use Recommend: eCommerce Strategy; it only converts visitors a store already has. Route these to marketing.
Pricing & promotions (coupons, discount rules, ribbons, sales) → use the Pricing & Promotions dispatcher.
Shipping setup (rates, regions, pickup, free shipping, fix coverage) → use the Shipping dispatcher.
Orders (find an order by its number, order history, what a customer bought, unpaid or unshipped orders, units sold, sales reports and exports) → use Find and Report on Orders. Totals and trends that are already aggregated (revenue over time, order count, AOV) → use Query Site Analytics.
Gift cards ("should I sell gift cards", "add a gift card", "what amounts should my gift card have") → these are recommendations, so they go through Recommend: eCommerce Strategy, which activates its GIFT_CARDS domain and loads the gift-cards goal itself. Issuing/redeeming an individual gift card is the Gift Cards API, not a recommendation.
eCommerce: Load Context
L1 loader — loads general site data (siteId, country, currency, industry, catalog analytics) needed by every eCommerce category. Each category dispatcher loads this before tag-matching; runs once per session.
Recommend: eCommerce Strategy
Entry point for all eCommerce recommendation requests. Unified skill that analyzes site data across ALL domains (discounts + shipping + gift cards), generates up to 5 cross-domain recommendations, and persists them to the tracking database. Covers discount strategies (seasonal, upsell, stock mover, bundling), shipping optimization (coverage gaps, free shipping, rate strategy, carrier backup), AND selling gift cards (denominations sized from the site's own AOV and catalog prices). Use this for business improvement requests about earning more from existing visitors. Traffic acquisition (SEO, ads, social, content) is out of scope — route "grow my traffic" to marketing.
Pricing & Promotions
Routes discounts, coupons, sales and bundles to promotion recipes, and visual product ribbons to the Catalog Ribbons API. Load this dispatcher for mixed pricing/refund/payment/product-price/shipping requests to choose the appropriate APIs.
Shipping
Dispatcher — routes shipping-setup requests (rates, regions, pickup, free shipping, fix coverage, optimize rates) to the right leaf recipe. The Shipping Options + Delivery Profiles APIs have no public docs page; ecom-shipping-api.md is the authoritative inline reference.
Find and Report on Orders
"Finds a Wix site's eCommerce orders and turns them into answers and reports: one order by its number, orders in a date range, the orders of one buyer, orders that contain a product, unpaid or unfulfilled orders, and sales totals such as units sold per product or revenue for a period. Covers which order fields can be filtered, paging through every result, and which fields a report reads. Use when the user asks about a specific order, their order history or what customers bought, or wants a sales report or an export built from their store's orders."
<details> <summary>Internal skills (loaded automatically by the dispatchers / orchestrator above — do NOT use directly)</summary>
Pricing & promotions leaves (loaded by the Pricing dispatcher or by the strategy orchestrator)
Goals: Increase AOV, Clear Inventory, Seasonal Revenue, Drive Cross-Sells
Flows: Upsell Boost, Bundle and Save, Stock Mover, Seasonal Promotion
Gift-cards leaf (loaded by the strategy orchestrator when it activates the GIFT_CARDS domain)
Goal: Sell Gift Cards — existing-product gate (one per site), eligibility, denomination sizing from AOV / catalog prices, no-expiry-by-default policy, and the mapping onto Create Gift Card Product
Shipping leaves (loaded by the Shipping dispatcher)
API Reference — inline spec for Shipping Options + Delivery Profiles
Cross-cutting tracking
API: Recommendation Tracking — load BEFORE generating any recommendation; persists PROPOSED state and tracks MarkExecuting → MarkDone/MarkFailed.
</details>
Dashboard links for eCommerce surfaces (orders, abandoned checkouts, gift cards, shipping, tax, checkout settings) are in Stores Dashboard Navigation.
Donations
Create and Update Donation Campaigns
Create, inspect, update and archive Wix Donations campaigns, including suggested amounts and impact text, custom limits, giving frequencies, goals, donor notes, fee coverage and imagery.
Events
Create an Event with the Wix Events API
"Creates an event with the Wix Events V3 API — one-off or recurring, RSVP, ticketed, registration-free or with external registration — including date and time, venue or online location, guest limit, description and ticket tiers. Covers the exact field shapes and the API's misleading validation messages. Use when the user wants to create or set up an event, an information-only event, or a repeating event — including a weekly workshop, class or meetup series held on set dates at a venue or online; a Bookings class or course is booked per session instead."
Manage Wix Events — Publishing, Cancelling, Cloning and Counting
"Operates on Wix events that already exist with the Wix Events V3 API — finding (by name or date), updating (date, venue, main image, description, page settings), controlling registration (close, reopen, registration-free, external, members-only, limits), switching between RSVP and ticketed (a new event — ask before creating it), publishing, cancelling, deleting, cloning and counting, including single occurrences of a recurring event. Use to close registration, move or cancel an event, or change how guests register."
Manage Event Tickets
"Manages the ticket types of a ticketed Wix event with the Ticket Definitions V3 API — adding, editing, repricing, hiding, reordering and deleting tickets, scheduling or ending ticket sales, and changing the ticket currency. Use when the user wants to add early-bird, VIP, child or donation tickets to an existing event, change a ticket's price or quantity, or set when tickets stop selling."
Manage Event Guests
"Manages the people registered for a Wix event — RSVPs on RSVP events, and orders, tickets and ticket holders on ticketed events: listing and counting guests for one event or across all events, new registrations since a date, attendee lists to export, adding or removing a guest, changing an RSVP, checking guests in, and marking orders paid. Use when the user asks who is coming or how many registered, or wants to add, remove or check in a guest. Notes what the API can't do, such as refunds and resending emails."
Events Dashboard Navigation
"Builds direct links to Wix Events dashboard pages on manage.wix.com — the published and draft event lists, a new event, categories, staff, a recurring series' occurrences, and one event's pages: overview, edit, tickets, guests (RSVP or ticketed), orders, schedule, registration settings and form, and policies. Pairs each Events entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Event Registration Form
"Customizes the registration form of a Wix event with the Events Form API — adding, editing, reordering and removing questions, the additional-guests field, and the messages guests see after registering or when registration is closed. Use when the user wants to add or require a question on an event's RSVP or checkout form, let guests bring a plus-one, or reword a confirmation message."
Event Schedule, Policies and Categories
"Configures what appears around a Wix event on its page — the schedule or agenda, the policies guests accept (terms, refunds), and event categories. Use when the user wants to add an agenda or timetable to an event, add terms or a refund policy, or group events into categories such as workshops or concerts."
Forms
Create Form
"Creates a visitor-fillable Wix form with Form Schemas v4 — a contact or enquiry form, a signup or waitlist, an application, a survey, a quote request, and forms whose submissions create a contact. Ships a complete create request and the field table for the common kinds, with the value each one submits — dropdown, single and multi choice, date and time, number, consent and email-subscription (GDPR marketing) checkboxes — plus multi-page forms and the silent breakers that produce an empty or invisible form. Changing a form that already exists is Update Form."
Update Form
"Changes a Wix form that already exists, with Form Schemas v4 PATCH — add a field to my form, add a dropdown or a consent checkbox, make a field required or optional, rename a label, reorder, remove or retire a question. Covers reading the form back for its revision (and the required namespace query parameter), the whole-form body that a PATCH needs, the wholesale formFields replace that silently soft-deletes anything you omit, changing a field's component type in place, removing a field or hiding one from visitors, and the read-back that proves what was stored. Use whenever the form exists and the request changes what it collects; use Create Form when there is no form yet."
Read Forms and Submissions
"Reads a site's Wix forms and the submissions visitors sent to them — what forms do I have, find a form by name, show the latest submissions, who filled in my contact form, how many submissions did I get last week, submissions from one contact, unread submissions. Covers finding the form's namespace instead of guessing it, where that namespace goes on each read, the Form Schemas and Form Submissions endpoints (and the look-alike URLs that 404), forms hidden from a default listing, the closed list of submission fields you can filter and sort by, date ranges, cursor paging, totals per form, and reading answers by field. Read-only; changing a form is Update Form, building one is Create Form."
Forms Dashboard Navigation
"Builds direct links to Wix Forms dashboard pages on manage.wix.com. The paths are not guessable and appear in no API reference, so take them from here: under https://manage.wix.com/dashboard/{metaSiteId}/, the forms list is wix-forms, a form's builder is wix-forms/form/{formId}, and that form's submissions are wix-forms/form/{formId}/submissions — there is no site-wide submissions page, and nothing lives under contacts/forms, forms, form-builder or wix-forms-and-payments (the legacy app). Also standalone forms, and the dashboard link for each Forms entity; reading forms and submissions is Read Forms and Submissions."
Get Paid
Create Payment Links
Creates payment links for collecting payments without a checkout flow. Covers store products (catalog items), custom line items, variants, due dates, and sending links via email.
How to Setup Wix Payments
Configures Wix Payments as the payment provider. Covers eligibility checking, business verification, bank account setup, and payment method configuration (cards, PayPal, Apple Pay).
Payment Links for Bookings
Creates payment links for unpaid bookings using Payment Links API. Links booking IDs to payment requests with proper redirect handling.
Get Paid Dashboard Navigation
"Builds direct links to Wix payments and invoicing dashboard pages on manage.wix.com — payment links, invoices (list, create, settings), recurring invoices, and the accept-payments settings page. Pairs each main get-paid entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Google Ads
Routing — Google paid-advertising campaigns for a site (Smart & Performance Max). All flows require a Google Ads account, created once via the setup recipe. Budgets are in micros (1,000,000 = 1 currency unit). REST base: https://www.wixapis.com/_serverless/pa-google/v1.
First-time setup / "connect Google Ads" /
ACCOUNT_NOT_FOUND→ Install and Create an Account (do this before anything else).Suggested keywords / geo / budget / ad copy / images → Get AI Campaign Suggestions.
Improve an existing campaign / see what to fix next / Campaign Success Guide / mark or reopen a recommendation → Manage a Campaign Success Guide.
Create a multi-channel / lead-gen / Shopping campaign → Create a Performance Max Campaign.
Pause / resume / launch / update budget / delete / history → Manage Campaign Lifecycle.
Performance, conversions, search terms, per-product / per-asset metrics → Query Campaign Performance Analytics.
Ad spend, fees, upcoming charges, credit balance → Retrieve Billing and Payment Details.
Install Google Ads and Create an Account
"One-time setup for running Google paid ads on a Wix site: install the Wix Google Ads app, then create the Google Ads account that every campaign, suggestion, and analytics call depends on. Covers checking whether an account already exists, choosing a currency, optionally attaching a promotional incentive (credit offer), linking a Google Merchant Center account, and deleting an account. Use when the user wants to 'set up Google Ads', 'connect Google Ads', 'start advertising on Google', 'create a Google Ads account', or hits an ACCOUNT_NOT_FOUND / app-not-installed error before creating a campaign. Google Ads REST API, base https://www.wixapis.com/_serverless/pa-google/v1."
Get AI Campaign Suggestions for Google Ads
"Reference for the Google Ads Suggestions API on a Wix site: AI/Google-generated inputs that help build effective campaigns — keyword themes (from a URL or autocomplete), geo-target options, low/recommended/high daily-budget tiers with estimated clicks, PMAX budget recommendations, text assets (headlines/descriptions), AI image assets (auto-uploaded to Wix Media), search themes, promotional incentive offers, and complete AI-generated campaign configurations from a campaign brief. Use when the user asks 'suggest keywords for my ads', 'what budget should I use', 'where should I target', 'generate ad copy/headlines', 'generate ad images', 'suggest a whole campaign', or when a create-campaign flow needs suggested values. REST base https://www.wixapis.com/_serverless/pa-google/v1."
Create and Launch a Performance Max Campaign
"Creates and launches a Google Ads Performance Max (PMAX) campaign for a Wix site — a goal-based campaign that runs across all Google channels (Search, Display, YouTube, Gmail, Discover, Maps) from an asset group of headlines, descriptions, images, and (for PMAX Leads) search-theme signals. Covers generating AI text and image assets, generating search themes, getting a Google budget recommendation, assembling the asset group with the required minimum assets, choosing PERFORMANCE_MAX vs PERFORMANCE_MAX_LEADS (leads: phone/form goals, negative keywords, 28-day learning) vs retail/Shopping (Merchant Center feed), creating in PAUSED, and launching. Use for 'create a Performance Max campaign', 'PMAX', 'run ads across all of Google', 'lead-gen Google campaign', or 'Google Shopping ads'. Requires an existing Google Ads account. REST base https://www.wixapis.com/_serverless/pa-google/v1."
Manage Campaign Lifecycle
"Manages existing Google Ads campaigns on a Wix site: list/get, launch (first activation) vs resume (reactivate after a pause), pause a running campaign — optionally with a scheduled auto-resume date — update name/budget/targeting, change the daily budget, delete permanently, and read status history / change log. Use when the user wants to 'pause my Google ad', 'resume my campaign', 'stop the campaign', 'change my daily budget', 'rename the campaign', 'delete this campaign', 'list my Google Ads campaigns', or 'why did my campaign status change'. Requires an existing Google Ads account and campaign. REST base https://www.wixapis.com/_serverless/pa-google/v1."
Manage a Campaign Success Guide
"Campaign Success Guide for existing Wix Google Ads Performance Max Leads campaigns. Use after creating a supported campaign, even while it is learning or has no metrics, and whenever users ask how to improve a campaign, what to fix next, to view the guide, or to mark or reopen a recommendation. Covers campaign and site selection; prioritized actionable recommendations; deduplicated, destination-specific Editor and Google Ads navigation; offers to perform supported work after approval; Merchant Center and Business Profile connection follow-ups; and suggestion-status tracking."
Query Campaign Performance Analytics
"Reads performance analytics for a Google Ads campaign on a Wix site: daily performance metrics (impressions, clicks, CTR, cost, leads, phone calls) with optional previous-period comparison and trends; conversion metrics from Wix Analytics (orders, revenue, leads, CPL, ROAS); the search terms that triggered a campaign's ads; per-product shopping performance for retail campaigns; and per-asset performance (headlines, descriptions, images) for PMAX Leads. Explains when to use campaignResourceName vs the Wix campaignId, the dateRange shape, field enums, sorting, and paging. Use when the user asks 'how is my campaign doing', 'show ad performance', 'what search terms triggered my ads', 'which products/assets perform best', 'campaign ROI/ROAS', or 'conversions from my Google ads'. REST base https://www.wixapis.com/_serverless/pa-google/v1."
Retrieve Google Ads Billing and Payment Details
"Retrieves billing and payment details for a Wix site's Google Ads account: the current billing period's ad spend (usage), the Wix service fee, the total charge, any promotional coupon adjustment, the billing period dates, and the account's credit balance (positive = available credits, negative = outstanding debt not yet charged). Also explains reading current vs remaining budget from the account object. Use when the user asks 'how much have I spent on Google Ads', 'what's my next Google Ads charge', 'show my ad billing', 'do I have ad credits left', 'why was I charged', or 'upcoming Google Ads payment'. Requires an existing Google Ads account. REST base https://www.wixapis.com/_serverless/pa-google/v1."
Google Ads Dashboard Navigation
"Builds a direct link to the Wix Google Ads dashboard page on manage.wix.com, where campaigns created via the Google Ads API recipes are managed. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Google Business Profile
Routing — how a business appears on Google Search and Maps. A Google connection is the prerequisite for all Google-backed location work: check it first, and route "connect / reconnect / disconnect Google" to the connection recipe.
Connect a Wix Site to Google Business Profile
Connect the authenticated Wix site to a Google Business Profile account, check whether an existing connection is still usable, recover a connection whose stored credentials are gone, switch to a different Google account, or disconnect. The site owner authorizes in their own browser through a single-use connect URL; the agent never completes the Google authorization itself. Warns before any reconnect that permanently removes the site's imported locations.
Manage Google Business Profile Locations for a Wix Site
Import Google Business Profile locations into the authenticated Wix site, list and query them with or without live Google data, update Wix-side and Google-side details through the correct method for each, create a new Google listing, check whether a profile is actually live on Google, and remove a location from Wix or delete its Google listing. Checks the site's Google connection first and reports a missing one as a setup step, warns before destructive or Google-visible writes, and respects Google's shared rate budget.
Marketing
Create and Publish a Social Media Post
"End-to-end flow to create a social media post, with its text written for you or your own, and publish or schedule it to a site's connected channel (Instagram, Facebook, LinkedIn, X/Twitter, TikTok, Pinterest, YouTube, Google Business Profile) using the Wix Publisher API. Can write a full per-channel post from a free-text idea or from the site's own assets (products, blog posts, events, bookings, coupons, categories), with your own image, and suggest captions and titles. Settles the post content with you first, then confirms the channel is connected, checks premium quota, creates a draft, and publishes now or schedules it. Use for 'create a post', 'generate a post from my product/idea', 'write a caption', 'caption ideas/suggestions', 'post to Instagram/Facebook/TikTok', 'connect my Instagram/Pinterest/LinkedIn', or 'schedule a post'."
Generate a Marketing Plan and Schedule Its Posts
"End-to-end flow to generate a site's social media marketing plan with the Wix Marketing Plan API and schedule the post drafts it returns. Recommends configuring marketing settings (goal, tone, cadence, content pillars) before the first generation, generates the plan asynchronously, polls until it's ready, then schedules the DRAFT posts. Includes generating posts for additional activities. Use for 'generate a marketing plan', 'create a social media plan/calendar', or 'schedule my plan's posts' requests."
Review and Send Email Campaigns
"Reads a Wix site's email marketing campaigns and reports on them: which campaigns were sent and when, drafts and scheduled campaigns, the subject and content of a campaign (for example whether one mentions a discount code, or its word count), delivery and engagement results, the contacts who received, opened or clicked a campaign, and the site's monthly email quota. Also creates a draft campaign from text and sends or schedules a draft once the user confirms. Use when the user asks about their email campaigns or newsletters, how a campaign performed or who it reached, or wants a campaign drafted or a draft sent."
Marketing Dashboard Navigation
"Builds direct links to Wix marketing dashboard pages on manage.wix.com — the social posts hub (drafts, scheduled and published posts across connected channels), post design templates, saved designs, and the email marketing pages (campaigns list, campaign templates, campaign analytics). Pairs each main marketing entity (social post item, connected social account, marketing-plan post, email campaign) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Media
Upload Media to Wix
Uploads images and files to the Wix Media Manager using the Import File API. Covers importing from external URLs, checking file status, and using the returned wixstatic.com URL in other APIs.
Generate an Image with AI
Generates an image from a text prompt with the Wix AI APIs (Runware). Returns a short-lived URL that must be imported to be kept — importing is Upload Media to Wix's job, and this recipe hands off to it. Covers choosing a model and its cost/latency/content-filter trade-off, the accepted output sizes, per-model batching limits, the AI credit each call spends, and why a content refusal arrives as a success response with no image.
Online Programs
Manage Online Program Categories
Lists, creates and renames the categories of a Wix site's Online Programs, shows which programs a category holds, and adds a program to a category, removes it, or moves it from one category to another. Use when the user wants to see, create or rename a program category, or change which categories a program is in.
Pricing Plans
Create and Update Pricing Plans
"Creates, finds and changes Wix Pricing Plans with the Plans API. Covers pricing models (recurring, one-time, free), trial periods, perks and plan visibility; finding a plan by name and listing the plans a site sells; and renaming, repricing, hiding and archiving a plan."
Pricing Plans Bookings Integration
Links Pricing Plans to Bookings services using the Benefit Programs API. Enables package deals and memberships that grant booking access.
Find and Manage Pricing Plan Orders
"Finds and manages the orders of a site's Wix Pricing Plans: the purchases and subscriptions that buyers hold. Covers who bought a plan and when, new purchases in a period, how many active subscribers a plan has, memberships that end or renew soon, the names and emails of current and former buyers, and changes to an order: pausing, resuming, cancelling, extending it, marking an offline order as paid, and recording a manual (offline) order for a member. Use when the user asks about their plan subscribers or members' subscriptions, wants a report or an export of plan purchases, or wants to change or add a plan order."
Pricing Plans Dashboard Navigation
"Builds direct links to Wix Pricing Plans dashboard pages on manage.wix.com — plans list, create a plan, edit a plan, record a manual order, and settings. Pairs each main Pricing Plans entity (plan, order) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Restaurants
Wix Restaurants Setup
Configures restaurant menus, sections, and items using Menus API. Covers menu structure (Menu → Section → Item), the two-step item modifier / modifier group flow, pricing, availability schedules, and ordering settings.
Restaurants Dashboard Navigation
"Builds direct links to Wix Restaurants dashboard pages on manage.wix.com — menus, menu items, the online orders board, online-ordering fulfillment settings (pickup, delivery, dine-in), the reservations list, floor plans, and reservation experience settings. Pairs each main Restaurants entity (menu, section, item, order, reservation) with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Rich Content
Routing rule (READ FIRST). For every request to hand-author, output, or return Ricos /
richContentJSON (nodestree) for Blog, Stores, Events, or CMS, use the available full-documentation reading capability to retrieve and read the canonical Author Ricos Rich Content recipe before using API schema search, convert/validate APIs, or memory. This also applies when the user asks for JSON only.
Ricos Converter Service
Validates and converts content between Ricos documents and HTML/Markdown/plain text using the Ricos Documents API. Covers plugin configuration, format conversion in both directions, and document validation.
Author Ricos Rich Content
Authoritative recipe for hand-authoring valid Ricos rich-content JSON (the richContent/nodes tree) used across Wix Blog posts, Stores product descriptions, Events, and CMS rich-text fields. Use whenever a user asks to create, output, or return Ricos, richContent, or nodes-tree JSON; retrieve and read this full recipe before API schema search or constructing the JSON. Covers paragraphs, headings, lists, blockquotes, dividers, tables, code blocks, images, buttons, audio, video, galleries, collapsible lists, HTML embeds, inline decorations, and nesting rules.
Site Properties
RECIPE: Change a Site's Regional Properties (Currency, Time Zone, Language, Region) via Site Properties API
"Updates the site-level payment currency (store billing currency) using Site Properties API, including the required request body shape and field mask. Covers the site time zone, primary language, and site region (locale country); field masks name top-level properties."
Show and Update Business Info
"Shows and changes a site's business info through the Site Properties API: the business name, description and company ID, the public contact email, phone, fax and address, and the opening hours the site shows. Covers changing one detail while keeping the others, removing a detail, and adding, changing or removing business hours and holiday closures. Not for Wix Bookings availability (default bookable hours) or the site's currency, time zone, language or region."
Site Settings Dashboard Navigation
"Builds direct links to the site-settings dashboard pages on manage.wix.com — the settings hub, website settings, and language & region. Pairs site properties with the Site Properties read API. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Collaborators
Manage Site Collaborators
Manages who has access to a Wix site as a collaborator (contributor) — finds the site's current collaborators, invites someone, removes a collaborator, and resends or revokes a pending collaborator invite. Use when the user wants to give someone access to the site, take it away, or follow up on an invitation that has not been accepted.
Sites
Create Site from Template
Creates new Wix sites from templates using account-level APIs. Covers template search, site creation, and publishing. Not for headless sites.
Create Headless Site
Creates a Wix Headless website: a site in the user's Wix account whose frontend is files uploaded to Wix hosting, with the Wix business backend behind it through APIs. The site is created and its pages put live by Upload a Website or HTML Files; a Wix Business Solution (a store, blog, bookings and more) is then integrated into it by the Wix Headless kit, from its cold start.
Manage OAuth Apps
Create, read, update, and query OAuth apps for a Wix headless site. Each OAuth app's id is the client_id a frontend uses to mint anonymous visitor tokens and call Wix APIs.
Query Sites
List, count, and find the sites in a Wix account. Covers the namespace filter for headless sites, counting before enumerating, cursor pagination, and resolving a site by name.
Read Account or Site Context
Probe a Wix site or account for full context in one call — installed apps by display name, locale, currency, timezone, and status. Account token + siteId targets one site; account token alone returns up to 10; site-scoped token alone returns the site it is scoped to.
Send Feedback to Wix
Relay the user's feedback about building with Wix — the APIs, docs, recipes, Wix MCP and tooling — to Wix, attributed to the authenticated user. Covers when to offer it, how to compose a message Wix can act on, and the call that sends it. Use when the user asks to report something to Wix, is frustrated with a Wix API or flow, or a recipe's flow fell short. Not a support channel, and not for the user's own site content.
Site Import
Drive the Wix Site Import agent to migrate an existing store or site from another platform (Shopify, WooCommerce, Magento, or any URL) into Wix — as a brand-new site or into the user's existing one — or to import from CSV/TSV export files with no source site. Use this skill whenever the user wants to import, migrate, or clone a store/site into Wix, mentions moving off Shopify/WooCommerce/Magento, or gives a source store URL and asks to bring it into Wix. Covers starting the import, polling progress, answering the agent's mid-import questions, handling deploy/failure/auth-expiry states, and sending post-deploy follow-up changes.
Sites Dashboard Navigation
"Builds direct links to the account-level sites pages on manage.wix.com — the My Sites list (all sites in the account) and each site's own dashboard. Pairs the site list with the Query Sites read API. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
Upload a Website or HTML Files
Publish HTML, CSS, JavaScript or a static build as a Wix Headless website; inspect its deployed files and edit them on the same site and URL. Covers file and ZIP uploads, selective additions, replacements and deletions while preserving other files, full-site replacement, authenticated and anonymous publishing, verification, and connecting a Wix business backend; a Wix Astro build is released as a server-rendered site rather than dropped. Use for files the user supplies or pages you create for them. Not for migrating a live site from another platform by URL or CSV (use Site Import), embedding code in an editor-built Wix site, or uploading assets to Media Manager.
Stores
Change Store Currency
Changes the store's payment currency through Site Properties and explains delayed currency updates in catalog responses.
Create Product (Catalog V1)
Create products using the Catalog V1 Products API. Use this recipe when the site's catalog version is CATALOG_V1. Covers simple product creation, product with options, and key V1 request structure differences from V3.
Create Product (Catalog V3)
Mandatory first recipe for every Wix Stores Catalog V3 create-product request. Before any mutation, require an explicit name and price for every product; an absent price is never 0. If no product is identified, offer both image-upload and text-description paths and stop. If name or price is missing, ask or offer a suggestion and stop. When both are present, create from the supplied details without requiring optional enrichment. Covers single/bulk creation, inventory, physical/digital products, images, options, variants, SKUs, and validation.
Find Products (Query and Search, Catalog V3)
Find, search, query, and list products from a Wix Store using Catalog V3 Search Products, Query Products, Get Product, and Query Inventory Items: by name, SKU, option choice, stock status, or price, with sorting and paging; reading one product's variants and details; and listing products with their variant count and stock.
Query Products (Catalog V1)
Query and list products from a Wix Store using the Catalog V1 Query Products endpoint. Use this recipe when the site's catalog version is CATALOG_V1. Covers basic queries, filtering, sorting, and paging.
Manage Store Categories (Catalog V3)
Organizes a Wix Store's products into categories with the Catalog V3 Categories API. Covers listing the category tree and finding a category by name; creating categories and subcategories; renaming a category or changing its description or URL slug; hiding or showing it; reordering it or moving it under another parent; deleting it; and adding products to a category, removing them, listing what a category holds, or moving all of a category's products to another category. Use when the user wants to see, set up, reorganize or clean up their store categories, or asks which products are in a category.
Update Product Stock and Pre-Order (Catalog V3)
Changes the stock and pre-order settings of existing Catalog V3 product variants through their inventory items. Covers finding a variant's inventory item by product name or SKU, setting a quantity, adding or removing units, marking a variant in or out of stock, starting or stopping quantity tracking, and enabling or disabling pre-orders with a message and a limit.
Update Product with Options (Catalog V3)
Start here for existing Catalog V3 product updates, including digital products that fail at add-to-cart with ITEM_NOT_FOUND_IN_CATALOG. Includes name lookup, Get Product, and PATCH in one flow, plus importing a supplied PDF and attaching it to the existing variant. Covers options, variant prices and SKUs, variant shipping weight in the site's weight unit, product visibility (hide/unhide through visible, never delete), description edits that preserve Rich Content, and revision-based updates. Read another recipe only for a field or operation this flow does not cover.
Stores Dashboard Navigation
"Builds direct links to Wix Stores and eCommerce dashboard pages on manage.wix.com — products list, edit a specific product, categories, inventory, orders list, a specific order, abandoned checkouts, gift cards, shipping and tax settings. Pairs each main Stores/eCommerce entity with its read API so you can fetch an entity and hand back a 'view it in your dashboard' link. Use when the user asks where something is in the Wix dashboard, wants a direct link to a dashboard page, or you need a dashboard URL to include with the result of an API operation."
<!-- automations-builder-sync:begin -->
Automations
Build and Manage Wix Automations
Create, update, activate or deactivate Wix Automations with app actions, trigger filters, conditions, delays, variables, branches and schedules, and check their current status, using the public Wix Automations APIs.
<details> <summary>Internal skills (loaded on demand by Build and Manage Wix Automations — do NOT use directly)</summary>
Automations API Catalog Discover site-specific triggers and actions, authenticate public Automation API calls, and choose the API for validation, persistence or catalog lookups.
Automations Graph and Data Model Assemble builder-editable automation graphs with valid node relationships, namespaces and ancestor data access.
Automations Trigger Configuration Select and configure automation triggers, trigger filters and event payload schemas using the site catalog.
Automations Action Configuration Configure app-defined automation actions from their input schemas and preserve supported existing action mappings.
Automations Mapping Expressions Write builder-compatible automation mapping expressions, literals and data references.
Automations Conditions Configure visual and code conditions while preserving boolean intent, comparison boundaries and builder editability.
Automations Delays Variables and Branches Configure delay, rate-limit, variable and parallel-branch steps, preserving supported existing step metadata.
Automations Schemas and Scheduling Configure dynamic schemas and scheduled automation triggers with correct timezone and calendar behavior.
Automations Validation and Persistence Validate automation configuration, check builder compatibility, persist changes and verify the saved result.
Automations Activation Status Inspect or change active status with lock checks, revision handling and read-back, without requiring unrelated repairs before deactivation.
</details>
<!-- automations-builder-sync:end -->
Files
- ATTRIBUTION.mdAdded by AutoGineer807 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md66.9 KiB
- references/accessibility/scan-site-accessibility.md5.6 KiB
- references/analytics/analytics-dashboard-navigation.md2.2 KiB
- references/analytics/query-site-analytics.md22.0 KiB
- references/app-installation/app-installation-dashboard-navigation.md1.4 KiB
- references/app-installation/install-wix-apps.md7.6 KiB
- references/app-installation/list-installed-apps.md4.7 KiB
- references/automations/actions.md14.8 KiB
- references/automations/activation-status.md5.6 KiB
- references/automations/api-catalog.md21.7 KiB
- references/automations/automation-model.md22.9 KiB
- references/automations/bracket-expressions.md18.4 KiB
- references/automations/build-and-manage-automations.md14.2 KiB
- references/automations/conditions.md21.6 KiB
- references/automations/schemas-and-scheduling.md18.0 KiB
- references/automations/special-actions.md18.0 KiB
- references/automations/triggers.md20.6 KiB
- references/automations/validation-and-verification.md25.8 KiB
- references/blog/blog-dashboard-navigation.md3.2 KiB
- references/blog/find-and-update-blog-posts.md14.5 KiB
- references/blog/how-to-create-blog-posts.md15.5 KiB
- references/bookings/booking-service-policy-setup.md7.5 KiB
- references/bookings/bookings-dashboard-navigation.md3.7 KiB
- references/bookings/bookings-staff-setup.md16.4 KiB
- references/bookings/create-and-update-booking-services.md27.5 KiB
- references/bookings/diagnose-availability-issues.md31.3 KiB
- references/bookings/end-to-end-booking-flow.md15.7 KiB
- references/bookings/external-calendar-integration.md12.9 KiB
- references/bookings/multi-resource-service-creation.md17.9 KiB
- references/calendar/configure-default-business-hours.md13.7 KiB
- references/cms/cms-dashboard-navigation.md2.4 KiB
- references/cms/cms-data-items-crud.md26.8 KiB
- references/cms/cms-ecommerce-catalog-integration.md3.3 KiB
- references/cms/cms-publishing-flow.md20.5 KiB
- references/cms/cms-schema-management.md7.9 KiB
- references/collaborators/manage-site-collaborators.md10.8 KiB
- references/contacts/bulk-delete-contacts.md3.1 KiB
- references/contacts/bulk-label-and-unlabel-contacts.md5.2 KiB
- references/contacts/contacts-dashboard-navigation.md2.4 KiB
- references/contacts/create-a-contact.md3.3 KiB
- references/contacts/find-and-manage-site-members.md12.2 KiB
- references/contacts/find-contacts.md13.5 KiB
- references/contacts/update-a-contact.md4.7 KiB
- references/custom-apps/use-app-tools.md5.5 KiB
- references/dashboard-navigation/dashboard-navigation.md7.5 KiB
- references/dashboard-navigation/routes.json47.0 KiB
- references/domains/analyse-domain.md13.8 KiB
- references/domains/assign-domain.md25.6 KiB
- references/domains/check-domain-availability.md6.0 KiB
- references/domains/domain-search-purchase-and-connect.md113.9 KiB
- references/domains/domains-dashboard-navigation.md1.8 KiB
- references/donations/create-and-update-donation-campaigns.md8.7 KiB
- references/ecommerce/api-recommendation-tracking.md12.7 KiB
- references/ecommerce/ecom-load-context.md9.2 KiB
- references/ecommerce/ecom-pricing.md10.5 KiB
- references/ecommerce/ecom-shipping.md6.1 KiB
- references/ecommerce/find-and-report-on-orders.md9.9 KiB
- references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md24.5 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-create-coupon.md12.0 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md19.4 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md9.1 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-flow-seasonal-promotion.md12.2 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md11.1 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md7.9 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-goal-clear-inventory.md6.2 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-goal-drive-cross-sells.md7.1 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-goal-increase-aov.md7.2 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-goal-seasonal-revenue.md7.4 KiB
- references/ecommerce/pricing-promotions/ecom-pricing-troubleshoot-not-applying.md4.0 KiB
- references/ecommerce/recommend-ecommerce-strategy.md27.6 KiB
- references/ecommerce/shipping/ecom-shipping-api.md11.2 KiB
- references/ecommerce/shipping/ecom-shipping-fix-coverage.md10.0 KiB
- references/ecommerce/shipping/ecom-shipping-free-shipping.md10.0 KiB
- references/ecommerce/shipping/ecom-shipping-optimize-rates.md11.3 KiB
- references/ecommerce/shipping/ecom-shipping-setup-pickup.md7.1 KiB
- references/ecommerce/shipping/ecom-shipping-setup-rates.md3.1 KiB
- references/ecommerce/shipping/ecom-shipping-setup-regions.md2.0 KiB
- references/events/create-wix-event.md17.8 KiB
- references/events/event-registration-form.md10.8 KiB
- references/events/event-schedule-policies-and-categories.md11.5 KiB
- references/events/events-dashboard-navigation.md5.5 KiB
- references/events/manage-event-guests.md27.0 KiB
- references/events/manage-event-tickets.md17.2 KiB
- references/events/manage-wix-events.md33.2 KiB
- references/forms/create-form.md34.1 KiB
- references/forms/forms-dashboard-navigation.md4.5 KiB
- references/forms/read-forms-and-submissions.md16.2 KiB
- references/forms/update-form.md16.5 KiB
- references/get-paid/create-payment-links.md5.5 KiB
- references/get-paid/get-paid-dashboard-navigation.md3.2 KiB
- references/get-paid/how-to-setup-wix-payments.md3.4 KiB
- references/get-paid/payment-links-for-bookings.md2.6 KiB
- references/google-ads/billing-and-payment.md4.5 KiB
- references/google-ads/create-performance-max-campaign.md13.7 KiB
- references/google-ads/get-campaign-suggestions.md8.7 KiB
- references/google-ads/google-ads-dashboard-navigation.md3.0 KiB
- references/google-ads/install-and-create-account.md8.4 KiB
- references/google-ads/manage-campaign-lifecycle.md5.2 KiB
- references/google-ads/manage-campaign-success-guide.md25.0 KiB
- references/google-ads/query-campaign-analytics.md9.9 KiB
- references/google-business-profile/connect-google-business-profile.md7.4 KiB
- references/google-business-profile/manage-google-business-profile-locations.md9.5 KiB
- references/marketing/create-and-publish-social-post.md40.8 KiB
- references/marketing/generate-and-publish-marketing-plan.md18.2 KiB
- references/marketing/marketing-dashboard-navigation.md3.7 KiB
- references/marketing/review-and-send-email-campaigns.md15.5 KiB
- references/media/generate-image-with-ai.md3.7 KiB
- references/media/upload-media-to-wix.md6.2 KiB
- references/online-programs/manage-program-categories.md8.6 KiB
- references/pricing-plans/create-and-update-pricing-plans.md15.3 KiB
- references/pricing-plans/find-and-manage-pricing-plan-orders.md15.5 KiB
- references/pricing-plans/pricing-plans-bookings-integration.md8.0 KiB
- references/pricing-plans/pricing-plans-dashboard-navigation.md2.5 KiB
- references/restaurants/restaurants-dashboard-navigation.md4.8 KiB
- references/restaurants/wix-restaurants-setup.md10.3 KiB
- references/rich-content/author-ricos-rich-content.md26.4 KiB
- references/rich-content/ricos-converter-service.md9.0 KiB
- references/seo/manage-google-search-console.md13.5 KiB
- references/seo/manage-seo-suggestions.md21.1 KiB
- references/seo/manage-seo-tags.md29.7 KiB
- references/seo/manage-url-redirects.md12.4 KiB
- references/site-properties/change-payment-currency-site-properties.md7.0 KiB
- references/site-properties/site-properties-dashboard-navigation.md1.5 KiB
- references/site-properties/update-business-info.md11.9 KiB
- references/sites/create-headless-site.md1.6 KiB
- references/sites/create-site-from-template.md4.5 KiB
- references/sites/manage-oauth-apps.md5.4 KiB
- references/sites/query-sites.md4.1 KiB
- references/sites/read-site-context.md4.7 KiB
- references/sites/send-feedback-to-wix.md3.9 KiB
- references/sites/site-import.md19.9 KiB
- references/sites/sites-dashboard-navigation.md1.4 KiB
- references/sites/upload-static-site.md36.4 KiB
- references/stores/bulk-create-products-with-options.md41.8 KiB
- references/stores/change-store-currency.md1021 B
- references/stores/create-product-catalog-v1.md4.5 KiB
- references/stores/create-product-catalog-v3.md22.4 KiB
- references/stores/find-products-query-and-search-catalog-v3.md20.7 KiB
- references/stores/manage-store-categories-catalog-v3.md20.6 KiB
- references/stores/query-products-catalog-v1.md2.3 KiB
- references/stores/stores-dashboard-navigation.md4.1 KiB
- references/stores/update-product-stock-and-pre-order.md15.5 KiB
- references/stores/update-product-with-options.md42.5 KiB
references/bookings/diagnose-availability-issues.md
name: "Check Bookings Availability (and Diagnose Issues)" description: "Answers whether an appointment-based Wix Bookings service currently has bookable availability — the primary question — and diagnoses the cause only when there's no availability or the owner asks why. To diagnose, first rules out service-level blockers the availability endpoint can't see (service hidden, online booking off), then runs DiagnoseAvailability for ordered, machine-readable staff/setup reasons, with a manual fallback for booking-policy and capacity causes. Use when someone asks whether a service has availability, or why a service shows no times / customers can't book it."
Check Bookings Availability (and Diagnose Issues)
This recipe answers two related questions, in order of how often they're asked:
"Does this service have availability right now?" — the default. Give a short, plain status answer.
"Why is there no availability / why can't customers book?" — diagnose the cause. Only do this when there's no bookable availability, or the owner explicitly asks why / how to fix it.
Don't diagnose by default. If the owner just wants to know the status and the service is bookable, answer that and stop.
⚠️ Output rule (read first)
You are talking to a site owner, not a developer. Use everything below — endpoints, JSON, reason codes,
suggestedActionvalues, field names — only to do the work. Your reply must be plain language.Keep it short and only say what's relevant:
When the service is bookable, confirm it in a sentence. Don't recite everything that happens to be fine — the owner didn't ask for an audit. ❌ "It's visible on your site (not hidden). Online booking is ON. It has 1 staff member assigned and 1 location." ✅ "Yes — [service] has open times customers can book."
When you diagnose, surface only the blocking cause and its fix — not a checklist of everything that passed.
Never put any of these in your reply: endpoint paths or curl, JSON, reason-code names (e.g.
RESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION),suggestedActionenums, or field names. Translate them. See Presenting to the user.✅ "Your staff don't have working hours at the location this service is offered at, so there's nothing to book. Want me to add hours there?" ❌ "
DiagnoseAvailabilityreturnedRESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION/CHECK_WORK_LOCATIONS."
When to use
Owner asks whether an appointment-based service has availability / bookable times → Step 1.
Owner reports the service has no bookable times, or that customers can't book (or can't even find) it → Step 1 will come back empty, so go on to diagnose (Step 2 onward). For "can't book / can't find," start diagnosis at Step 2 even if Step 1 returned slots — a hidden service still lists slots (see the note in Step 1).
Owner narrows to a specific date/time ("why nothing on 3 Aug from 4pm?") and the slot check for that window comes back empty → this is a "why" question. Run the diagnosis (Step 2 → Step 3). Do not answer it from the empty slot list alone.
Scope: appointment-based services.
🚫 Never invent the cause (read first)
An empty
ListAvailabilityTimeSlotstells you there is no availability — not why. The reason for an empty result comes only from the checks in Steps 2–4 (service.hidden/onlineBooking, thenDiagnoseAvailability, then policy/capacity). Never state a cause you didn't get from them — do not guess "the staff aren't scheduled," "it's outside working hours," a date-range problem, or anything else from a zero slot count. If you haven't run the diagnosis, you don't know the reason yet: run it, then report what it returns.
Prerequisites
Wix Bookings app installed (App ID:
13d21c63-b5ec-5912-8397-c3a5ddb27a97).
Note: If Bookings APIs return errors, the app may not be installed. Use List Installed Apps to verify and Install Wix Apps to install it.
Typically the
serviceId(optionally with a staff member'sresourceIdto scope to one provider). AresourceIdon its own is also supported for the staff editor, where no service is in context — see Which inputs to pass.Authorization (diagnosis only): to call
DiagnoseAvailabilitythe caller needs thebookings:availability:v2:time_slot:diagnose_availabilitypermission. A plain site/owner token can come back 403 (empty body) if that permission isn't granted — that's an auth problem, not "no cause found." Ensure the calling context carries the permission before treating a 403 as inconclusive.
Step 1 — Report the current availability status
This is the default answer. Find out whether customers can actually book the service right now, then say so plainly.
Endpoint:
ListAvailabilityTimeSlots— the same slots a customer sees. See End-to-End Booking Flow for the request shape. Query the service over a sensible upcoming window (e.g. the next few weeks) in the site's time zone.
Interpret the result:
| What comes back | Availability status | What to do |
|---|---|---|
| One or more bookable slots | Bookable. | Tell the owner in a sentence and stop — no diagnosis needed unless they ask why/how to change something. |
Slots exist but none are bookable (nonBookableReasons / bookingPolicyViolations set) | Not bookable — policy/capacity. | This is the cause. Surface it directly (policy/capacity causes). No need to run DiagnoseAvailability. |
| No slots at all | No availability. | Diagnose: go to Step 2, then Step 3. Don't guess the reason from the empty list — an empty result isn't a cause. |
The hidden-service trap. A service that's hidden from the site, or has online booking turned off, can still list slots here — so bookable slots do not prove customers can book it. When the complaint is "customers can't book / can't find this service" (as opposed to "the calendar is empty"), run Step 2 before trusting the slot count — it's the single most common cause and neither
ListAvailabilityTimeSlotsnorDiagnoseAvailabilitydetects it.
If no slots come back at all, also double-check the inputs before concluding "no availability": the queried window isn't entirely in the past, and any locations filter is actually offered by the service.
Diagnosis
Do the following only when Step 1 found no availability, or the owner asks why there are no times / how to fix it / why customers can't book. Run the checks in order — cheapest, most common blockers first.
Step 2 — Rule out service-level blockers (visibility & online booking)
Two service settings block booking entirely, regardless of staff availability, and are invisible to DiagnoseAvailability. Check them first with a single read of the service.
Endpoint:
GET https://www.wixapis.com/_api/bookings/v2/services/{serviceId}
Inspect two fields on the returned service:
| Field | Blocking value | What it means (the "Visible on your site and app" toggle is hidden inverted) |
|---|---|---|
hidden | true | The service is hidden from the site and app. Customers can't see or book it. In the dashboard this is the "Visible on your site and app" toggle turned off. |
onlineBooking.enabled | false | Online booking is turned off for this service. It may be visible, but customers can't book it online (staff can still book it manually). |
If
hidden: true→ that's the cause. Stop here. Fix: make the service visible (offer to flip the toggle for them).If
onlineBooking.enabled: false→ that's the cause (for "can't book online"). Fix: turn online booking on.If both are fine (
hidden: false,onlineBooking.enabled: true) → proceed to Step 3. Don't announce that they're fine — just move on.
Why this comes first: a hidden service can still have staff, working hours, and internally-generated time slots — so
ListAvailabilityTimeSlotsandDiagnoseAvailabilitywill happily report on those slots (including policy details like "too late to book"). None of that is the real reason the customer can't book. Confirming visibility first prevents a confidently-wrong answer.
Step 3 — Run the diagnosis
DiagnoseAvailability is a read-only custom action that explains why availability is empty rather than returning slots.
Endpoint:
POST https://www.wixapis.com/_api/service-availability/v2/time-slots/diagnoseMaturity: ALPHA, behind the
diagnoseAvailabilityEndpointfeature toggle (deployed and available in production). If it returns no reasons for a service you'd expect to be broken, treat the result as inconclusive and go to Step 4.hasAvailabilityis settrueonly on the service paths, when the availability-window check confirms real availability — and forserviceId-only, only when the service needs a single staff resource type. It is never assertedtrueforserviceId+resourceId(one resource can't confirm the whole service) or for resource-only. SohasAvailability: falsewith an emptyreasonsarray means inconclusive ("no blocking cause found"), not necessarily "no availability."
Which inputs to pass (prefer a service)
Prefer passing serviceId — on its own, or together with a resourceId to scope to one provider. resourceId alone is a valid mode (it serves the staff editor, where there is no service context) but is shallower; use it when a service genuinely isn't available.
The service is what makes the diagnosis deep. Only the service paths run the L2 availability-window check — it needs the service configuration (duration, buffer, offered locations, resource types) to actually verify the resource has real windows in the range and at the right locations. That L2 check is what produces NO_RESOURCE_AVAILABILITY_WINDOWS, RESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION, and REQUESTED_LOCATION_NOT_OFFERED_BY_SERVICE.
| Inputs | Diagnoses | Depth | hasAvailability |
|---|---|---|---|
serviceId + resourceId (preferred) | Why a specific provider has no slots for the service | L1 setup + L2 window/location | never asserted true |
serviceId only | Whole-service availability across assigned staff/locations | L1 setup + L2 window/location | true only if the service needs a single staff resource type |
resourceId only | Staff-editor check, no service context | L1 setup + missing/empty working-hours check (no window/location; deep not allowed) | never asserted true |
Resource-only is a valid mode, but lighter. It exists for contexts where there is no service — e.g. the staff editor, diagnosing a staff member on their own. It catches a missing or empty working-hours schedule (RESOURCE_HAS_NO_WORKING_HOURS), but with no service configuration it can't run the availability-window or location checks, can't resolve locations, and can't use deep. So problems that only surface against a service — no windows despite having hours, a location mismatch, duration/buffer — are caught only when a serviceId is supplied.
Owner reports a service has no availability → pass
serviceId.Concern is a specific provider, and you have (or can find) a service → pass
serviceId+resourceId(use a service they're assigned to) for the fullest diagnosis.Only a
resourceIdis available (e.g. from the staff editor, with no service in context) → use resource-only; it flags missing/empty working hours, but treat an inconclusive result with care — it can't check windows, locations, or rundeep. When you can, re-run with a service the resource is assigned to.
Request
curl -X POST 'https://www.wixapis.com/_api/service-availability/v2/time-slots/diagnose' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{
"serviceId": "<SERVICE_ID>",
"fromLocalDate": "2026-07-01T00:00:00",
"toLocalDate": "2026-09-29T00:00:00",
"timeZone": "America/New_York"
}'| Field | Notes |
|---|---|
serviceId | Service to diagnose. Provide this or resourceId. |
resourceId | Staff member / resource to diagnose. Pair it with serviceId (see Which inputs to pass). Resource-only (no serviceId) runs a lighter check — missing/empty working hours only, no window/location/deep — and can miss service-dependent problems. |
fromLocalDate | YYYY-MM-DDThh:mm:ss (ISO-8601). Optional; defaults to now. |
toLocalDate | Optional; defaults to fromLocalDate + 90 days. |
timeZone | IANA tz (e.g. America/New_York). Defaults to the site's time zone. |
locations | Locations to diagnose. Empty ⇒ all locations the service offers. |
deep | Optional (default false). Set true with a serviceId to refine a "no availability windows" result into why — outside working hours vs. blocked/busy time. Extra sampling call; only acts when no windows exist; rejected on the resource-only path (MISSING_ARGUMENTS). See Deep mode. |
Response
{
"hasAvailability": false,
"reasons": [
{ "code": "RESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION", "suggestedAction": "CHECK_WORK_LOCATIONS" }
],
"resolvedContext": {
"serviceId": "<SERVICE_ID>",
"resolvedLocations": [ { "id": "...", "name": "...", "locationType": "BUSINESS" } ],
"durationInMinutes": 60,
"bufferTimeInMinutes": 0,
"fromLocalDate": "2026-07-01T00:00:00",
"toLocalDate": "2026-09-29T00:00:00",
"timeZone": "..."
}
}reasonsare ordered most-specific first. Fix the first, then re-run.resolvedContextechoes the inputs actually used (resolved locations, duration, buffer, window, time zone) — use it to confirm you diagnosed what you meant to.Empty
reasons⇒ inconclusive → go to Step 4.
Reason codes → owner fix (agent-internal — never shown to the user)
This table is for your interpretation only. Map the returned code to the plain-language cause and fix, then write the reply in everyday words — the code names and
suggestedActionvalues must not appear in your response. See Presenting to the user.
code | suggestedAction | Meaning & fix |
|---|---|---|
NO_ASSIGNED_STAFF_OR_RESOURCES | ASSIGN_STAFF_OR_RESOURCES | No staff/resources assigned to the service. Assign at least one. |
RESOURCE_NOT_ASSIGNED_TO_SERVICE | ASSIGN_RESOURCE_TO_SERVICE | The given resource isn't assigned to the service. Assign it, or diagnose a resource that is. |
RESOURCE_HAS_NO_WORKING_HOURS | CHECK_STAFF_WORKING_HOURS | The staff member has no working-hours schedule. Configure working hours — see Bookings Staff Setup. |
RESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION | CHECK_WORK_LOCATIONS | Assigned resources have availability windows, but none at a location the service offers. Add working hours at an offered location, offer the service where the staff works, or assign a provider who works at the offered location. |
NO_RESOURCE_AVAILABILITY_WINDOWS | CHECK_STAFF_WORKING_HOURS | No availability windows exist anywhere in the diagnosed range. Add working hours, or widen the range. |
REQUESTED_DATE_OUTSIDE_SERVICE_AVAILABILITY_RANGE | CHECK_SERVICE_AVAILABILITY_RANGE | The dates being checked fall outside the date range the service itself is offered on (its own availability window) — so no slots exist there, whatever the staff's hours. Covers both before the range starts and after it ends. Deterministic: returned on the standard call (no deep needed) and ahead of the working-hours/blocked reasons, so trust it over RESOURCE_NOT_IN_WORKING_HOURS. Fix: extend the service's available date range, or check dates within it. (The exact bounds aren't in resolvedContext; if you need to state the start date, read service.schedule.firstSessionStart via Services V2 Get Service.) |
REQUESTED_LOCATION_NOT_OFFERED_BY_SERVICE | CHECK_SERVICE_LOCATIONS | A requested locations filter isn't offered by the service. Drop the filter or fix the service's locations. |
DURATION_TOO_LONG_FOR_AVAILABLE_WINDOWS | REDUCE_DURATION_OR_BUFFER | The service is longer than every free window. Shorten it or lengthen working hours. |
BUFFER_TIME_ELIMINATES_WINDOWS | REDUCE_DURATION_OR_BUFFER | Buffer time consumes all otherwise-free windows. Reduce the buffer or lengthen working hours. |
SERVICE_AVAILABILITY_CONFIGURATION_MISSING | — | The service's availability configuration is missing. |
RESOURCE_TYPE_RESOLUTION_FAILED | — | The service's resource types couldn't be resolved. |
RESOURCE_NOT_IN_WORKING_HOURS | CHECK_STAFF_WORKING_HOURS | The resource works, but not during the empty range — it's outside their working hours. Reported only with deep: true. Fix: adjust/extend working hours. |
RESOURCE_BLOCKED | CHECK_BLOCKED_TIME | The resource is within working hours but blocked by existing bookings, calendar events, or an external calendar. Reported only with deep: true. Fix: free up the blocked time. |
Endpoint errors
| HTTP | application_code | Cause |
|---|---|---|
| 400 | MISSING_ARGUMENTS | Neither serviceId nor resourceId provided; or deep: true sent without a serviceId. |
| 400 | INVALID_TIME_ZONE | timeZone isn't a valid IANA zone. |
| 400 | INVALID_SERVICE_IDS_PROVIDED | The serviceId doesn't resolve to a service on the site. In practice a well-formed-but-nonexistent serviceId (not only a malformed one) currently surfaces here rather than as a 404 — re-check the ID. |
| 404 | SERVICE_NOT_FOUND / RESOURCE_NOT_FOUND | Service / staff record missing. (A missing serviceId may instead surface as the 400 INVALID_SERVICE_IDS_PROVIDED above.) |
| 404 | NO_IMPLEMENTERS_FOUND / MULTIPLE_IMPLEMENTERS_FOUND | No / multiple availability providers configured. |
| 403 | UNAUTHORIZED_OPERATION | Caller lacks bookings:availability:v2:time_slot:diagnose_availability. |
Deep mode
deep: true (with a serviceId) refines a no-availability-windows result — it tells you why there are no windows: the staff are outside their working hours for that range (RESOURCE_NOT_IN_WORKING_HOURS) vs. within hours but blocked/busy (RESOURCE_BLOCKED, e.g. existing bookings or an external calendar).
When to use: the standard call returns
NO_RESOURCE_AVAILABILITY_WINDOWSand you want to tell the owner whether to add hours or free up blocked time.How it works: it samples a handful of slots across the range and makes one availability check, then attributes the cause. It runs only when no windows exist — it does nothing when availability is already present.
Constraints: requires a
serviceId(resource-only +deep→MISSING_ARGUMENTS); it's a best-effort refinement and silently falls back to the genericNO_RESOURCE_AVAILABILITY_WINDOWScause if the sampling is inconclusive.
Step 4 — Fallback when the endpoint is inconclusive
Empty reasons + still no bookable slots usually means the cause is one DiagnoseAvailability doesn't evaluate: booking policy or remaining capacity. You may already have this from the ListAvailabilityTimeSlots call in Step 1 — if not, call it again for the same service and window and inspect the returned slots.
<a id="booking-policy--capacity-slots-exist-but-arent-bookable"></a>
nonBookableReasons—noRemainingCapacity,violatesBookingPolicy,reservedForWaitingList,eventCancelled.bookingPolicyViolations—tooEarlyToBook,tooLateToBook,bookOnlineDisabled.
If no slots come back at all, re-check the inputs: the diagnosed window isn't entirely in the past, and any locations filter is actually offered by the service.
See End-to-End Booking Flow for the ListAvailabilityTimeSlots request shape.
Presenting to the user
Whether you're reporting status or a cause, reply in plain, friendly language and keep it short.
Answer the actual question. If they asked "is it available," the reply is a status line — not a diagnosis. Only explain causes when there's no availability or they asked why.
Only say what's relevant. When the service is bookable, confirm it in a sentence; don't list every setting that's fine ("visible, online booking on, 1 staff, 1 location" — the owner didn't ask). When diagnosing, give only the blocking cause and its fix, not a rundown of everything that passed.
Don't expose internals — no reason codes,
suggestedActionenums, raw JSON, endpoint names, or field paths.Lead with the point in plain English, then the concrete next step. One or two short sentences is usually enough.
Use the owner's own terms — "your service", "your staff", "the dates you're looking at", real location names from
resolvedLocations.Offer to help with the fix rather than only stating it.
If diagnosis is inconclusive (empty
reasons), say only that you couldn't find a blocking problem, and describe what you'll check next (policy/capacity, or re-run against a service for a resource-only check). Do not state or imply that anything is set up correctly — an emptyreasonsarray means "no blocker detected," not "working hours / locations / setup are present." On the resource-only path never say the staff "have working hours set"; the check doesn't verify that.
Plain-language phrasing per outcome:
| Outcome | Say something like |
|---|---|
| Service is bookable (status) | "Yes — [service] has open times customers can book (the next one is [day/time])." |
Service is hidden from the site (hidden: true) | "This service is currently hidden from your site and app, so customers can't see or book it. Want me to make it visible?" |
Online booking turned off (onlineBooking.enabled: false) | "Online booking is turned off for this service, so customers can't book it themselves online (you can still book it for them manually). Want me to turn online booking on?" |
| No staff/resources on the service | "This service doesn't have any staff assigned yet, so there's nothing to book. Want me to help you add someone?" |
| Provider isn't on the service | "That staff member isn't assigned to this service, so their times don't show. I can add them to it." |
| Provider has no working hours | "The staff for this service don't have any working hours set, so there are no times to offer. Let's set their hours." |
| Provider works only at other locations | "Your staff have working hours, but not at the location(s) this service is offered at. We can either add hours at one of the service's locations, or offer the service where they already work." |
| No working-hours windows in range | "None of the staff for this service have working hours in the dates you're checking. Let's add or extend their hours — or try a different date range." |
| Dates outside the service's available range | "This service isn't offered on the dates you're looking at — it's only available during a set date range. Want me to extend the dates it's offered, or check a date inside that range?" |
| Outside working hours (deep) | "For those dates, your staff simply aren't scheduled to work, so there's nothing to offer. Let's add working hours in that period." |
| Within hours but blocked/busy (deep) | "Your staff are scheduled to work then, but that time is already taken up — by existing bookings or events on their calendar. Freeing some of it up will open slots." |
| Service too long / buffer too large | "The service is longer than any open gap in your staff's schedule (the duration plus buffer doesn't fit). Shortening it a bit, or widening working hours, would open up slots." |
| Requested location not offered | "This service isn't offered at the location you picked. Want me to add that location to the service, or check a different one?" |
| Slots exist but aren't bookable | "There are times available, but customers can't book them right now — [e.g. they're fully booked / it's too early or late to book per your policy]. Here's how to adjust that." |
Example conversational reply (for a location-mismatch result):
I looked into why no times are showing for [service name]. Your staff do have working hours, but none of them are at the locations this service is offered at (Jerusalem2 and Holon) — so there's nothing available to book.
To fix it you can either add working hours for a staff member at Jerusalem2 or Holon, or offer the service at the location where your staff already work. Want me to set that up?
Common causes (quick reference)
Popular reasons a service shows no availability, and where each surfaces:
| Situation | Where it surfaces | Fix |
|---|---|---|
| Service is bookable | Step 1 — ListAvailabilityTimeSlots returns bookable slots | Nothing — report the status. |
| Service hidden from the site/app | Step 2 — service.hidden: true | Make the service visible ("Visible on your site and app" toggle). |
| Online booking turned off | Step 2 — service.onlineBooking.enabled: false | Turn online booking on for the service. |
| No staff/resources on the service | NO_ASSIGNED_STAFF_OR_RESOURCES | Assign staff/resources. |
| Provider isn't on the service | RESOURCE_NOT_ASSIGNED_TO_SERVICE | Assign the provider. |
| Provider has no working hours | RESOURCE_HAS_NO_WORKING_HOURS | Configure working hours. |
| Provider works only at other locations | RESOURCE_NOT_AVAILABLE_AT_SERVICE_LOCATION | Align staff work locations with the service's offered locations. |
| No working-hours windows in range | NO_RESOURCE_AVAILABILITY_WINDOWS | Add working hours / widen the range. |
| Dates fall outside the service's own offered date range | REQUESTED_DATE_OUTSIDE_SERVICE_AVAILABILITY_RANGE | Extend the service's available date range, or check dates within it. |
| No windows — outside working hours (deep) | RESOURCE_NOT_IN_WORKING_HOURS (deep: true) | Add or extend working hours in the range. |
| No windows — within hours but blocked/busy (deep) | RESOURCE_BLOCKED (deep: true) | Free up blocked time / check the external calendar. |
| Service too long / buffer too large for the windows | DURATION_TOO_LONG_FOR_AVAILABLE_WINDOWS, BUFFER_TIME_ELIMINATES_WINDOWS | Shorten duration/buffer or lengthen hours. |
| Requested location not offered | REQUESTED_LOCATION_NOT_OFFERED_BY_SERVICE | Fix the location filter or the service's locations. |
| Slots exist but aren't bookable (fully booked, too early/late, online booking off) | Step 1 / Step 4 — ListAvailabilityTimeSlots nonBookableReasons / bookingPolicyViolations | Adjust capacity or booking policy. |
Gotchas
Don't diagnose when you weren't asked to. The default question is "does this have availability" — answer the status and stop. Only dig into causes when there's no availability or the owner asks why / how to fix.
Keep the reply to what's relevant. When a service is bookable, don't recite every setting that's fine; when diagnosing, give only the blocking cause, not a pass/fail checklist.
A hidden service is the classic wrong-diagnosis trap.
hidden: true(oronlineBooking.enabled: false) blocks booking entirely, but a hidden service can still list slots — soListAvailabilityTimeSlotsandDiagnoseAvailabilitywill report on those slots and their policy details (e.g. "too late to book"), none of which is the real reason. When the complaint is "customers can't book / can't see this service," run Step 2 first.hasAvailability: false+ emptyreasons≠ a confirmed problem. It means "no blocking cause detected." Always confirm withListAvailabilityTimeSlots.DiagnoseAvailabilityis ALPHA and feature-toggled. If it returns nothing for an obviously broken service, thediagnoseAvailabilityEndpointtoggle may be off — fall back to Step 4.A 403 is an auth problem, not a diagnosis. The action needs the
bookings:availability:v2:time_slot:diagnose_availabilitypermission; a caller without it gets a 403 with an empty body. Don't read that as "no cause found" — confirm the caller has the permission (see Prerequisites).Never state a cause you didn't diagnose. A zero slot count from
ListAvailabilityTimeSlotsmeans "no availability," not a reason. Guessing "the staff aren't scheduled to work" (or any other cause) from an empty list is the failure this recipe exists to prevent — runDiagnoseAvailabilityand report the code it returns. This applies especially when the owner narrows to a specific date/time and it comes back empty: that's a diagnosis trigger, not a status reply.A date-range restriction is a distinct cause — don't blame staff hours for it. When a service is only offered within a set date range and the owner asks about a date outside it,
DiagnoseAvailabilityreturnsREQUESTED_DATE_OUTSIDE_SERVICE_AVAILABILITY_RANGEon the standard call, ahead of the deep working-hours/blocked reasons. If you see it, say the service isn't offered on those dates — not that staff aren't scheduled (they may well work then; the service just isn't offered). It covers dates both before and after the range.deep: trueneeds aserviceId(resource-only +deep→MISSING_ARGUMENTS) and only refines a "no windows" result — it does nothing when windows already exist.DiagnoseAvailabilityignores booking policy and capacity — those come fromListAvailabilityTimeSlots(Step 1 / Step 4).Resource-only diagnosis is lighter. Passing
resourceIdwithoutserviceIdcatches missing/empty working hours but skips the window, location, and deep checks, so it can return "inconclusive" for service-dependent problems. Valid when there's no service context (e.g. the staff editor); otherwise pair the resource with a service.Appointment-based services only.
API Documentation References
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
The author says: Requires Wix REST API access (API key or OAuth).
Security
What our scanner noticed· Low risk
- Phrasing that asks for actions without confirmation
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Wix
- Publisher
- Wix (Official)
- Source
- wix/skills · skills/wix-manage · commit d168bc2
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Wix.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download wix-manage.zip