Custom Udesk Workbench · Browser Extension
Udesk Productivity Tools
Quick ticketing / auto-reply / AI assistant / monitoring dashboard — smart tools for peak efficiency
Install / update (PowerShell)
irm https://ext.turinghost.org/udesk/install.ps1 | iex Uninstall (PowerShell)
irm https://ext.turinghost.org/udesk/uninstall.ps1 | iex Udesk Productivity Tools
A Chrome / Edge extension for the Jin Jiang Udesk workspace (jinjianghotels.udesk.cn). It turns the most tedious parts of the daily job — filing tickets, auto-replies, conversation status tags, knowledge-base lookup, monitoring dashboards — into single keystrokes and smart auto-fill.
📖 Online guide / changelog: https://turingblog.org/showcase/udesk The install script also prints what changed in the current update when it finishes.
Quick start
| ① Install | ② Enter staff ID | ③ Reload Udesk |
|---|---|---|
| one command | click the icon | start using it |
Three shortcuts are enough to get going: Alt+S fills the customer and category, Alt+I has the AI write the whole ticket, Alt+G opens the AI side panel.
1. Install / update
No admin rights needed. The install directory is %USERPROFILE%\udesk\udesk-extension (i.e. C:\Users\<you>\udesk\udesk-extension). First install and later updates use the same command.
Existing users: before v1.15.0 the extension lived in
%USERPROFILE%\udesk-extension(one level less). When the update script finds the old directory it keeps using it and does not move anything — the browser binds to the absolute path you loaded, so moving it breaks the extension. Your path differing from a colleague’s fresh install is expected.
Installing with PowerShell: all five steps
If PowerShell is unfamiliar, just follow these five steps:
-
Open PowerShell
Press
Win + R, typepowershell, press Enter. (You do not need “Run as administrator”.) -
Copy the install command
Public internet:
irm https://ext.turinghost.org/udesk/install.ps1 | iex -
Paste and press Enter
Right-click inside the PowerShell window to paste (
Ctrl+Vis not reliable in older versions), then press Enter. -
Let it finish
The script downloads, unpacks, deploys, and opens your browser’s extensions page. With both Chrome and Edge installed it first asks you to type a number — nothing else happens until you do, which is expected.
-
First install only: load it once manually
Turn on Developer mode → click Load unpacked → press
Ctrl+Vin the file dialog to paste the directory (already copied for you) → confirm. Updates skip this step — just click the reload icon on the extension’s card.
Cloud install (public internet — recommended)
Paste the whole line into PowerShell and press Enter:
irm https://ext.turinghost.org/udesk/install.ps1 | iexIntranet install (corporate network, no internet required)
iex(irm 'http://10.100.50.215/udesk/install-lan.ps1')If you only have Command Prompt (CMD)
CMD has no irm, so the commands above won’t work. Use this equivalent — it downloads a bootstrapper and runs the very same install script:
curl -sLo "%TEMP%\ud.cmd" https://ext.turinghost.org/udesk/i.cmd && "%TEMP%\ud.cmd"For the intranet version, swap the URL for http://10.100.50.215/udesk/i-lan.cmd.
A “User Account Control (UAC)” prompt may appear — that is Windows’ routine confirmation for launching PowerShell from a command line. Click Yes to continue; clicking No aborts the install with
Access is denied. The PowerShell command does not trigger this prompt, so prefer it when you can.
What the script does automatically
- Downloads the latest package, unpacks it, deploys it to the install directory;
- Prints this update’s changelog;
- Copies the install directory to your clipboard;
- Opens the browser’s extension management page (Chrome / Edge; if you have both, it asks which).
Making an update take effect
Browsers do not auto-reload unpacked extensions. After the update script finishes: go to the extension management page, find “Udesk 效率工具”, and click the reload icon on its card (or restart the browser).
2. Uninstall
irm https://ext.turinghost.org/udesk/uninstall.ps1 | iexCMD users:
curl -sLo "%TEMP%\ud-u.cmd" https://ext.turinghost.org/udesk/u.cmd && "%TEMP%\ud-u.cmd"The script deletes the local install directory and opens the extension page. Finish by clicking Remove on “Udesk 效率工具” there (browsers do not let scripts click Remove for you).
3. Sign-in / authorization
- Just enter your staff ID — no activation code. Click the extension icon in the toolbar while on a Udesk page and fill it in.
- Your staff ID is bound to your Udesk display name on first sign-in. Even if someone else enters your ID, they get nothing under their own account.
You must be signed in to Udesk when entering the staff ID (the popup is disabled outside Udesk pages or when no agent is detected).
Two feature tiers
| Tier | Includes | How to enable |
|---|---|---|
| Standard (works on install) | Quick ticket, auto-reply, conversation tags, AI features | Just enter your staff ID |
| Advanced | Monitoring dashboard, knowledge-base lookup | Admin grants it per staff ID |
⚠ AI features are standard-tier but still need your own API key (see “5. Enabling AI features”). The extension no longer bundles a shared key — everyone uses their own quota, billed to their own account.
⚠ Knowledge-base lookup is separately authorized as of v1.18.3: it holds internal operations and business material, which is a different question from “may this person call an LLM”. Without it the side panel stays silent — it simply does not recall internal material. To check your own status, see Settings → General → feature entitlement status.
4. Shortcuts
| Shortcut | What it does |
|---|---|
| Alt+S ⭐ | Fills the “customer” field from the hotel code/name in the description; when that fails it falls back through past tickets → IRM → SSO |
| Alt+I ⭐ | AI writes the whole ticket: reads the current conversation/call, fills description, resolution and category, and inserts fault screenshots into the description (draft only — never auto-submits) |
| Alt+G ⭐ | AI side panel: Q&A (auto knowledge-base recall) / find similar past tickets / draft replies / bulk backfill. Type / for slash commands |
| Alt+Q | Quick ticket: parses the description template, fills subject / customer / resolution |
| Alt+W | Transfer (fills the resolution and applies the “transfer” tag) |
| Alt+Enter | Submit the current new-ticket dialog |
| Alt+1 / 2 / 3 / 4 | Auto-reply: send a canned reply (Alt+3 / Alt+4 also request a rating by default) |
| Alt+5 | Wrap-up combo: closing message → rating request → AI ticket, all in one (press once the issue is confirmed resolved) |
| Alt+` | Open settings |
| Alt+/ | Toggle the workspace panel |
Every shortcut is remappable under Settings → Shortcuts; conflicts are highlighted.
5. Enabling AI features (one-time setup)
Everything AI-related (Alt+I ticketing, the Alt+G panel, bulk backfill, draft replies) needs your own WorkBuddy access key. The extension bundles no shared key — everyone uses their own quota.
Getting a key
- Open https://www.workbuddy.cn/profile/keys and choose phone-number verification-code sign-in. ⚠ The phone number must match the one bound to your WeCom account, otherwise it won’t link to the flagship subscription.
- Confirm you are on flagship (only flagship exposes API management).
- Under API management, click Create access key and give it a recognizable name (e.g.
udesk-ext). - The key is shown in full only once (it starts with
ck_) — copy it immediately. Once the dialog closes you cannot read it again; you’d have to delete and recreate it. - Open the extension’s Settings → AI settings and paste it into “API Key”.
Security: the key is equivalent to your account quota — never commit it to a repository or post it in a chat group. If you suspect it leaked, delete and recreate it in API management.
Official docs: https://www.codebuddy.cn/docs/workbuddy/Overview
Optional: hotline call transcription
To let Alt+I read the audio recording on hotline pages (rather than just IM text), pick one of two channels under “AI settings → Auxiliary services”:
| Channel | How to use it | Who it suits |
|---|---|---|
| On-device (default since v1.18.3) | Install the local transcription host once (~135 MB including the model); the command is copyable from the settings page | Recommended: noticeably better Chinese accuracy, and audio never leaves your machine |
| Cloud | Point it at any OpenAI-compatible /audio/transcriptions endpoint | You’d rather not install a host, or your company runs its own service |
If the local host isn’t installed it falls back to the cloud automatically, so ticketing still works. With both off, hotline ticketing simply stays manual.
Where the API key lives
Only on your machine (chrome.storage.local). It is never uploaded and never included in a config export. The cloud transcription channel does send call audio to whichever provider you configure — if recordings must not leave the corporate network, use on-device transcription or an internally hosted endpoint.
6. Main features
Ticketing
Quick ticket: multiple templates (resolved / transfer) plus three-level category matching. Description and subject templates support placeholders ({hotelname} / {hotelid} / {contact} / {problem}), pushed centrally by the admin so everyone shares one wording.
Customer auto-fill (Alt+S): write a hotel code or name in the description and the “customer” field fills itself. When that fails, it falls back in this order, and the first hit fills the customer field:
- Past tickets — look through this customer’s history
- IRM — PMS code
H800482→ udesk store code - SSO — phone / staff ID / name → their store
These three systems only reuse the sessions already signed in to your browser — the extension never touches credentials. Lookup progress and sign-in state show in the status strip to the right of “描述” (Description).
Hotel cross-check (new in v1.18.3): once past tickets produce a match, it is compared against the organisation data in SSO.
This targets a failure that never raises an error: when the reporter changes jobs, their past tickets still name the old hotel — and since past tickets rank highest and stop the lookup, the stale value wins every time with nothing to reveal it. Both sources now run, and the verdict appears in the status strip:
| Verdict | Meaning |
|---|---|
| Both agree | This is the only real “confirmed” |
| They disagree | Could be a job change, could be someone reporting for another store — the data cannot tell them apart, so judge it yourself |
| Single source | Nothing to compare against (most tickets land here) |
⚠ The check only reports; it never edits a field. The customer field cannot be changed after submission, so “is the verdict right” is deliberately kept separate from “should we act on it”.
User contact details (changed in v1.18.3): an inbound hotline number is looked up in SSO first — a hit is tagged 【SSO手机号】 (which also reveals who reported and which store they belong to); a miss falls back to 【来电】. A store’s current general manager (name / staff ID / mobile) comes from IRM, and only if currently employed.
When nobody can be found, the wording no longer contradicts itself: browser visitors are tagged
【访客】, and WeCom users who aren’t signed in to SSO get【企微·SSO未登录】— the latter is fixable, since signing in to SSO produces a number.
Smart category: the controls sit to the right of the “描述” label — five pieces in one row:
| Control | Purpose |
|---|---|
| 🔍 Search box | Type a system name/keyword to filter manually (comma or space separated, e.g. 绿云 操作) |
| ▾ | Expand candidates, with score breakdown |
| 🧠 | AI decides the category (more accurate, spends your API quota) |
| ✨ | Local keyword matching (free, instant) |
| Status strip | SSO / IRM sign-in state, past-ticket lookup, hotel cross-check, AI progress — all shown here |
Matching rules are pushed from the cloud and identical for everyone.
AI ticketing (Alt+I): reads the current conversation or call recording, writes the description, resolution and category, and inserts fault screenshots into the description (up to 3, picking those that genuinely evidence this fault; ID cards, payment codes and the like are skipped).
| Read conversation | Decide category | Write description | Fill the form |
|---|---|---|---|
| text + images + filenames | matched automatically | and resolution | insert screenshots |
⚠ Draft only — it never submits. Review before you send it. ⚠ Want it to run on every new ticket page? Settings → General → Quick ticket → “auto-run AI on ticket page” (off by default; each page costs one AI call).
Three known weaknesses of call transcription (designed around, but worth knowing):
| Problem | How to handle it |
|---|---|
| No speaker separation | The AI is instructed not to write attributions like “the customer said…” |
| Digits get garbled (order/ID/phone numbers) | Verify these yourself |
| Hotel names are almost always wrong | Trust the “customer” field instead |
Conversations
- Auto-reply: sends an opening line automatically when a new customer arrives; canned replies in one keystroke (each one controls whether it also requests a rating).
New in v1.18.3 — a grace period. The admin can set a wait (say 10 seconds). With it set, an arriving customer is no longer answered instantly: if you reply during that window, the bot stays quiet; it only steps in when nobody did. The wait is pushed centrally and defaults to 0, i.e. unchanged behaviour.
- Conversation status tags: every item in the left-hand list is tagged with “ticket · rating · status”, cached across tab switches and reloads.
The conversation timer now has its own toggle (v1.18.3). It shows how long a conversation has been running (
12m/1h20m), warming from grey → yellow → orange → red. Previously it shared the status-tag toggle, so turning the stopwatch off meant losing “replied / not replied” as well.
AI assistant (Alt+G side panel)
| Panel | What it does |
|---|---|
| 💬 Chat | Q&A with automatic cloud knowledge-base recall, draft replies, conversation summaries, similar past tickets, a store’s PMS version |
| 🧰 Toolbox | Three lists — canned text / navigation / commands: left-click inserts, right-click copies, ↗ sends. Also ticket QA review (beta) |
| 📋 History | Bulk-backfill conversations that never got a ticket |
⚠ Sending a message to a customer always requires human confirmation. The AI never sends on its own.
Everything else
- Monitoring dashboard (advanced): live hotline / IM / ticket dashboard with occupancy and health warnings.
- Knowledge base (advanced, separately authorized since v1.18.3): cloud lookup. An admin edits once and it takes effect for everyone immediately — nothing to configure on your side. Built into the Alt+G panel and recalled automatically as you ask questions.
7. Settings
Press Alt+`, or click “完整设置” in the workspace panel. Seven tabs, grouped by whether you are ever going to touch it:
| Tab | What it covers |
|---|---|
| ⚙️ General | The single home for every feature toggle, each explaining exactly what it controls; plus authorization mode and feature entitlement status |
| 🎨 Personal | The things you maintain yourself: canned replies, resolution shortcuts, the side panel’s text / navigation / command lists. Also where you export your config to carry to another machine |
| ☁️ Cloud | Everything the admin pushes, visible in one place (all read-only): ticket templates, category baseline, monitoring thresholds, your entitlement roster |
| ✨ AI | Your API key, endpoint and model name, plus the transcription channel and ticketing behaviour such as submit mode |
| ⌨️ Shortcuts | Remap every shortcut, with conflict highlighting |
| 📊 Usage | AI call count and token spend, shortcut hit stats. Local only, never uploaded, kept for 30 days |
| 📋 Logs | Everything the extension did, filterable by level and source. Local only, never uploaded, kept for 7 days / 500 entries. Start here when asking “why didn’t that step work?” |
- Toggles all live in “General”; “Personal” holds your own phrasing; “Cloud” is the read-only company-wide config.
- Items marked ☁ Cloud are pushed by the admin and identical for everyone; anything unmarked is yours.
- Import / export (on the “Personal” tab) covers only the personal config worth carrying between machines — no server-side entitlements, no API key. Cloud-managed content (templates, phrasing, category baseline) is excluded so an old snapshot can’t fight the cloud.
8. FAQ
Q: Nothing changed after updating. A: Browsers don’t auto-reload unpacked extensions. Click the reload icon on the extension’s card, or restart the browser.
Q: AI features say “please enter an access key”. A: The extension no longer bundles a shared key; you need to request one once — see “5. Enabling AI features”.
Q: The install command seems to hang halfway. A: It is most likely waiting at the browser choice step (asked when both Chrome and Edge are installed). Type the number and press Enter. Until you do, neither the extensions page nor the folder appears — that is by design.
Q: Installing from CMD fails with Access is denied.
A: The UAC prompt wasn’t accepted. Run it again and click Yes. Prefer the PowerShell command — it doesn’t trigger UAC.
Q: Chinese text shows as garbage.
A: Use the complete install commands from this document (they force UTF-8). On a few old environments (Windows PowerShell 5.1) that still garble, use the “byte-wise download + explicit UTF-8 decode” fallback in the header comment of install.ps1.
Q: I entered my staff ID but the monitoring dashboard / knowledge base doesn’t work. A: Both are advanced-tier and must be granted per staff ID. Settings → General → feature entitlement status shows what you have.
Q: A setting is greyed out. A: It is pushed centrally by the admin (its title carries a ☁ Cloud marker) so wording stays consistent. Ask your admin to change it.
Q: The page reloaded after I turned a feature off in the panel. A: Expected. These capabilities mount once at page load, so a reload is required for the change to take effect — the panel just does it for you.
Q: I can’t find “Udesk 效率工具” on the extensions page.
A: Make sure you completed the one-time “Load unpacked” step. Directory: %USERPROFILE%\udesk\udesk-extension for fresh installs; users from before v1.15.0 remain at %USERPROFILE%\udesk-extension (updates never relocate).
9. Support
- Online guide / changelog: https://turingblog.org/showcase/udesk
- Supported site:
https://jinjianghotels.udesk.cn - Supported browsers: Chrome / Edge (Chromium-based, a recent version recommended)