@wokuapp/ai-toolkit 0.4.0 → 0.5.0
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +8 -0
- package/README.md +13 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/woku/SKILL.md +4 -2
- package/skills/woku-sdk-javascript/SKILL.md +2 -2
- package/skills/woku-sdk-python/SKILL.md +1 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"name": "woku",
|
|
12
12
|
"source": "./",
|
|
13
13
|
"description": "Design a listening program for your customer journey, run the VoC instruments (NPS, CSAT, CES, wokus), and turn every signal into a support ticket or an action plan, through woku's MCP server.",
|
|
14
|
-
"version": "0.
|
|
14
|
+
"version": "0.5.0",
|
|
15
15
|
"author": { "name": "woku" },
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"homepage": "https://woku.app",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "woku",
|
|
3
3
|
"description": "Voice-of-customer for Claude Code. Design a listening program for your customer journey, run the fast VoC instruments (NPS, CSAT, CES, wokus), and turn every signal into a support ticket or an action plan, through woku's MCP server. Bundles the woku method so the agent acts as a CX consultant.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "woku"
|
|
7
7
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "woku",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Voice-of-customer for OpenAI Codex. Design a listening program, run the VoC instruments (NPS, CSAT, CES, wokus), and turn every signal into a support ticket or an action plan, through woku's MCP server.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "woku"
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
The woku skill documents folder participants (`get_folder_participants`, `set_folder_participants`, `remove_folder_participant`, `resend_to_missing_participants`), scheduled report emails (`list_scheduled_reports`, `schedule_report`, `update_scheduled_report`, `delete_scheduled_report`, `send_scheduled_report_now`), the period on the folder CSV and the `lastResponse` sort of `search_voc_tools`. The SDK skills add `folderParticipants` / `folder_participants`, `reportSubscriptions` / `report_subscriptions`, the CSV period and the sort. Requires the server and SDK releases that ship them.
|
|
6
|
+
|
|
7
|
+
The woku skill documents `allReviews` on the `whatsappAlertRecipients` of `update_folder`: the admin switch "All reviews" that alerts a number for recognitions too (off by default, improvements only). Requires the server release that ships it.
|
|
8
|
+
|
|
9
|
+
The woku skill documents the response settings of NPS, CSAT and CES (`anonymousDisabled`, `onlyOneResponsePerClient` on `create_*_tool` and `update_*_tool`), editable even after a survey has responses. Requires the server release that ships it.
|
|
10
|
+
|
|
3
11
|
## 0.4.0
|
|
4
12
|
|
|
5
13
|
Follow the admin period picker, search box and Sends tab. The woku skill documents `from`/`to` on `get_woku_report`, `get_folder_report` and `get_company_nps_report` (period reports generated on demand, with `periodFrom`/`periodTo`), the custom `from`/`to` range on `get_folder_tools_metrics`, the `q` text search on `list_woku_reviews`, `list_nps_responses`, `list_csat_responses` and `list_ces_responses`, and the read-only `invitations` toolset (`get_invitation_stats`, `list_invitations_by_tool`, `list_invitation_recipients`). It adds the reports the admin opens and the MCP now serves (`get_nps_tool_report`, `get_csat_report`, `get_ces_report`, `scope` on `get_company_nps_report`, `regenerate` on every report tool), and the SDK skills drop `quarantines`, which left the public API. Requires the server and SDK releases that ship them.
|
package/README.md
CHANGED
|
@@ -100,6 +100,19 @@ Every connection is bound to one company, chosen when you approve access. Read t
|
|
|
100
100
|
|
|
101
101
|
MIT. See [LICENSE](./LICENSE).
|
|
102
102
|
|
|
103
|
+
### Participants, scheduled reports and survey settings update (0.5.0)
|
|
104
|
+
|
|
105
|
+
The woku skill covers folder participant lists (`get_folder_participants`,
|
|
106
|
+
`set_folder_participants`, `remove_folder_participant`, `resend_to_missing_participants`),
|
|
107
|
+
scheduled report emails (`list_scheduled_reports`, `schedule_report`,
|
|
108
|
+
`update_scheduled_report`, `delete_scheduled_report`, `send_scheduled_report_now`),
|
|
109
|
+
the period on the folder CSV of `get_folder_report`, the `lastResponse` sort of
|
|
110
|
+
`search_voc_tools`, `allReviews` on folder WhatsApp alerts, and the NPS, CSAT and CES
|
|
111
|
+
response settings (`anonymousDisabled`, `onlyOneResponsePerClient`). Sends and deletions
|
|
112
|
+
need `confirm: true`. The SDK skills add `folderParticipants` / `folder_participants` and
|
|
113
|
+
`reportSubscriptions` / `report_subscriptions` (SDK 0.8.0). Verify the server and SDK
|
|
114
|
+
releases before using them.
|
|
115
|
+
|
|
103
116
|
### Periods, search and sends update (0.4.0)
|
|
104
117
|
|
|
105
118
|
The woku skill follows the admin period picker, search box and Sends tab: `from`/`to`
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "woku-ai-toolkit",
|
|
3
3
|
"name": "woku AI Toolkit",
|
|
4
4
|
"description": "Voice-of-customer for your agent. Design a listening program, run the VoC instruments (NPS, CSAT, CES, wokus), and turn every signal into a support ticket or an action plan, through woku's MCP server.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.5.0",
|
|
6
6
|
"skills": [
|
|
7
7
|
"./skills"
|
|
8
8
|
],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wokuapp/ai-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "woku AI Toolkit: connect your agent to woku's voice-of-customer platform. Design VoC programs and turn customer feedback into support tickets and action plans, through woku's MCP server.",
|
|
5
5
|
"author": "woku",
|
|
6
6
|
"license": "MIT",
|
package/skills/woku/SKILL.md
CHANGED
|
@@ -68,9 +68,11 @@ One folder tree holds wokus and NPS, CSAT and CES tools together. Call `woku_gui
|
|
|
68
68
|
- `search_voc_tools` also takes `trackers` (`"name:value"` chips, up to 10; a tool must have every one; the tracker name is matched exactly and the value partially and ignoring case, so `482` also matches `00482`; company-wide, no folders; a chip without name or value is an error) to find tools by tracker.
|
|
69
69
|
- `get_folder_tools_metrics` gives, for a folder and its subfolders, per-tool figures for 7, 30 (default) or 90 days, or a custom `from`/`to` range of days (`YYYY-MM-DD`, both inclusive, up to 731 days), against the period before (0 = whole history) and the histogram of scores. It returns `toolCount` and the busiest tools (`limit`, default 50); the daily sums only with `includeDaily: true`. Use it for trends and to find the weakest tools; never average across types.
|
|
70
70
|
- `get_voc_tools_stats` gives reviews and the headline of each type (woku stars, NPS score, CSAT satisfied %, CES mean) for the company or one folder. Never average across types: the scales differ.
|
|
71
|
-
- `create_folder`, `update_folder` (rename, recolor, or set `whatsappAlertRecipients`: the WhatsApp numbers alerted when a comment of any tool in the folder is an improvement) and `move_voc_tools` (items of mixed types, `folderId: null` for the root) organize the tree; `create_nps_tool`, `create_csat_tool` and `create_ces_tool` accept `folderId`.
|
|
72
|
-
- `get_folder_report` with `scope: "all"` returns the mixed AI report of a folder and its subfolders, and with `format: "csv"` the responses as CSV text. `search_voc_tools` accepts `foldersLimit` and `foldersCursor` to page the folders ("see more"; `foldersNextCursor` in the result). The folder PDF is binary, so it is only on the API and the SDKs (`GET /v1/folders/{id}/pdf`).
|
|
71
|
+
- `create_folder`, `update_folder` (rename, recolor, or set `whatsappAlertRecipients`: the WhatsApp numbers alerted when a comment of any tool in the folder is an improvement; `allReviews: true` on a number alerts every review, recognitions too) and `move_voc_tools` (items of mixed types, `folderId: null` for the root) organize the tree; `create_nps_tool`, `create_csat_tool` and `create_ces_tool` accept `folderId`. `create_*_tool` and `update_*_tool` for NPS, CSAT and CES also take `anonymousDisabled` (identified answers only) and `onlyOneResponsePerClient` (one answer per identified client; a repeat answer gets HTTP 409 `ALREADY_RESPONDED`); both can change on a survey that already has responses, sending only those fields.
|
|
72
|
+
- `get_folder_report` with `scope: "all"` returns the mixed AI report of a folder and its subfolders, and with `format: "csv"` the responses as CSV text (`from`/`to` also limit the CSV). `search_voc_tools` sorts by the latest response with `sort: "-lastResponse"`. `search_voc_tools` accepts `foldersLimit` and `foldersCursor` to page the folders ("see more"; `foldersNextCursor` in the result). The folder PDF is binary, so it is only on the API and the SDKs (`GET /v1/folders/{id}/pdf`).
|
|
73
73
|
- Journeys can live in folders (`Viajes > journey > moment`): `get_journey_folders_status` shows whether the company organizes them and what is pending, and `organize_journey_folders` switches it on and runs a background pass that only moves tools without a folder (propose it and wait for approval; it returns a conflict while a pass is running). `get_journey` and `list_journeys` show `folderId` and `momentFolders`, and folders created by woku carry an `origin` (`journeys-root`, `journey`, `journey-moment`, `integration`; integration folders also carry `integrationProvider`, for example `shopify`); read `origin`, `integrationProvider` and the stats of a folder with `search_voc_tools`, not with `get_folder` or `list_folders`, which only count wokus.
|
|
74
|
+
- A folder can keep a participant list (a program's enrolled): `get_folder_participants` returns it and, per tool of the subtree, the indexes of who answered (`responded`), who did not (`missing`) and who answered more than once (`repeated`), plus `outsideList` and `anonymousAllowed` (anonymous responses cannot be matched). `set_folder_participants` replaces the list (`mode: "replace"`) or adds to it (`mode: "add"`) from text, one person per line with a name, an email and/or a phone; `remove_folder_participant` removes one person or the whole list; `resend_to_missing_participants` sends a tool again to the missing by email or WhatsApp. Removing and resending need `confirm: true`; propose them and wait for approval.
|
|
75
|
+
- `schedule_report` emails the PDF report of a folder or a tool on a schedule (`monthly`, `biweekly`, `weekly` at 12:00 UTC with the previous complete period, or `once` with `periodFrom`/`periodTo`) to up to 10 recipients; `list_scheduled_reports`, `update_scheduled_report` (edit, pause, resume), `delete_scheduled_report` and `send_scheduled_report_now` manage them. Scheduling, sending now and deleting need `confirm: true`: they email real people.
|
|
74
76
|
- `delete_folder` needs `confirm: true`; nothing inside is deleted, the content moves up to the parent. Moving or deleting folders is a user decision: propose the new structure and wait for approval.
|
|
75
77
|
|
|
76
78
|
## Periods and text search
|
|
@@ -72,7 +72,7 @@ await woku.actionPlans.complete('plan_123');
|
|
|
72
72
|
Namespaces: `trackers`, `npsTools` / `csatTools` / `cesTools`, `nps` / `csat` /
|
|
73
73
|
`ces`, `wokus`, `forms`, `flows`, `actionPlans`, `actionPlanGroups`, `tickets`,
|
|
74
74
|
`ticketDestinations`, `dispatches`, `reports`, `company`, `journeys`, `media`,
|
|
75
|
-
`folders`, `tools`, `journeyFolders`.
|
|
75
|
+
`folders`, `folderParticipants`, `tools`, `journeyFolders`, `reportSubscriptions`.
|
|
76
76
|
|
|
77
77
|
## Pagination, errors, retries
|
|
78
78
|
|
|
@@ -119,7 +119,7 @@ await woku.folders.delete(folder.id); // content moves up to the parent, nothing
|
|
|
119
119
|
|
|
120
120
|
Journeys in folders: `await woku.journeyFolders.status()` and `await woku.journeyFolders.organize()` (background pass, 409 while running); `journeys.get` returns `folderId` and `momentFolders`, and folders expose `origin`.
|
|
121
121
|
|
|
122
|
-
`folders`: `list`, `get`, `create`, `update`, `move`, `delete`, `report`, `csv
|
|
122
|
+
`folders`: `list`, `get`, `create`, `update`, `move`, `delete`, `report`, `csv` (optional `{ from, to }`), `pdf`. `folderParticipants`: `get`, `replace`, `add`, `remove`, `clear`, `resendToMissing`. `reportSubscriptions`: `list`, `create`, `update`, `delete`, `send`. `tools`: `list` (`sort: '-lastResponse'` for the latest responses; cursor iterable; `foldersLimit` pages the folders with `page.hasMoreFolders()` / `page.getMoreFolders()`), `stats`, `move`. `npsTools` / `csatTools` / `cesTools` accept `folderId` on `create` and have `move(id, { folderId })`. They also take `anonymousDisabled` and `onlyOneResponsePerClient` on `create` and `update` (both editable after responses; a repeat answer is HTTP 409 `ALREADY_RESPONDED`).
|
|
123
123
|
|
|
124
124
|
## Flows
|
|
125
125
|
|
|
@@ -140,7 +140,7 @@ woku.folders.delete(folder["id"]) # content moves up to the parent, nothing is
|
|
|
140
140
|
|
|
141
141
|
Journeys in folders: `woku.journey_folders.status()` and `woku.journey_folders.organize()` (background pass, `ConflictError` while running); `journeys.get` returns `folderId` and `momentFolders`, and folders expose `origin`.
|
|
142
142
|
|
|
143
|
-
`folders`: `list`, `get`, `create`, `update`, `move`, `delete`, `report`, `csv
|
|
143
|
+
`folders`: `list`, `get`, `create`, `update`, `move`, `delete`, `report`, `csv` (optional `{"from", "to"}`), `pdf`. `folder_participants`: `get`, `replace`, `add`, `remove`, `clear`, `resend_to_missing`. `report_subscriptions`: `list`, `create`, `update`, `delete`, `send`. `tools`: `list` (`{"sort": "-lastResponse"}` for the latest responses; iterates across cursor pages; `foldersLimit` pages the folders with `has_more_folders()` / `get_more_folders()`), `stats`, `move`. `nps_tools` / `csat_tools` / `ces_tools` accept `folderId` on `create` and have `move(tool_id, {"folderId": ...})`. They also take `anonymousDisabled` and `onlyOneResponsePerClient` on `create` and `update` (both editable after responses; a repeat answer is HTTP 409 `ALREADY_RESPONDED`). `AsyncWoku` mirrors all of it.
|
|
144
144
|
|
|
145
145
|
## Flows
|
|
146
146
|
|