Legal
Privacy policy
Last updated 2 November 2026 · Early-access version · Applies to aibotoffice.ai
Bot Office draws a living office from the events your automations and AI bots send us. If you choose to, it can also read run history from your n8n or Make account (pull connectors) and let your bots act in tools you connect (connections), under rules and approvals you set. This page says, in plain English, what we store, what we never store, who is responsible for it, how long we keep it, and how to reach us. If anything here is unclear, write to privacy@aibotoffice.ai.
1. What the office stores
For events, Bot Office only keeps the fields in its event schema. An event is a small record such as "bot leads-1 finished lead_qualified". The complete list of what we store about a workspace is below; the rows marked optional exist only if you turn that feature on.
| Data | Limit | Why |
|---|---|---|
| Workspace name and the website URL you branded from | — | To name and theme your office |
| Agent ids, display names, roles, tiers, platform names | id ≤ 64 characters | To draw a desk and nameplate per bot |
Event names (for example run_started, handoff, run_finished) and status | ≤ 64 characters | To pick the animation |
| Run ids and correlation ids | ≤ 128 / 256 characters; an email, phone, card or social security number inside an id is replaced by a keyed pseudonym | To group events into runs and replay meetings |
| Task titles | ≤ 80 characters, scrubbed | The label on the folder a bot carries |
| Messages | ≤ 140 characters, scrubbed | The speech bubble |
| Counts, step numbers, minutes saved, cost, severity, timestamps | numbers and ISO dates | Stats and ROI |
Allow-listed metadata keys: platform, model, cost_usd, tokens, tags, kind | — | Dossier details; anything else is dropped |
| Office access codes, per-bot tokens (the secret in each bot's URL) and approver keys as SHA-256 hashes; view keys (the secret in share links) as hashes, or as issued for offices created before hashing was introduced, until the key is rotated | — | To authenticate senders, share links and approvers |
| Approvers you add: their name and when their key was created or revoked | — | So a named person can approve or reject a bot's action |
| Per-bot token details: label, bot id and name, created, last used and revoked times | — | So you can list and revoke bot URLs |
| Per-bot connection notes: the time and channel (connector link or reporting link) of the bot's last report with its event name, task title, message and any field the office had to guess; the last refused report's status and reason (scrubbed, at most 300 characters, up to 8 detail lines); and the name of the AI tool, the step and the tool called the last time it connected through the connector link | one of each, overwritten by the next | To show whether a bot is set up correctly (Check my bot) |
| Custom roles you save (role name, job description, house rules, skills) | — | To give bots a role from the library |
| Optional. Tasks on the work queue: title, details, outcome and progress notes as written, priority, assignee, due time, who made and changed it, and its handoffs. Not scrubbed: write labels, not customer records | title ≤ 80, details ≤ 1,000, outcome ≤ 500, progress ≤ 140 characters; at most 200 open and 400 kept per office (the oldest done or cancelled are trimmed) | To give bots work and show who is doing what |
| Optional. Routines: the task they make (title, details, priority, assignee or role), the schedule, time zone and when they last and next fire | at most 30 per office | To make the same task on a schedule |
| Optional. Messages from the office to a bot: the text as written (not scrubbed), who sent it, when, and when the bot read it | ≤ 500 characters; the last 50 per bot are kept, read or unread, and the oldest is dropped | So a person can leave a bot a note it picks up on its next check |
| Optional. Office memory notes: a key and the text as written (not scrubbed). Text that looks like a key, token or password is refused, not stored | key ≤ 64, text ≤ 2,000 characters; at most 100 notes per office | Working context the office's bots share |
| Optional. Webhooks: the endpoint URL, the event types and format (JSON, Slack or Teams) you chose, the signing secret (encrypted, section 9), and the time, status and failure count of the last delivery | at most 5 per office; URL ≤ 2,048 characters | To tell your tools, Slack or Teams when something happens |
| Optional. Decision links (the approve-from-a-link button in an approval webhook): only a SHA-256 hash of the link, the action it is for, a digest of that action's parameters, and when it was made, expires and was used | expires within 24 hours (sooner if the approval expires first) | So an approver can open one pending approval from Slack or email; deciding still needs their approver key or the office access code |
| Optional. Connections: which tool (ServiceNow, BMC Helix, Jira, Zendesk, Zabbix, PagerDuty, Slack, AWS, VMware vSphere, GitHub, Twilio, Salesforce, HubSpot, Shopify or Stripe), its non-secret settings (such as instance URL, region or account id) and the credentials you enter, encrypted (section 9) | — | So your bots can act in that tool on your instruction |
| Optional. Action records: which bot asked, the action, its parameters, the bot's reason, the risk tier, the policy decision, the names and notes of approvers, timestamps, the result (summary, id and link in your tool) or the error, and the audit history. The reason and notes are scrubbed like messages; anything shaped like a password or key is removed from text parameters | parameters as defined per action, ≤ 16 KB in all; reason, notes and result summary ≤ 240 characters | To run the approval flow and keep an audit trail of what your bots did |
| Optional. Bot powers and action settings: what each bot may do and its limits, tier overrides, the two-person rule, approval expiry | — | To decide which actions run, wait for a human or are refused |
| Optional. Pull connectors: your n8n or Make base URL, the API key you enter (encrypted), the workflows you selected and their names; the runs we read become events (workflow name, run id, status, times) | — | To show those workflows without editing them |
| Rate-limit counters, keyed by a keyed hash of the credential or of your IP address (not the address itself) | one-minute to one-hour windows | To stop abuse |
| Early-access list: email, optional role, URL and note | — | To contact you about access |
Scrubbing. Before a task title or message is stored, we replace anything that looks like an email address, a phone number, a US social security number or a payment card number (a 13–19 digit number that passes the standard card checksum and is not part of an id such as a server or run id) with a placeholder. Other long numbers, such as bank account numbers, are not detected, so do not send them. In ids (run, correlation and bot ids) the same matches become redacted- plus a keyed hash, so related events still group together but the original value cannot be read back without our server secret. Longer text is truncated to the limits above and the sender receives a warning. Any request larger than 16 KB is rejected outright, not stored.
2. What we never store
- Conversation content. No chat transcripts, call recordings, call transcripts or email bodies. The office shows that a bot sent an email, not what it said.
- Prompts and model outputs. Your bots' instructions and generated text are not part of an event. Only what a bot puts in an event's two short text fields reaches us from an event, scrubbed as described above; tasks, messages and memory notes hold only what you or your bots write into them, as written.
- Your customers' records in the event stream. Events carry no contact records, orders, invoices, patient data or CRM rows. Send us the event, keep the record in your own tools. Exception, only if you use connections: the parameters of an action your bot asks for are stored in its action record and sent to the tool you connected. Depending on the action they can contain personal data, for example the number and text of an SMS, or a contact's name, email and phone number for a CRM update. Bot Office does not read your tools beyond what an action or its verification needs.
- Credentials you did not give us. Bot Office holds credentials to your tools only for the connections and pull connectors you add, and calls those tools only for actions that passed your policy (and, where required, a human approval) or, for pull connectors, to read run history about once a minute. Without them, your bots push events to us and we pull nothing.
- Request bodies beyond the schema. Fields the schema does not list are discarded during validation and are not written anywhere.
Because event text is limited to two short, scrubbed fields, and tasks, messages and memory notes are not scrubbed, the simplest way to stay compliant is to send labels, not records: "Quote sent to lead", not a person's name. For healthcare and other regulated clients we recommend the "no free text" mode: counts and event names only.
3. Controller and processor
You, the customer, are the data controller. You decide which bots send events, what the task titles and messages contain, and who may view the office. If you are an agency building offices for your clients, you are responsible to your clients for that data under your own agreement with them.
Bot Office is the data processor. We store and render the events on your instructions, and we do not use them for any other purpose. We do not sell data, we do not train models on it, and we do not share it with anyone except the sub-processors listed below. A standard data processing agreement for agencies is available on request at privacy@aibotoffice.ai.
For the early-access list and for messages you send us directly, Bot Office is the controller.
4. Retention
| Data | Kept for |
|---|---|
| Raw events (the records in section 1) | Today: until the workspace is deleted. A daily deletion job is built but not switched on yet. Once it is on, events older than 90 days are deleted every day, and we will update this page. |
| Hourly activity counts (the office's activity chart) | 7 days |
| Brand previews not saved to an account | 24 hours (see section 5) |
| Early-access list | Until you ask us to delete it |
| Per-bot connection notes | Each note is replaced by the next one of its kind. Removed when the bot link is revoked or the workspace is deleted |
| Workspace, agents, keys, bot tokens, approvers, custom roles | Until the workspace is deleted (a revoked token or approver stays listed as revoked) |
| Tasks, routines, memory notes and webhooks | Until you delete them or the workspace is deleted; beyond 400 tasks per office, the oldest done or cancelled are trimmed |
| Messages to bots | The last 50 per bot; older ones are dropped. All removed when the workspace is deleted |
| Decision links | Usable for at most 24 hours; the hashed record is kept about 7 more days so a late click is told the link expired, then pruned. All removed when the workspace is deleted |
| Connections and pull connectors, with their encrypted credentials | Until you remove them or the workspace is deleted |
| Action records and their audit history | Until the workspace is deleted. The daily deletion job never touches them, so they stay available as an audit trail (an approval request that nobody answers expires, but its record stays) |
| Rate-limit counters | Their window (one minute to one hour); leftover entries are removed by the same daily job once it is switched on |
Until the deletion job is switched on there is no automatic expiry of events, and action records never expire on their own: we keep them until the workspace is deleted. The office's owner can delete it at any time with the office access code (DELETE /v1/workspaces/:id with the workspace id typed as confirmation), or by emailing privacy@aibotoffice.ai. Deleting removes the workspace, its keys, bot tokens with their connection notes, approvers, events, agents, custom roles, tasks, routines, messages, memory notes, webhooks, decision links, connections and their credentials, pull connectors, action records and settings. It cannot remove what your bots already wrote into the tools you connected; that lives in those tools. We do not keep aggregate rollups or debug copies of payloads. Your office history is your data: the owner can export the workspace's data as JSON with the office access code (GET /v1/workspaces/:id/export, in pages of 500 records; keys, tokens and encrypted credentials are left out) or ask us for it, and an agency can transfer an office to another agency on request.
5. Brand previews
When you paste a website URL on the landing page, our server fetches that site's public homepage once and reads its logo, colors and font to theme a preview office. We fetch only public, web-facing pages, we refuse private and internal addresses, and we rate-limit previews per visitor.
- Previews of brands you do not own are rendered with a visible preview watermark.
- Extracted brand kits (name, logo URL, colors, font, industry guess) are cached for up to 24 hours and are not stored beyond that unless you save the office to an account. We do not copy logo files; we reference them at their original URL.
- When you publish or connect an office, you confirm that you have the rights to use that brand (your own, or your client's with permission).
- Takedown. If you own a brand and want it removed from previews or cached kits, email privacy@aibotoffice.ai with the domain. We remove it within two business days and block the domain from future previews on request.
6. Cookies and local storage
Bot Office sets no cookies. The site uses your browser's localStorage for these conveniences:
- the brand kit you last previewed, and custom roles you wrote on the roles page;
- on the Connect page, by default ("Remember this office on this device" is ticked): your office id, name and brand, its share link and view key, the bots you named, the per-bot URLs (tokens) minted on that page, and your office access code, the office's owner credential. Untick the box when you create the office and none of this is written: it lives in the open page only, and the choice is remembered;
- on the connections page and in Mission Control, the office access code if you tick "Remember", and the approver name you last typed.
Anyone who can use your browser profile can read these values, so do not remember the key on a shared computer. This data is sent to us only to authenticate your own requests to the API: the keys in a request header, and a bot URL's token as part of that URL when you send a test event. To clear it, use "Forget on this device" on the Connect page (it can also revoke the bot URLs minted there) or "Forget key on this device" on the connections page, or clear site data in your browser settings. The site works without it.
7. Analytics
There is no analytics or tracking on aibotoffice.ai at launch: no third-party scripts, no pixels, no session recording, no fingerprinting. The only external resources the pages load are fonts from Google Fonts, which may see your IP address as part of serving the font files, and an office's brand logo, which is loaded from the company's own public website (https only; private and internal addresses are refused). If we add privacy-respecting, cookie-free analytics later, this page will say so before it goes live.
8. Sub-processors
| Provider | Purpose | Location |
|---|---|---|
| Netlify, Inc. | Hosting, serverless functions, and storage (Netlify Blobs) of everything in section 1: workspaces, events, keys and tokens, roles, connections and encrypted credentials, pull connectors, action records, settings, rate-limit counters and the early-access list | United States |
| Google Fonts | Font files for the website | Global CDN |
The tools you connect (section 1) and your n8n or Make account receive the requests your bots' actions make, or the read requests of a pull connector. They are your own providers, chosen and contracted by you, not our sub-processors.
We will update this list before adding a sub-processor. Customers with a DPA are notified by email.
9. Security
The full account, written for vendor questionnaires (keys, encryption, approvals, headers, rate limits, known limits), is on the security and data handling page.
- Office access codes, view keys, bot tokens and approver keys are stored as SHA-256 hashes (view keys of offices created before hashing, until their first rotation, are the exception). The owner can rotate the office access code and view key with the API (
POST /v1/workspaces/:id/keys/rotate; old share links stop working) and revoke or rotate any bot URL on the Connect page. - Credentials for connections and pull connectors are encrypted at rest with AES-256-GCM under one site-wide secret held as a Netlify environment variable. The API never returns them and they are not shown again. A key-management-service vault with per-bot scopes is planned; until then, anyone with access to that secret and the storage could decrypt them.
- Actions run only within each bot's powers. Higher-risk actions wait for a named human approver, who sees the full request before approving; the most destructive ones also need the action typed out and, unless you turn the two-person rule off, a second approver.
- Every event is validated against a strict schema, capped at 16 KB, scrubbed, and de-duplicated by
event_id. Each key has a rate limit. - Workspaces are isolated: a key for one workspace cannot read or write another.
- All traffic is served over HTTPS.
- Brand fetches resolve DNS to public addresses only, follow no redirects to private ranges, time out after six seconds and read at most 1.5 MB.
Found a vulnerability? Email security@aibotoffice.ai. We answer within two business days and will not pursue good-faith researchers.
10. Your rights
Depending on where you live (including the EU/EEA, the UK, and US states such as California), you may have the right to access, correct, export, restrict or delete personal data we hold, and to object to certain processing. For data in a customer's workspace, send your request to that customer (the controller) and we will help them fulfil it. For the early-access list or anything else where Bot Office is the controller, email privacy@aibotoffice.ai. We answer within 30 days and never charge for a first request. You may also complain to your local data protection authority.
Data is processed in the United States. Where EU or UK law requires it, transfers rely on standard contractual clauses included in our DPA. An EU hosting option is planned for a later phase.
11. Children
Bot Office is a business tool and is not directed at children under 16. We do not knowingly collect personal data from children; tell us if you believe we have and we will delete it.
12. Changes to this policy
When we change this policy we update the date at the top and, for material changes, email customers with a workspace or on the early-access list at least 14 days before the change takes effect.
13. Contact
Bot Office is the trading name of the operator of aibotoffice.ai. Our legal entity name and postal address are provided on request to any of the addresses below and will be published here before general availability.
Privacy and takedown requests: privacy@aibotoffice.ai
Security reports: security@aibotoffice.ai
Everything else: hello@aibotoffice.ai
This policy describes the early-access release. Items marked as planned (EU hosting, the daily 90-day event deletion, per-tenant retention, a key-management-service vault for credentials) are not available yet; see the honesty standard for how we label what is real.