Privacy Policy — CL Desk Assistant

Last updated: 2026-05-19 (covers v1.7.1)

CL Desk Assistant (“the extension”) does not collect, transmit, sell, share, or store any user data outside the user’s own browser. There is no telemetry, no analytics, no tracking, and no third-party scripts.

What v1.7.1 ships

v1.7 keeps the same four productivity tools as v1.2 through v1.6, with feature enhancements layered on top rather than new tools. v1.7 itself adds one new built-in Word Alerts detector (the fifth) that flags the distinctive copy-button layout left behind when an agent pastes plain-text content from an internal chatbot UI (CloudLinux’s chatbot-internal, ChatGPT, GitHub Copilot, …): a standalone Copy code or DownloadCopy code line, plus the language label on the preceding line when present (bash, python, powershell, json, …). The match is whole-block exact (the block’s normalized text must equal the artifact, not contain it) so prose like “use bash to run this” or “press Ctrl+C to copy code” does not trip. No network calls, no LLM call — fully local pattern matching. v1.6 added a “Copy article reference” button on public Zendesk Help Center article pages. v1.5 introduced the fourth built-in Word Alerts detector that flags pasted Zendesk Help Center article links the customer cannot actually open. v1.4 added WEBP source-file support to the Snippets image pipeline; v1.3 introduced the first three built-in AI-content detectors. New in vX markers below show which version introduced each piece.

What the extension stores

All user-configurable data is stored locally in your browser via chrome.storage (local for snippet bodies, sync for the smaller settings):

The Backup & Restore feature in the Settings tab is user-initiated only. When you click Export, the extension serializes the items above into a JSON file and asks your browser to save it to your local Downloads folder. When you click Import, you select a previously-exported JSON file from your local disk; nothing is uploaded anywhere. Smart Refresh runtime state (running/stopped, tick counter) is deliberately excluded from both export and import as per-device runtime state. Changed in v1.3: Find/Replace last-used inputs are now included in the backup so a new-device restore brings them along.

None of this data leaves your browser. The extension does not connect to any third-party server, does not send anything to the developer, and does not report crashes or usage events.

Network calls the extension makes

The extension’s only network calls are to your own Zendesk subdomain’s REST API, using your existing Zendesk session cookies (the same ones your browser already sends to zendesk.com). These calls are made only when a snippet that contains a ticket-, client-, or user-scoped variable is being expanded:

Responses are kept in memory for 30 seconds and then discarded. They are never written to disk, never transmitted elsewhere, and never shared with any third party.

New in v1.5: when the “Detect non-public Zendesk article links” built-in detector is on (the default), and the agent pastes an article URL into the reply composer whose shape matches the public Help Center pattern /hc/<locale>/articles/<id>, the extension’s background service worker performs one additional HTTPS request to classify the link:

This request is scoped to the same Zendesk tenant the agent is currently composing on (the originally-pasted URL’s hostname must equal location.host; cross-tenant *.zendesk.com hostnames are skipped). Verdicts are cached locally for one hour in chrome.storage.session so the same URL does not produce repeated requests, and the cache is cleared when the browser quits. Nothing about the request, the response, or the classification is transmitted anywhere outside your browser, and no third party (including the developer) is involved.

New in v1.6: on Zendesk Help Center article pages of the shape /hc/<locale>/articles/<id>, the extension uses the same verification call described above to decide whether to mount a small “Copy article reference” button next to the article title. The button only appears for articles the verification classifies as public; restricted articles, drafts, agent/admin URLs and any URL with a ?preview=… query never receive the button. Clicking it writes a rich-HTML anchor (the article title as the visible text, the article URL as the hyperlink target) to your local clipboard, plus the article URL as plain text for paste targets that don’t accept rich content. The clipboard write happens entirely in your browser via the standard navigator.clipboard.write API; no additional network call is made beyond the verification described above (which is itself already cached for one hour), no data is transmitted to the extension developer or any third party.

Where the extension runs

The extension’s content scripts run on:

One content script (zendesk-mainworld.js) runs in the page’s main JavaScript world rather than the extension’s isolated world. This is required to access Zendesk’s CKEditor 5 reply composer via its model API (the editor ignores DOM mutations from isolated content scripts). The main-world script communicates with the rest of the extension only via window.postMessage using a typed protocol; it makes no network requests, never reads chrome.storage, and imports no third-party libraries.

Permissions

What the extension does NOT do

Keyboard shortcut

The extension declares a single default keyboard shortcut, Alt+Shift+Z, mapped to Chrome’s standard _execute_action command to open the popup. You can change or remove it at any time from chrome://extensions/shortcuts. No other keystrokes are captured or recorded.

Contact

Issues, questions, or feedback: https://github.com/Taha-Alian/zendesk-cl-extension/issues