Cenaly Digital Worker

Privacy Policy for the Chrome extension · Version 9 · Last updated: 2026-10-17

The extension does the web work you assigned in systems you are already signed in to and brings the result back into your own Cenaly account — in a visible tab, under your control. In worker mode only the results of your skill's steps are sent (never passwords read from pages, hidden fields, cookies or whole pages; account passwords you choose to save for sign-in leave only encrypted so that only your device can open them); it can also record a routine you demonstrate yourself — including your spoken explanations, if you ask for it — only while the recording indicator is lit. In the collection modes you start yourself, it sends the pages you chose for your knowledge base, review pages about your business, and the storefront of your own shop when you move it to Cenaly.

Single purpose

The extension has one purpose: to be the browser helper of your Cenaly account — it performs and collects what you, the account owner, assigned to it in your account, inside web systems you are already logged into, on your own device and under your control, and returns the result into that same account. Its modes are functions of that one purpose, not separate products:

There is no other functionality — no browsing analytics, no background collection without a task you set, no code execution received from a server.

Who does what

How the extension works

  1. Pairing. You paste a single-use connection string from your Cenaly admin panel. The extension receives a worker token and stores it in chrome.storage.local of this browser. The token is not linked to your identity in any target system.
  2. One step at a time. The extension receives one step of a declarative skill from the Cenaly backend and executes it with a fixed, bundled interpreter.
  3. Result back. It returns the values the skill asked to read, plus an outcome code if the step failed.
  4. Records a training session, when you ask it to. You perform a routine yourself and the worker records what you did — and, if you tick the box, what you said about it. See “Training by demonstration” below.
  5. Collects for your account, when you start it. Knowledge-base pages, review pages and the storefront of the shop you move. See “Collection for your account” below.

What leaves your browser

Sent to your Cenaly accountExample
The values explicitly listed in the skill's read / extractList steps“order number”, “confirmation text”
Technical fields of the run: run id, step number, lease (fence) number, outcome codewait_timeout, identity_mismatch
The page host (not the full URL) for the audit logcabinet.example.com
Version 0.6.0 does not capture or send screenshots; a screenshot step requests human helpscreenshot_unavailable
Worker status (idle / working / need-you / paused, a pause may say “panel closed”) and last-seen timeheartbeat
Wake-up channel (0.17.0): the browser’s push subscription address and its public keys (issued by the browser’s push service — Google FCM in Chrome) or a one-time WebSocket connection ticket; which channel works and how often the heartbeat is sent. This lets the cloud tell the panel “ask for jobs now” instead of polling every few seconds. A wake-up carries no commands and none of your data, and shows no notificationhttps://fcm.googleapis.com/fcm/send/…, kind: "push"
Extension version and skill-interpreter version — so that a skill this version cannot run is not handed to it0.6.0, 1.1.0
Device and network information for the device registry: device name, environment, installation ID, public device key, browser session ID, coarse network, signed-in marks — see “Device and network information” below“Reception laptop · K7Q2”, Chrome 129 · Windows 11, subnet 203.0.113.0/24
Only when you press “Report a problem”: the last 20 lines of the panel log (step numbers, error codes, run id — no field values), posted to the worker's channel in your team chat“Step #2 failed: element_not_found”
In training mode: the actions you perform, with the candidate selectors of the element and the shape of the field valuesclick on “Confirm”; text input of length 12
In training mode with voice: ~20-second audio chunks of your spoken explanations — for transcription only, deleted once transcribed“if the status is pending, I confirm it”
Knowledge base & reviews mode, during a session you started: the rendered markup of each page of the session, its title, links, image addresses and image files, and the page's path (breadcrumbs)a policy page from your supplier portal
Knowledge-base collector status (0.20.0), while you have collection switched on: a heartbeat about every 30 seconds while it works and every 3 minutes while it is idle or paused — whether the collector is running, paused or waiting and the reason code, the stage of the current page (opening, capturing, sending) with the address of that page of the session, page counters, the last error code (without page content), the site addresses it is waiting for your permission to, the extension version loaded in memory and on disk and how it was installed, and acknowledgements of Pause/Resume you sent from the admin panel. This is what lets the admin panel show who is collecting what and lets you pause or resume a browser remotelystage: "capture", reasonCode: "permission-needed"
Same mode, for a review-monitoring task you set up: the rendered markup of a review page about your businessyour venue's page on a maps service
Only if you turn on “Account passwords”: the encrypted record with the account login and password — only this device's key can open it (in the Russian contour the record does not leave the device at all); salted hashes of the allowed site addresses; signatures; a grant request for each sign-in and a report of the entry — without any values“record cred_… · generation 1 · filled”
Move a shop mode, after you press Start: the pages of your own storefront (markup, layout measurements, newsletter pop-ups, product cards and their platform product JSON, text pages and legal documents)home page, products, “Refund policy”

All of the above goes to your own Cenaly account — a private storage bucket of your brand, not a shared pool and not a third party.

What never leaves your browser

These are not declarations: the dangerous primitives are absent from the interpreter by construction, and a guard test scans its source and fails if any of them appear.

Account passwords (0.9.0–0.10.0)

This feature is switched off and is currently enabled only on test accounts. It will be opened to customers after a legal review of its texts; until then this section describes how it works.

Why. So that the worker can sign in to an account itself when the session has expired, without calling you to type the password. Without the feature the worker stops at that point and asks you to sign in yourself (your own password manager is fine), then continues.

What we cannot promise. The site you allowed does receive the password — that is what signing in means — and its own scripts can see it. An infected device or its administrator can intercept the password at the moment of entry. Revoking a record stops new sign-ins but does not end sessions already open on the site and does not invalidate a password already copied — change the password on the site itself. We cannot recover the password or access to the record: if the device is lost or the extension removed, the password is entered again or reset on the site.

Deletion. A deleted or revoked record stops being issued immediately. Its encrypted copies in the cloud are deleted within 24 hours; there are no backups of encrypted records. The copy on the device stays encrypted to its key and cannot be used without the cloud's permission; it is erased together with the extension (automatic erasure on the cloud's command comes in the next extension version). A report of your records — without the passwords themselves — is available on request to privacy@cenaly.com.

Who and where. Only the account owner (staff with manager or admin roles get no rights to passwords), only when all locations of the account are in countries where the feature is open, and not for government bodies or critical infrastructure.

Device and network information (device registry)

Since 0.8.0 each connected browser profile is a device in your Cenaly account: you see the list in the Digital Worker section (Devices tab), name devices, find them, pause, move or revoke them. So that you can tell two identical laptops apart and so that a copied connection can be spotted, the extension reports the following when you connect it and while it works:

WhatWhyHow long
The device name you type when connecting (suggested: “Chrome · Windows 11”) and a 4-character device code derived from the device IDto recognise the device in the list and on its own screenwhile the device is in your account
Environment: operating system and version, browser brand and version (from navigator.userAgentData, including the User-Agent string), CPU architecture, device model if the browser reports it, time zone, language, screen size, extension and interpreter versions, capabilities, and where the extension was installed from (Chrome Web Store, an archive loaded unpacked, your organisation’s policy, or the Cenaly bridge — reported by the browser itself, no extra permission)a label that tells devices apart; “please update” hints, and a hint to move a copy that does not update itself to the Web Store version. It is never used to authorise anythinglatest value, while the device is in your account
A random installation ID (stored in the extension’s local storage) and a device key: a non-extractable ECDSA P-256 key pair created in the browser; only the public key is sent, and every request of the extension is signed with the private keya reconnect of the same installation stays the same device (no duplicates); a leaked token is useless without the keywhile the device is in your account; the private key never leaves the browser and is removed with the extension
A random browser session ID (changes when the browser restarts)if one connection is proven to run in two places at once (a copied browser profile or token), the connection is revoked as a copy and you are asked to connect the device againthe last few session IDs
Coarse network: subnet (/24 for IPv4, /48 for IPv6), country and city. Country is derived from the request IP using a built-in offline database (IP geolocation by DB-IP, CC BY 4.0) — no external lookup; city only when our CDN provides it. The full IP address is cut to the subnet in memory and is never stored, including in logs“where is the device now”; an anomaly such as a token suddenly used from another countrycurrent value plus history of network changes for 30 days (at most 20 entries)
Signed-in marks per site of your installed skills: “signed in / not signed in / unknown”, judged by the skill’s own sign-in checks. Reported from version 0.11.0 as a by-product of the worker’s own steps on the skill’s site (reached a sign-in form — “not signed in”, a step passed — “signed in”, not checked for a while — “unknown”); no cookies are read and no extra visits are madesend a task to a device that is signed in to the sitelatest value

We do not collect the browser profile’s e-mail address (the extension has no identity permission), canvas / WebGL / audio fingerprints, IMEI, serial numbers or MAC addresses. Cookies are not read for the signed-in marks. These data stay in your account’s private bucket and are visible to you in the Devices tab; a revoked device stays in the list (you can hide it) until the account is deleted, or earlier on request to privacy@cenaly.com. This disclosure is shown as an addendum to your consent in the window where you connect a device.

Browsers: Firefox and Safari (0.14.0)

The extension is also built for Firefox (and prepared for Safari). The data and the purpose are the same; the differences:

AI processing: the “decide” step

Some skills contain a decision step — for example, “which of the rows found is the request we need”. That step is executed by the cloud, not by the browser:

Collected data is not used to train our models and is not sold.

Training by demonstration (recording your actions and voice)

A separate feature of the “Digital worker” section: you perform the routine with your own hands while the worker does nothing on the page — it only watches and listens, so that a draft skill can be assembled from the recording afterwards. It is gated by a separate consent accepted in your Cenaly account: allowing the worker to act is not the same as allowing it to record you.

The microphone is not an extension permission. It is not in the manifest: the panel page asks for it with an ordinary getUserMedia call, so the browser shows its own prompt and its own recording indicator, and access can be revoked in the site settings — exactly like for any web page.

Risk classes and consent

Every skill carries a risk class, and the class is a set of enforced technical limits rather than a label:

ClassWhat it meansMode
greenour own surfaces, or platforms where automation is allowedscheduling allowed; at least 0.4 s between actions
amberthe platform's rules neither allow nor forbid automation explicitlyseparate consent; at least 1.5 s between actions; confirmation before anything irreversible
redthe platform explicitly forbids automationseparate consent that names the risk of your account being blocked; attended runs only; no background scheduling; at least 3 s between actions

We say this plainly. If a platform's terms forbid automated access, using a worker there breaches your agreement with that platform, and the platform may block your account. We cannot dispute or reverse that. This is why such skills require a separate, explicit consent, run only while you are present, and are never put on a schedule.

Consents are accepted in your Cenaly account and recorded with their version, timestamp and user agent. They can be withdrawn by revoking the paired browser.

Permissions and why they are needed

PermissionWhy
storageStore the worker pairing token, skill cache, checkpoint, result awaiting acknowledgement, next step and panel settings; separately, the knowledge-base pairing token and the address of the last shop-migration connection.
tabsCreate and navigate the dedicated work tab (worker) or capture window (collection modes) and detect when a page has finished loading.
scriptingInject bundled files into that tab: the worker's interpreter and adapter, or the page-capture scripts of a collection mode. Files-based injection only — never code strings, never remote code.
sidePanelShow the worker panel as a browser side panel.
alarmsDrive the polling loop. MV3 service workers are short-lived and we deliberately do not hold a permanent keep-alive.
notificationsOne OS notification when the worker is blocked and needs you (CAPTCHA, logged out, a host permission to grant, a confirmation question). No business data in it — only the reason and an “Open panel” button; repeated at most once every five minutes. Can be switched off in the panel.
host accessNot granted at install time. Requested at runtime, per origin, only for the hosts declared by the skill you installed (in training mode, for the site you are demonstrating on; in collection modes, for the site of the session, a review platform, an image host or the shop being moved), and only after you click the grant button.
microphoneNot a manifest permission at all. The panel page requests it with getUserMedia, and only when you tick “Spoken explanations” before a training recording.

What the extension will never do

Chrome Web Store Limited Use disclosure

The extension's use of information received from users complies with the Chrome Web Store Limited Use policy. Data the extension accesses is used solely to provide the stated feature — performing the task the user defined, recording the routine the user demonstrates, or collecting the pages the user chose for their knowledge base, review monitoring or shop migration, and reporting the result back into the user's own Cenaly account. The data is transferred only to the user's own Cenaly account and, strictly to deliver the decision step of a skill, the transcription of a training recording and the knowledge-base search and answers, to the model-access, speech-to-text and AI providers named on this page, acting on our instruction. We do not use or transfer it for advertising, creditworthiness, or any purpose unrelated to the feature, and do not use it to train our own artificial intelligence models.

Payment fields (cc-*), one-time codes and hidden ancestors are protected by the same filter during extraction, filling, recording and co-drive. Hidden descendants are excluded from extracted text.

Collection after sign-in (0.6.0)

Your skill can collect bounded lists, move through pages and open detail cards in one work tab. Permitted fields are sent with collection time, skill version and completeness metadata: rows found and returned, truncation and the reason collection stopped. Source page URLs omit query strings and fragments; card links are restricted to the skill's hosts and safe query parameters. Conversion errors contain field names and reason codes.

Session expiry or MFA requires your manual sign-in, followed by another account check. A shared action budget may pause collection for your decision. No new permissions for cookies, file downloads or interception of third-party request headers are introduced.

Collection for your account: knowledge base, reviews, shop migration (0.7.0)

These modes used to live in a separate knowledge-base collector extension; since 0.7.0 they are part of Cenaly Digital Worker. They have their own pairing, their own pages and their own rules; they do not share the worker's loop, and worker skills cannot invoke them.

Storage and deletion

Whom we share data with

These recipients only, and only to make the feature work: your own Cenaly account (including its knowledge base, review monitoring and shop import); the model-access provider for the decision step and for turning a training recording into a draft skill, in the volume of a structured extract; the speech-to-text service of our cloud provider (Amazon Transcribe, inside the same AWS account that already stores your data) for the voice explanations of a training session; and the knowledge-base AI providers (OpenAI and Google internationally, Yandex Cloud in Russia) for the text of knowledge-base pages and your questions about them. All act on our instruction. No one else; nothing is sold. Account passwords are given to no one except the site you allowed, at the moment of sign-in.

Changes

We may update this policy. Material changes to what the consent covers increment the consent version in the product, and you will be asked to accept the terms again in your Cenaly account. Disclosures that concern only connecting a device (such as the device and network information above) are shown as an addendum in the window where you connect a device. “Account passwords” has its own separate consent, accepted in your Cenaly account before the first record is saved.

Contact

Privacy questions: privacy@cenaly.com.