@wix/agent-skills 1.33.0 → 1.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/README.md +21 -0
  2. package/package.json +2 -2
  3. package/skills/wix-app/references/DASHBOARD_PAGE.md +1 -1
  4. package/skills/wix-headless-kit/install/pins.json +1 -1
  5. package/skills/wix-manage/SKILL.md +25 -7
  6. package/skills/wix-manage/references/automations/actions.md +11 -11
  7. package/skills/wix-manage/references/automations/activation-status.md +6 -9
  8. package/skills/wix-manage/references/automations/api-catalog.md +48 -32
  9. package/skills/wix-manage/references/automations/automation-model.md +97 -22
  10. package/skills/wix-manage/references/automations/bracket-expressions.md +7 -7
  11. package/skills/wix-manage/references/automations/build-and-manage-automations.md +140 -309
  12. package/skills/wix-manage/references/automations/conditions.md +187 -0
  13. package/skills/wix-manage/references/automations/schemas-and-scheduling.md +191 -0
  14. package/skills/wix-manage/references/automations/special-actions.md +210 -0
  15. package/skills/wix-manage/references/automations/triggers.md +47 -10
  16. package/skills/wix-manage/references/automations/validation-and-verification.md +320 -0
  17. package/skills/wix-manage/references/custom-apps/use-app-tools.md +124 -0
  18. package/skills/wix-manage/references/events/create-wix-event.md +136 -73
  19. package/skills/wix-manage/references/events/manage-event-guests.md +366 -0
  20. package/skills/wix-manage/references/events/manage-event-tickets.md +293 -0
  21. package/skills/wix-manage/references/events/manage-wix-events.md +313 -55
  22. package/skills/wix-manage/references/stores/update-product-with-options.md +58 -2
  23. package/skills/wix-manage/references/custom-apps/use-app-skills-and-app-tools.md +0 -208
package/README.md CHANGED
@@ -39,6 +39,16 @@ Install using [Gemini CLI](https://geminicli.com):
39
39
  gemini extensions install https://github.com/wix/skills
40
40
  ```
41
41
 
42
+ ### Antigravity Plugin
43
+
44
+ In [Antigravity](https://antigravity.google), open **Customizations → Plugins**, click **+ Install from URL**, and enter `https://github.com/wix/skills/tree/main/antigravity/wix`. Or, from a terminal:
45
+
46
+ ```bash
47
+ agy plugin install https://github.com/wix/skills/tree/main/antigravity/wix
48
+ ```
49
+
50
+ The Wix MCP server signs you in to your Wix account the first time a Wix tool is used.
51
+
42
52
  ### Skills CLI
43
53
 
44
54
  Install using [skills CLI](https://github.com/vercel-labs/skills):
@@ -93,6 +103,17 @@ When a major bump is required (a breaking change in the underlying `wix-cli`), t
93
103
 
94
104
  Besides the npm package, skills are served as raw markdown / `.tgz` at `https://www.wix.com/skills/<name>` (also `dev.wix.com/skills`), directly from the `main` branch of `wix/skills` with no build step. Responses are cached, so a change reflects there within a few minutes of reaching that branch.
95
105
 
106
+ ## Privacy and telemetry
107
+
108
+ Only `wix-replatform` collects telemetry. The other skills send nothing of their own; calls they make to Wix APIs and the Wix MCP are covered by the [Wix Privacy Policy](https://www.wix.com/about/privacy).
109
+
110
+ During a migration run, `wix-replatform`:
111
+
112
+ - **Sends run telemetry to Wix** (`https://frog.wix.com/migration-data-validator`): stage timings and outcomes, migrated record counts, errors and gaps by type (never record contents), the source platform and site URL, the destination site ID and the operator's Wix user ID. Turn it off with `RP_TELEMETRY_BI_DISABLED=1`.
113
+ - **Reads the agent's Claude Code session transcripts** (`~/.claude/projects/`) at the end of the run, copies them compressed into the migration project's `telemetry/transcripts/` folder on your machine, and adds a summary (token cost, turn counts, tool failures, retry loops) to the run telemetry. The transcripts themselves stay local. Turn it off with `RP_TELEMETRY_TRANSCRIPT_DISABLED=1`.
114
+
115
+ Set the variables in the environment the agent runs in. See [wix-replatform/README.md](wix-replatform/README.md).
116
+
96
117
  ## Contributing
97
118
 
98
119
  To report a problem with a skill or suggest a change, [open an issue](https://github.com/wix/skills/issues/new). Pull requests are not merged in this repository; accepted changes are made by the maintainers. See [CONTRIBUTING.md](CONTRIBUTING.md) for what makes a useful report.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/agent-skills",
3
- "version": "1.33.0",
3
+ "version": "1.33.1",
4
4
  "description": "Wix Skills for AI coding agents — versioned npm distribution of the wix/skills content.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -12,7 +12,7 @@
12
12
  "url": "https://github.com/wix/skills/issues"
13
13
  },
14
14
  "scripts": {
15
- "version": "node .github/scripts/sync-plugin-versions.mjs && git add .claude-plugin/plugin.json .codex-plugin/plugin.json .cursor-plugin/plugin.json plugin.json gemini-extension.json skills/wix-headless-kit/install/pins.json"
15
+ "version": "node .github/scripts/sync-plugin-versions.mjs && git add .claude-plugin/plugin.json .codex-plugin/plugin.json .cursor-plugin/plugin.json plugin.json gemini-extension.json antigravity/wix/plugin.json skills/wix-headless-kit/install/pins.json"
16
16
  },
17
17
  "files": [
18
18
  "skills/**",
@@ -33,7 +33,7 @@ The CLI generates the folder, the page's component file (`<page>.tsx`, the build
33
33
 
34
34
  **After scaffolding, check `routePath`:** use `support-tickets`, not `/support-tickets`; a leading slash fails registration even if the build passes. Internal router paths stay `/`, `/:id`, `/new`, never prefixed with `<route>` — see `<pkgRoot>/dist/docs/Collection to Entity Flow.md`.
35
35
 
36
- **Before writing that UI:** copy in the installed `@wix/patterns` page template that matches, per [DRAFT_TEMPLATE.md](dashboard-page/DRAFT_TEMPLATE.md) — don't compose the shell from scratch.
36
+ **Before writing UI:** copy the [template](dashboard-page/DRAFT_TEMPLATE.md). Make sure `WixPatternsProvider` remains at the extension root, inside `BusinessManagerTheme` and above all components calling Patterns hooks.
37
37
 
38
38
  **Then, for whatever the template doesn't cover:** list every patterns name you'll add, and resolve them all in one `node <pkgRoot>/bin/patterns-lookup.cjs <name…>` call ([WIX_PATTERNS_DOCS.md § 1](WIX_PATTERNS_DOCS.md#1--the-index)). Its import, examples and props file decide whether you open anything else. Each Bash call is a fresh shell — re-set the path variable every time.
39
39
 
@@ -3,6 +3,6 @@
3
3
  "@wix/create-new": "0.0.124",
4
4
  "typescript": "5.8.3",
5
5
  "templates": {
6
- "ref": "v1.33.0"
6
+ "ref": "v1.33.1"
7
7
  }
8
8
  }
@@ -36,8 +36,8 @@ Lists all apps installed on a site using Apps Installer API. Useful for verifyin
36
36
 
37
37
  ## Custom Apps
38
38
 
39
- ### [Use App Skills and App Tools](references/custom-apps/use-app-skills-and-app-tools.md)
40
- "Discovers and runs what the apps installed on a Wix site add for AI agents: app skills, which are an app's instructions for a task (for example pricing a product for customers in another country, or checking a property listing before it is published), and app tools, which are actions and lookups an app exposes. Use every time a site has custom apps installed, before acting on the user's request: knowing which apps are installed doesn't tell what they can do, so only this skill's discovery calls show whether one of them handles the request. Also 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, skill or tool. Covers reading a chosen skill's instructions and running the app tools it allows, or running a single app tool directly."
39
+ ### [Use App Tools](references/custom-apps/use-app-tools.md)
40
+ "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."
41
41
 
42
42
  ---
43
43
 
@@ -237,10 +237,16 @@ Routes discounts, coupons, sales and bundles to promotion recipes, and visual pr
237
237
  ## Events
238
238
 
239
239
  ### [Create an Event with the Wix Events API](references/events/create-wix-event.md)
240
- "Creates an event with the Wix Events V3 API — the required request body, ISO-8601 date and time settings, venue/online/TBD location, RSVP vs ticketed registration, guest capacity, short vs rich-text descriptions, ticket tiers and pricing, and recurring series. Covers the exact field shapes and the API's misleading validation messages. Use when the user wants to create an event, set its date, location, description, guest limit or ticket prices, or set up a repeating event."
240
+ "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."
241
241
 
242
242
  ### [Manage Wix Events — Publishing, Cancelling, Cloning and Counting](references/events/manage-wix-events.md)
243
- "Operates on events that already exist with the Wix Events V3 API — finding an event by title, publishing a draft, cancelling, deleting (one or by filter), cloning, updating an event's date or details, and counting events. Use when the user wants to find, publish or cancel an event, duplicate one, move an event's date, delete events in bulk, or count their events. Creating an event, its tickets or a recurring series is a separate recipe."
243
+ "Operates on Wix events that already exist with the Wix Events V3 API — finding, updating (date, venue, details, 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."
244
+
245
+ ### [Manage Event Tickets](references/events/manage-event-tickets.md)
246
+ "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."
247
+
248
+ ### [Manage Event Guests](references/events/manage-event-guests.md)
249
+ "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, 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."
244
250
 
245
251
  ---
246
252
 
@@ -455,7 +461,7 @@ Query and list products from a Wix Store using the Catalog V1 Query Products end
455
461
  Manages pre-order settings for product variants using V3 Inventory API. Covers enabling/disabling pre-orders, setting messages, configuring limits, and handling trackQuantity requirements.
456
462
 
457
463
  ### [Update Product with Options (Catalog V3)](references/stores/update-product-with-options.md)
458
- 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, 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.
464
+ 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.
459
465
 
460
466
  ### [Stores Dashboard Navigation](references/stores/stores-dashboard-navigation.md)
461
467
  "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."
@@ -464,7 +470,7 @@ Start here for existing Catalog V3 product updates, including digital products t
464
470
  ## Automations
465
471
 
466
472
  ### [Build and Manage Wix Automations](references/automations/build-and-manage-automations.md)
467
- Inspect Wix automations and their on/off status, create linear automations from the site’s installed triggers and actions, and turn automations on or off on request.
473
+ 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.
468
474
 
469
475
  <details>
470
476
  <summary>Internal skills (loaded on demand by Build and Manage Wix Automations — do NOT use directly)</summary>
@@ -484,8 +490,20 @@ Inspect Wix automations and their on/off status, create linear automations from
484
490
  - [Automations Mapping Expressions](references/automations/bracket-expressions.md)
485
491
  Write builder-compatible automation mapping expressions, literals and data references.
486
492
 
493
+ - [Automations Conditions](references/automations/conditions.md)
494
+ Configure visual and code conditions while preserving boolean intent, comparison boundaries and builder editability.
495
+
496
+ - [Automations Delays Variables and Branches](references/automations/special-actions.md)
497
+ Configure delay, rate-limit, variable and parallel-branch steps, preserving supported existing step metadata.
498
+
499
+ - [Automations Schemas and Scheduling](references/automations/schemas-and-scheduling.md)
500
+ Configure dynamic schemas and scheduled automation triggers with correct timezone and calendar behavior.
501
+
502
+ - [Automations Validation and Persistence](references/automations/validation-and-verification.md)
503
+ Validate automation configuration, check builder compatibility, persist changes and verify the saved result.
504
+
487
505
  - [Automations Activation Status](references/automations/activation-status.md)
488
- Read an automation’s current ACTIVE or INACTIVE status, and activate or deactivate it when the user asks.
506
+ Inspect or change active status with lock checks, revision handling and read-back, without requiring unrelated repairs before deactivation.
489
507
 
490
508
  </details>
491
509
 
@@ -3,7 +3,7 @@ name: "Automations Action Configuration"
3
3
  description: "Configure app-defined automation actions from their input schemas and preserve supported existing action mappings."
4
4
  ---
5
5
 
6
- > **Stage scope:** this stage covers only what [Build and Manage Wix Automations](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) lists; do not perform anything marked "Later stages only" or any workflow that needs a guide marked "not yet published". "Stage", "Later stages only" and "not yet published" describe how this skill is being rolled out; never mention them to the user. Explain a limit in product terms: what can't be done through the API here and where the user can do it instead (for example, in the automations builder).
6
+ > **Stage scope:** this stage covers only what [Build and Manage Wix Automations](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) lists; do not perform anything marked "Later stages only", and follow the instruction attached to each guide marked "not yet published". "Stage", "Later stages only" and "not yet published" describe how this skill is being rolled out; never mention them to the user. Explain a limit in product terms: what can't be done through the API here and where the user can do it instead (for example, in the automations builder).
7
7
 
8
8
  # App-Defined Actions — Discovery, Schemas, Input Mapping
9
9
 
@@ -11,9 +11,9 @@ description: "Configure app-defined automation actions from their input schemas
11
11
 
12
12
  - An action is `appId` + `actionKey`. Find real ones with **Resolve Actions** (site catalog), then read the version active on the site with **Get Runtime Action**. Never invent keys.
13
13
  - The configuration is `appDefinedInfo.inputMapping`: an object keyed ONLY by input-schema property names, with values of the schema's type — literals, or `{{…}}` formulas in fields the UI schema marks as dynamic.
14
- - Fields marked `updateSchemaOnChange: true` reveal more inputs once set → **Get Action Dynamic Input Schema**. Output that depends on configuration → **Get Action Dynamic Output Schema** after the mapping is final.
15
- - **Later stages only — email is outside stage 2:** **Send an email** (`triggered-emails`): initialize each NEW step with **Generate Action Input Mapping**, persist the returned mapping unchanged, then configure content with Get / Set Email Content (Automations Email Actions (not yet published)). Existing content-only edits do not initialize another email.
16
- - Entity-selector fields take **ids**, never display names (Automations Entity and Provider Configuration (not yet published)).
14
+ - Fields marked `updateSchemaOnChange: true` reveal more inputs once set → **Get Action Dynamic Input Schema**. Output that depends on configuration → **Get Action Dynamic Output Schema** after the mapping is final, except user-defined LLM result fields: declare their override schema directly (§4).
15
+ - **Later stages only — email is outside stage 3:** **Send an email** (`triggered-emails`): initialize each NEW step with **Generate Action Input Mapping**, persist the returned mapping unchanged, then configure content with Get / Set Email Content (Automations Email Actions (not yet published; email configuration is outside stage 3)). Existing content-only edits do not initialize another email.
16
+ - Entity-selector fields take **ids**, never display names (Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations))).
17
17
  - Before accepting any action, prove its side effect and its recipient (§6).
18
18
 
19
19
  ---
@@ -29,7 +29,7 @@ Site-scoped (`wix-site-id` header), SDK module `actionCatalog`: Resolve Actions
29
29
  3. Get Runtime Action for the 1–3 best candidates; build against that version's `inputSchema`, `outputSchema`, `interfaceConfiguration`.
30
30
  4. An action missing from Resolve Actions is not usable on this site. The builder shows such a step as "action not found" and blocks it.
31
31
 
32
- **Do not use** unsupported or deprecated actions — `send-mail` (→ `triggered-emails`), `send-coupon-action` (→ `wixcoupons-retrieve_coupon` + a delivery step that uses its code), `wix_automations-velo_action`, `wix_automations-data_manipulation_code` (code variable; public Create refuses it — §4 of Automations Delays Variables and Branches (not yet published)), `whatsapp-send-message` (WhatsApp), `forward-to-zapier` (Zapier), and site actions `wix_automations-wix_api_integration` (non-public). Match these by `actionKey` (+ `appId`), not by app or display name — other actions of the same app are fine. Reasons and replacements: §2 of Automations Feasibility and Planning (not yet published) (site actions: §1).
32
+ **Do not use** unsupported or deprecated actions — `send-mail` (→ `triggered-emails`), `send-coupon-action` (→ `wixcoupons-retrieve_coupon` + a delivery step that uses its code), `wix_automations-velo_action`, `wix_automations-data_manipulation_code` (code variable; public Create refuses it — [Automations Delays Variables and Branches](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-delays-variables-and-branches) §4), `whatsapp-send-message` (WhatsApp), `forward-to-zapier` (Zapier), and site actions `wix_automations-wix_api_integration` (non-public). Match these by `actionKey` (+ `appId`), not by app or display name — other actions of the same app are fine. Reasons and replacements: §2 of Automations Feasibility and Planning (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations)) (site actions: §1).
33
33
 
34
34
  ### Selection rules
35
35
 
@@ -55,7 +55,7 @@ Conditional fields (`if`/`then`/`dependencies`, e.g. a due date shown only when
55
55
  UI-schema keys that change what you may write:
56
56
 
57
57
  - `dynamicValuesOptions.enabled: true` → the field accepts `{{…}}` formulas. `strict: true` → the formula must return the field's exact type/format. **A field without it is static: literal only.**
58
- - `"ui:widget": "EntitySelector"` + `entitySelectorOptions` (`selectorId`/`tag`, `filters`, `dynamicFiltersMapping`) → entity picker; value = id or array of ids (§1 of Automations Entity and Provider Configuration (not yet published)). Same for input properties carrying `itemsSelectionConfiguration`.
58
+ - `"ui:widget": "EntitySelector"` + `entitySelectorOptions` (`selectorId`/`tag`, `filters`, `dynamicFiltersMapping`) → entity picker; value = id or array of ids (§1 of Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations))). Same for input properties carrying `itemsSelectionConfiguration`.
59
59
  - `"ui:field": "AudienceSelector"` → an audience object owned by the app's picker; don't hand-author it — the user sets it in the builder.
60
60
  - `"ui:field": "TextSectionField"` → display-only text; never map it.
61
61
  - `"ui:widget": "hidden"`, `ui:readonly` → keep the schema `default`. Other `ui:*` keys are presentation only.
@@ -63,13 +63,13 @@ UI-schema keys that change what you may write:
63
63
  ## 4. Dynamic input and output schemas
64
64
 
65
65
  - **Input**: a property with `updateSchemaOnChange: true` (e.g. a template or form id) changes which inputs exist. Set it, then call Get Action Dynamic Input Schema with `{appId, actionKey, inputMapping}` (the mapping so far). The builder shows the static schema **merged** with the returned one (properties and `required` united), so keys from either are kept. Repeat if another controlling field is revealed. Never invent a field you expected but didn't get — it appears only after its controlling selection. The builder re-fetches this schema from your saved mapping every time the step is opened, so a dynamic key whose controlling value isn't in the mapping is dropped on the first edit.
66
- - **Output**: after the mapping is final, call Get Action Dynamic Output Schema (or the bulk variant) and use the returned `outputSchema` for downstream `var()` paths. A dynamic output is a _real_ schema — never replace it with an override (allowlist: §3 of Automations Schemas and Scheduling (not yet published)).
66
+ - **Output**: for `wix_automations-llm_call` result fields you define in its output configuration, declare `overrideOutputSchema` directly ([Automations Schemas and Scheduling](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-schemas-and-scheduling) §3); do not probe the dynamic-output SPI to discover your own declared fields or execute the AI during setup. For catalog-driven dynamic outputs, after the mapping is final, call Get Action Dynamic Output Schema (or the bulk variant) and use the returned `outputSchema` for downstream `var()` paths. A dynamic output is a _real_ schema — never replace it with an override (allowlist: [Automations Schemas and Scheduling](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-schemas-and-scheduling) §3).
67
67
 
68
68
  ## 5. Building the input mapping
69
69
 
70
70
  ### 5.1 Provider-owned mappings — email and opaque widgets
71
71
 
72
- > **Later stages only:** email and other opaque-widget configuration is not available in stage 2; this section is published in stage 4.
72
+ > **Later stages only:** email and other opaque-widget configuration is not available in stage 3; this section is published in stage 4.
73
73
 
74
74
  **In this stage:** never invent an opaque widget's mapping or its app-owned keys; tell the user which action to add in the builder and how it should be configured.
75
75
 
@@ -83,7 +83,7 @@ MUST (builder renderability — the `GENERIC` form drops, rewrites or flags anyt
83
83
  - An action with no input properties (or only hidden ones): send `"inputMapping": {}` — the builder writes `{}` itself on open otherwise.
84
84
  - Map fields the form would auto-fill, or opening the step silently changes the automation: fields with a schema `default` (write the default or your value), every `identityType` input (the form auto-maps it when exactly one matching payload path exists), required `date`/`date-time`/`time` strings (else filled with "now").
85
85
  - Enum fields (`oneOf` / `enum`): one of the listed constants.
86
- - Entity-selector fields: real ids of the right kind and shape (§1 of Automations Entity and Provider Configuration (not yet published)).
86
+ - Entity-selector fields: real ids of the right kind and shape (§1 of Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations))).
87
87
  - `{{…}}` only in fields with `dynamicValuesOptions.enabled` (or an `identityType` field), per [Automations Mapping Expressions](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-mapping-expressions) §4: number/boolean hold exactly one expression of that type; date-time a single date-time expression or ISO literal; strings may mix text and expressions. An **array-typed** `var()` in a string field is flagged as a format mismatch.
88
88
  - Don't copy volatile values: dates → `now()`/payload dates; ids → resolved at build time, never from examples.
89
89
  - Keep what the user describes for one field in that field. A subject described as "Order received, then the customer's first name" is one `subject` string mixing text and expressions (`"Order received {{var(…)}}"`); don't split its values into other fields, such as a message's `fields` rows.
@@ -113,7 +113,7 @@ Process: (1) fetch the effective schema (§4) before you write a mapping or any
113
113
 
114
114
  ### 5.3 Validation errors on actions
115
115
 
116
- Error shape, error type → fix, and how the builder shows each: [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) §2. Must-know here: fix the field named by `configurationError.fieldKey` — never delete a field to silence it; `CRITICAL` blocks (status `INVALID`), `WARNING` doesn't but must be reported; a `var()` path that doesn't exist may NOT be reported — verify paths yourself.
116
+ Error shape, error type → fix, and how the builder shows each: [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §2. Must-know here: fix the field named by `configurationError.fieldKey` — never delete a field to silence it; `CRITICAL` blocks (status `INVALID`), `WARNING` doesn't but must be reported; a `var()` path that doesn't exist may NOT be reported — verify paths yourself.
117
117
 
118
118
  ## 6. Side-effect and recipient review
119
119
 
@@ -123,7 +123,7 @@ This section owns the semantic review (you, not code) required for every action
123
123
  - **Entity**: the affected entity has a matching input (e.g. a label picker for "add label").
124
124
  - **Identity input**: the id it acts on, with the right `identityType`.
125
125
  - **Recipient lineage** (email, chat, SMS, push): write down `{requestedAudience, resolvedAudienceKind (contact|visitor|owner|contributor|label|phone|device), resolvedIdentityPath}`. The trigger contact and a contact created upstream are different people even if both are `contactId`. Wording never proves the recipient.
126
- - **Later stages only — email is outside stage 2:** Email: the audience fields decide — read `selectedAudience` / `contactId` exactly as in §3 of Automations Email Actions (not yet published) ("Recipient encoding"). A root `contactId` or `triggerContactExcluded` alone doesn't prove who receives it.
126
+ - **Later stages only — email is outside stage 3:** Email: the audience fields decide — read `selectedAudience` / `contactId` exactly as in §3 of Automations Email Actions (not yet published; email configuration is outside stage 3) ("Recipient encoding"). A root `contactId` or `triggerContactExcluded` alone doesn't prove who receives it.
127
127
  - Chat (`send-message`): only a schema-supported contact-id or visitor-id route; owner/team chat needs a different, proven component or a clarification.
128
128
  - SMS / push: prove the schema-supported contact, audience, phone or device route.
129
129
 
@@ -1,10 +1,8 @@
1
1
  ---
2
2
  name: "Automations Activation Status"
3
- description: "Read an automation’s current ACTIVE or INACTIVE status, and activate or deactivate it when the user asks."
3
+ description: "Inspect or change active status with lock checks, revision handling and read-back, without requiring unrelated repairs before deactivation."
4
4
  ---
5
5
 
6
- > **Stage scope:** this stage covers only what [Build and Manage Wix Automations](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) lists; do not perform any workflow that needs a guide marked "not yet published". "Stage" and "not yet published" describe how this skill is being rolled out; never mention them to the user. Explain a limit in product terms: what can't be done through the API here and where the user can do it instead (for example, in the automations builder).
7
-
8
6
  # Activation status and lifecycle
9
7
 
10
8
  **What the public API can see.** An automation's live state is `configuration.status` —
@@ -12,8 +10,7 @@ description: "Read an automation’s current ACTIVE or INACTIVE status, and acti
12
10
  Status does not show whether past runs succeeded. There is no separate
13
11
  "published" flag and no public draft API:
14
12
 
15
- - **Status check** = Get Automation → read `configuration.status`. Report exactly that value, in a
16
- short answer that starts with the automation's name and returned ID;
13
+ - **Status check** = Query by name (if no ID) → Get the single matching ID → read that Get response’s `configuration.status`. Query is discovery only: never answer from its status projection, even if it includes one. Report the name, returned ID and status, explaining ACTIVE as eligible for new trigger events and INACTIVE as not eligible;
17
14
  never infer it from the name or from your own earlier writes. If several automations match the
18
15
  supplied name, list each one's returned ID and end with a direct question such as "Which one
19
16
  do you mean?"; don't report a single status. If no automation matches the supplied name, say
@@ -44,10 +41,10 @@ Status does not show whether past runs succeeded. There is no separate
44
41
  1. Get Automation with `fields: ["OVERRIDE_SCHEMA"]` → current `revision`, `origin`, `settings`.
45
42
  If `settings.disableStatusChange`
46
43
  or `settings.readonly` is true, stop and report the lock: the owning app doesn't allow it
47
- (§4 of Automations Feasibility and Planning (not yet published)).
44
+ ([Automations Validation and Persistence — included update restrictions](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence)).
48
45
  2. Already `ACTIVE` → report it and stop (idempotent; no write).
49
- 3. Set only the candidate's status to `ACTIVE`, then apply the §4 checklist in [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) and full Validate — never activate
50
- an automation that doesn't validate. Preserve existing supported configurations as the §4 checklist in [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) explains.
46
+ 3. Set only the candidate's status to `ACTIVE`, then apply the §4 checklist in [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) and full Validate — never activate
47
+ an automation that doesn't validate. Preserve existing supported configurations as the §4 checklist in [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) explains.
51
48
  4. Explicit activation instructions authorize this change; do not ask again. If the user only
52
49
  asked to build or inspect it, obtain authorization before making it eligible for real runs.
53
50
  5. Update Automation with the object exactly as fetched, `configuration.status: "ACTIVE"`, and
@@ -59,7 +56,7 @@ Status does not show whether past runs succeeded. There is no separate
59
56
  **Deactivate** (on explicit request): Get the complete object with override schemas; check
60
57
  `settings.disableStatusChange` and `settings.readonly`; already INACTIVE means no write.
61
58
  Otherwise change only `configuration.status` to `INACTIVE`, preserving origin, settings,
62
- revision, schemas and all nodes, then Update and read back the returned id. **Do not run the §4 checklist in [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) or
59
+ revision, schemas and all nodes, then Update and read back the returned id. **Do not run the §4 checklist in [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) or
63
60
  Validate as a prerequisite**, and do not repair or remove unrelated invalid/legacy steps.
64
61
  An explicit request to turn it off is sufficient authorization. Deactivating prevents new
65
62
  triggered runs; it is not proof that every pending/running activation has stopped or will finish.
@@ -3,7 +3,7 @@ name: "Automations API Catalog"
3
3
  description: "Discover site-specific triggers and actions, authenticate public Automation API calls, and choose the API for validation, persistence or catalog lookups."
4
4
  ---
5
5
 
6
- > **Stage scope:** this stage covers only what [Build and Manage Wix Automations](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) lists; do not perform anything marked "Later stages only" or any workflow that needs a guide marked "not yet published". "Stage", "Later stages only" and "not yet published" describe how this skill is being rolled out; never mention them to the user. Explain a limit in product terms: what can't be done through the API here and where the user can do it instead (for example, in the automations builder).
6
+ > **Stage scope:** this stage covers only what [Build and Manage Wix Automations](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) lists; do not perform anything marked "Later stages only", and follow the instruction attached to each guide marked "not yet published". "Stage", "Later stages only" and "not yet published" describe how this skill is being rolled out; never mention them to the user. Explain a limit in product terms: what can't be done through the API here and where the user can do it instead (for example, in the automations builder).
7
7
 
8
8
  # API Catalog — the public Wix Automations APIs
9
9
 
@@ -16,19 +16,19 @@ docs URL to get raw markdown. When a field name here and the docs disagree, the
16
16
 
17
17
  - Catalogs: Resolve Triggers / Resolve Actions. Oracle: **Validate Automation** — Create and
18
18
  Update do **not** validate.
19
- - Persist: Create `INACTIVE` → Get read-back; activate only when asked.
20
- Procedures (create, activate, read-back
21
- — builder drafts are invisible publicly): [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) §3.
22
- - **Later stages only — not in stage 2:** **Test Automation runs actions for real** — only with explicit user authorization.
19
+ - Persist: Create `INACTIVE` → Get read-back; activate only when asked. Updates need the current
20
+ `revision` and are **live** on an active automation. Procedures (create, update, activate, read-back
21
+ — builder drafts are invisible publicly): [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §3.
22
+ - **Test Automation runs actions for real** — only with explicit user authorization.
23
23
  - Resolve responses are large: page small, filter by exact keys, never paste a raw catalog.
24
24
 
25
25
  ## 1. Authentication and transport
26
26
 
27
27
  - **Permission scope**: **Set Up Automations** (`SCOPE.CRM.SETUP-AUTOMATIONS`) for every
28
- Automations method below. Generate Action Input Mapping and Get / Set Email Content (Automation Email Action API) need **Manage
29
- Email Marketing** (`SCOPE.DC-PROMOTE.EMAIL-MARKETING`) — a 403 there means that scope is missing.
28
+ Automations method below. Email steps are added in the automations builder, so no **Manage
29
+ Email Marketing** (`SCOPE.DC-PROMOTE.EMAIL-MARKETING`) scope is needed here.
30
30
  Entity lookups in other verticals need that vertical's read scope
31
- (Automations Entity and Provider Configuration (not yet published)).
31
+ (Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations))).
32
32
  - **Token**: `Authorization: <token>` header — an OAuth app access token (`client_credentials` via
33
33
  Create Access Token) or an account API key the site owner generated with the needed scopes.
34
34
  - **Site context**: with an **API key**, send `wix-site-id: <metaSiteId>` on every call (all calls
@@ -44,17 +44,15 @@ docs URL to get raw markdown. When a field name here and the docs disagree, the
44
44
  confirmed. If anything points at another site, stop.
45
45
  - **Errors**: 401 = token expired/invalid (refresh, don't retry blindly). 403 = missing scope, app
46
46
  not installed, or — on Create/Update of an automation that validated — a step the public API
47
- can't create (e.g. the code-variable step, §4 of Automations Delays Variables and Branches (not yet published)). A timeout or 5xx is
47
+ can't create (e.g. the code-variable step, [Automations Delays Variables and Branches](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-delays-variables-and-branches) §4). A timeout or 5xx is
48
48
  **unknown**, not a verdict — retry read-only calls (Get, Query, Resolve, Validate) a bounded
49
49
  number of times. Never blindly retry Create or Update: Query or Get first to see whether the
50
- write landed ([Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) §3, Reporting rules).
50
+ write landed ([Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §3, Reporting rules).
51
51
 
52
52
  ## 2. Automations V2 (`automationsV2`) — base `/automations-service/v2/automations`
53
53
 
54
- > Stage 2 supports Query, Get, Validate, inactive Create, and Update only to activate or deactivate ([Automations Activation Status](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-activation-status)). Configuration updates, Delete and Test Automation below are future-stage reference material; do not call them in this stage.
55
-
56
- | Purpose | REST | SDK |
57
- | -------- | ----------------------------------------------------------- | ----------------------------------------- |
54
+ | Purpose | REST | SDK |
55
+ | -------- | ---------------------------------------------------------------------------------- | ----------------------------------------- |
58
56
  | Validate | `POST https://www.wixapis.com/automations-service/v2/automations/validate` | `validateAutomation(automation, options)` |
59
57
  | Create | `POST https://www.wixapis.com/automations-service/v2/automations` | `createAutomation(automation)` |
60
58
  | Get | `GET https://www.wixapis.com/automations-service/v2/automations/{automationId}` | `getAutomation(automationId)` |
@@ -65,7 +63,7 @@ docs URL to get raw markdown. When a field name here and the docs disagree, the
65
63
  - **Validate** (unsaved or saved): `{automation, validationSettings?{actionIds[],
66
64
  skipProviderValidations}}` → `{status: VALID|VALID_WITH_WARNINGS|INVALID,
67
65
  triggerValidationErrors[], actionValidationErrors[]}`. The main oracle; send the full object.
68
- Reading errors: [Build and Manage Wix Automations — included validation procedure](https://dev.wix.com/docs/api-reference/business-management/automations/skills/build-and-manage-wix-automations) §2.
66
+ Reading errors: [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §2.
69
67
  - **Create**: `{automation}` with `name`, `origin: "USER"`, `configuration{status, trigger{appId,
70
68
  triggerKey}, rootActionIds, actions}` → created `automation` (has `id`, `revision`). Does NOT
71
69
  validate. Always `status: "INACTIVE"`; don't send `settings`.
@@ -74,8 +72,16 @@ triggerKey}, rootActionIds, actions}` → created `automation` (has `id`, `revis
74
72
  request them: `fields: ["OVERRIDE_SCHEMA"]` (REST `?fields=OVERRIDE_SCHEMA`). Without it their
75
73
  absence is not data loss (Create's response omits them too).
76
74
  Request overrides before complete-object updates and status changes too, not just creation read-back.
77
- - **Update**: in this stage, only to change `configuration.status` (activate / deactivate) as [Automations Activation Status](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-activation-status) describes. Send `{automation}` exactly as fetched with `fields: ["OVERRIDE_SCHEMA"]` — `id`, current `revision`, `name`, `configuration`, plus `origin` and `settings` — with only the status changed. Without `origin` and `settings` it fails `INVALID_ORIGIN_TYPE`; a stale `revision` is rejected. Capture the returned id: a preinstalled automation's site override can change it. Configuration updates are published in stage 3.
78
- - **Later stages only — not in stage 2:** **Delete** — published in stage 3.
75
+ - **Update**: `{automation}` incl. `id` and current `revision` → updated `automation` (revision
76
+ +1). Does NOT validate. Send the complete merged `name` + `configuration`, **plus `origin` and
77
+ `settings` exactly as fetched** — an Update without them fails `INVALID_ORIGIN_TYPE`. A
78
+ `fieldMask` (if your client exposes one) only selects what changes — set it to
79
+ `configuration,name` (what the builder sends); it doesn't exempt you from sending `origin` /
80
+ `settings`. A stale `revision` is rejected. Changes are LIVE when `status` is `ACTIVE`. A success
81
+ response and a revision bump do **not** prove the change landed — merge, conflict handling and
82
+ read-back comparison: [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §3.
83
+ Capture the returned id: creating a site override of a preinstalled automation can change it.
84
+ - **Delete**: → `{}`. Irreversible; only on explicit user request.
79
85
  - **Query**: `{query{filter, sort, cursorPaging{limit ≤ 500, cursor}}}` → `automations[]`,
80
86
  `pagingMetadata.cursors.next`. Returns only automations of apps installed on the site (incl.
81
87
  overridden preinstalled ones), and never unpublished builder drafts. Full objects are large —
@@ -85,12 +91,12 @@ triggerKey}, rootActionIds, actions}` → created `automation` (has `id`, `revis
85
91
  Automation object fields and limits (`name` ≤ 100 for the builder, `description` ≤ 2000,
86
92
  `origin`, `settings`, `configuration`): [Automations Graph and Data Model](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-graph-and-data-model) §1.
87
93
  Create/Update accept `configuration.trigger.automationConfigMapping` for scheduled/custom/webhook
88
- configuration even where the docs omit it; use [Automations Trigger Configuration](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-trigger-configuration) / Automations Schemas and Scheduling (not yet published).
94
+ configuration even where the docs omit it; use [Automations Trigger Configuration](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-trigger-configuration) / [Automations Schemas and Scheduling](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-schemas-and-scheduling).
89
95
 
90
96
  ## 3. Trigger Catalog (`triggerCatalog`)
91
97
 
92
- | Purpose | REST | SDK |
93
- | ---------------------- | ------------------------------------------------- | ----------------------------------------------- |
98
+ | Purpose | REST | SDK |
99
+ | ---------------------- | ------------------------------------------------------------------------ | ----------------------------------------------- |
94
100
  | Triggers on this site | `POST https://www.wixapis.com/v1/triggers/resolve` | `resolveTriggers(options)` |
95
101
  | Global catalog | `POST https://www.wixapis.com/v1/triggers/query` | `queryTriggers(query)` |
96
102
  | One trigger | `GET https://www.wixapis.com/v1/triggers/apps/{appId}/keys/{triggerKey}` | `getTriggerByAppIdAndKey(identifiers, options)` |
@@ -117,8 +123,8 @@ payload schema ([Automations Trigger Configuration](https://dev.wix.com/docs/api
117
123
 
118
124
  ## 4. Action Catalog (`actionCatalog`)
119
125
 
120
- | Purpose | REST | SDK |
121
- | -------------------------- | ------------------------------------------------------ | ---------------------------------------------- |
126
+ | Purpose | REST | SDK |
127
+ | -------------------------- | ----------------------------------------------------------------------------- | ---------------------------------------------- |
122
128
  | Actions on this site | `POST https://www.wixapis.com/v1/actions/resolve` | `resolveActions(options)` |
123
129
  | Global catalog | `POST https://www.wixapis.com/v1/actions/query` (and `/query-latest`) | `queryActions(query)`, `queryLatestActions` |
124
130
  | Version active on the site | `GET https://www.wixapis.com/v1/actions/apps/{appId}/keys/{actionKey}` | `getRuntimeAction(identifiers)` |
@@ -138,13 +144,12 @@ payload schema ([Automations Trigger Configuration](https://dev.wix.com/docs/api
138
144
  - **Dynamic output**: `{appId, actionKey, inputMapping}` → `outputSchema`; bulk
139
145
  (`bulkGetActionDynamicOutputSchemas`, POST `/v1/actions/bulk/dynamic-output-schema`, ≤ 20 items) →
140
146
  `results[]{itemMetadata{success, error}, outputSchema}`. Only after that action's mapping is
141
- final. Safe for any action you place upstream of a step that reads its output (no public flag
142
- says which are dynamic); an error means "no dynamic output" — keep the static `outputSchema`.
147
+ final. For `wix_automations-llm_call` fields defined by your output configuration, declare an override directly ([Automations Schemas and Scheduling](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-schemas-and-scheduling) §3); do not call this SPI to discover fields you chose yourself. For other upstream actions whose configured output is needed, this is a read-only discovery call (no public flag says which are dynamic); an error does not establish additional fields — keep the static `outputSchema`.
143
148
  Merge into the static schema. A failed bulk item = unknown schema, not empty.
144
149
  - **Generate Input Mapping From Intent** (`POST https://www.wixapis.com/v1/actions/generate-input-mapping-from-intent`)
145
150
  is AI-backed — don't call it. For actions you can't map from their schema, tell the user they can't be configured through the API here and can be set up in the automations builder.
146
- - **Later stages only — email is outside stage 2:** **Email content of an existing Send an email step** — Get / Set Email Content; procedure in Automations Email Actions (not yet published).
147
- - **Later stages only — email is outside stage 2:** **New Send an email step** — Generate Action Input Mapping; procedure in Automations Email Actions (not yet published).
151
+ - **Later stages only — email is outside stage 3:** **Email content of an existing Send an email step** — Get / Set Email Content; procedure in Automations Email Actions (not yet published; email configuration is outside stage 3).
152
+ - **Later stages only — email is outside stage 3:** **New Send an email step** — Generate Action Input Mapping; procedure in Automations Email Actions (not yet published; email configuration is outside stage 3).
148
153
 
149
154
  Action objects: `appId`, `actionKey`, `displayName`, `description`, `inputSchema`, `outputSchema`,
150
155
  `interfaceConfiguration{type: GENERIC\|WIDGET_COMPONENT, genericOptions.uiSchema}`,
@@ -153,8 +158,12 @@ Action objects: `appId`, `actionKey`, `displayName`, `description`, `inputSchema
153
158
 
154
159
  ## 5. Activations (`activations`)
155
160
 
156
- - **Later stages only — not in stage 2:** **Test Automation** — runs every action for real; published in stage 3.
157
- - **Later stages only — not in stage 2:** **Run Automation / Report Event / Rerun Activation** — for the app that owns a trigger; never
161
+ - **Test Automation** — `POST https://www.wixapis.com/automations/v1/events/test-automation`,
162
+ `testAutomation(identifierType, options)`: `{identifierType: "AUTOMATION",
163
+ automationIdentifier{automationId}, payload}` → `activationId`. **Runs every action for real**
164
+ (skips delays, works on INACTIVE) — explicit user authorization only; payload, consent and
165
+ reporting: [Automations Validation and Persistence](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-validation-and-persistence) §5.
166
+ - **Run Automation / Report Event / Rerun Activation** — for the app that owns a trigger; never
158
167
  use them to build or "test".
159
168
 
160
169
  ## 6. Catalog discovery without flooding your context
@@ -188,13 +197,13 @@ Discovery hints:
188
197
  - Search by concept with a keyword ladder ("chat" → "message"). Common aliases: send a chat
189
198
  message to the contact = `send-message` (not `inbox-send-message`); a note about a contact in
190
199
  the site owner's Inbox, nothing sent to the contact = `inbox-send-message` ("Show in Inbox");
191
- email to anyone, incl. the site
200
+ email (added by the user in the automations builder here) to anyone, incl. the site
192
201
  owner = `triggered-emails` (never the deprecated `send-mail` / "Get an email"); task =
193
202
  `createTask`; labels = `addLabelsToContact` / `remove_labels_to_contact`; create a contact =
194
203
  `contacts-create_contact` (for triggers whose payload has no contact, e.g. webhooks).
195
204
  - Near-duplicates exist (`booking_canceled` vs `bookings_canceled`; new Wix Forms app vs legacy
196
205
  "Form submitted"). Compare payload schemas and filters; prefer the one whose entities you can
197
- actually find on the site (Automations Entity and Provider Configuration (not yet published)).
206
+ actually find on the site (Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations))).
198
207
  - Enum-like fields often list legal values only in the field `description` (e.g. paymentStatus
199
208
  NOT_PAID / PAID). Read descriptions before mapping user words; never invent enum values.
200
209
 
@@ -205,9 +214,16 @@ variables + identity enrichment. Recipe and fetch order: [Automations Graph and
205
214
 
206
215
  ## 8. Selector options and APIs with limitations
207
216
 
208
- > **Later stages only:** not available in stage 2; this section is published in stage 3.
217
+ **Entity ids** (forms, labels, services, pipeline stages…): resolve them with the owning vertical's public API, following that vertical's API reference, or ask the user for the exact entity. Never save a display name, invent an id or guess an endpoint.
218
+
219
+ **Not public or not available through the general Automations API:**
209
220
 
210
- **In this stage:** a "draft" is an automation created `INACTIVE` (builder drafts are invisible to the public API). To validate a saved automation, Get it and Validate the returned object. Check expressions locally, then with Validate Automation.
221
+ - **Draft automations** → create `INACTIVE`; the user activates. Builder drafts are invisible.
222
+ - **Site-action generation** → §3 of Automations Entity and Provider Configuration (topic guide not yet published; consult the [Automations API reference](https://dev.wix.com/docs/api-reference/business-management/automations)).
223
+ - **Send an email steps** → not configurable through the API here; the user adds them in the automations builder.
224
+ - **Expression parsing/evaluation, code runner** → local checks ([Automations Mapping Expressions](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-mapping-expressions),
225
+ [Automations Conditions](https://dev.wix.com/docs/api-reference/business-management/automations/skills/automations-conditions)), then Validate Automation.
226
+ - **Validate by id** → Get Automation, then Validate the returned object.
211
227
 
212
228
  ## Related API references
213
229