Legal
Data Processing
Last updated: 29 August 2026
Who this is for: anyone reviewing Agentcroft before signing, and anyone who needs to answer a question about where their data goes. Agencies, their legal reviewers, and clients directly.
What it is: a plain statement of what the platform does with data, what is enforced in code rather than promised in prose, and what we cannot do yet. That last part is deliberate. A document that only lists strengths tells you nothing about the gaps, and you will find those anyway.
What it is not: a Data Processing Agreement. It is the factual basis one gets written from. It sits alongside our Privacy Policy rather than replacing it. Where a point depends on a third party's own terms rather than on our code, this page says so instead of asserting it.
Everything below is derived from the running codebase rather than written from memory, and the derivation re-runs automatically whenever the platform changes.
Every section below carries its basis, because "we encrypt credentials" and "our vendor says they do not train on this" are not the same kind of statement and should not read alike.
Enforced in code
A mechanism in the running system makes it true, and an automated check fails our build if it stops being true.
Confirm in contract
True today and dependent on a third party or on your jurisdiction. Get it in writing.
Not available yet
Something you may need that we do not currently do. Listed so you find out now rather than later.
1. Who is responsible for what
Enforced in codeYou decide what data enters the platform and why. We process it to provide the service and for nothing else. In data protection terms you are the controller and we are the processor. Where an agency brings a client, the agency is typically the processor to their client and we are a sub-processor beneath them.
We do not sell data, we do not share it between clients, and we do not use one client's data to serve another. Workspace separation is enforced in the database by row-level security rather than by application code remembering to filter correctly, and a check in our build pipeline fails if any query against the sensitive tables is not scoped to a single client.
2. What we hold
- Performance data read from the platforms you connect: Google Analytics, Search Console, Google Ads, Meta, Instagram, TikTok, LinkedIn, HubSpot, Salesforce, GoHighLevel, Klaviyo, Mailchimp, Google Sheets, and project tools.
- The knowledge graph built from your reports, documents, meetings and conversations with the platform. This can include named individuals: deal contacts, meeting participants, and people mentioned in documents you upload.
- Content we generate for you: reports, narratives, recommendations, drafts.
- Account data: your users' names, email addresses and roles.
- Operational records: activity logs, notification history, and telemetry about how the platform performed.
Your connected accounts are read-only unless you say otherwise. Connecting Google Analytics grants us permission to read your data; it does not let us change anything in your account. The project tools are reads only today. Any feature that writes back to one of your systems is opt-in and named as such.
3. Who else touches it
Enforced in codeThese receive data because the platform sends it to them. This is the list a Data Processing Agreement needs.
| Service | What reaches it | Why |
|---|---|---|
| Supabase | Everything, at rest. Credentials encrypted. | The database |
| Vercel | Everything in transit; server logs | Hosting |
| Anthropic | Report prompts, knowledge content, chat, document text | Every AI narrative, report, chat and extraction |
| Google (Gemini) | Text for search indexing; image prompts | Semantic search and image generation |
| OpenAI | Query text only | One AI-visibility engine |
| Perplexity | Query text only | One AI-visibility engine |
| ElevenLabs | Call audio, transcripts, phone numbers | Voice Outreach, if you use it |
| Resend | Email addresses and message bodies | Invitations and notifications |
| Slack | Alert text and workspace name | Notifications, if you connect it |
| Stripe | Billing identity and seat counts | Subscriptions. Card details go to Stripe directly and never touch our systems. |
| GoHighLevel | Account names, lifecycle and billing state | Billing and CRM |
| WoopSocial | Post content, media, account ids | Social publishing, if you use it |
| Microlink, Clearbit | Your website domain | Brand and logo lookup during setup |
| Google Tag Manager | Visitor analytics on our marketing site | Not your client data |
Connected sources are a different relationship
The platforms you connect (Google, Meta, TikTok, your CRM, your email tool) are sources, not sub-processors. You already have those accounts. Connecting one grants us read access to data you already hold there. Data flows towards us, not outwards.
How this list stays true
It is not maintained by remembering. Our build fails if the code calls any external service that has not been classified, so an integration cannot be added without someone deciding whether it belongs on this list. That is the mechanism, and it is why you can rely on the list being current rather than accurate as of whenever it was last reviewed.
4. AI, and whether your data trains a model
Enforced in codeWhat we control, and therefore guarantee. Every AI call resolves its credentials in a fixed order: your own key if you have supplied one, then your agency's, then ours. If you are on your own key and it is missing, the call is refused rather than quietly falling back to ours. So if you bring your own key, your data is processed under your own vendor account and your own vendor terms, and we cannot route it anywhere else.
Not assertedWhat we will not claim. Whether each AI vendor trains on data sent through their API is their policy, not our code, and those terms change. We will not print a promise here that we cannot enforce and that could be stale by the time you read it. If model training is material to your decision, ask us for the current terms of the specific vendors involved and we will point you at them, or use your own key and the question becomes yours to control.
5. Security: what is actually enforced
Enforced in code- Credentials for your connected accounts are encrypted at rest. The code refuses to read a credential record that is not encrypted rather than falling back to plaintext.
- Workspace isolation is enforced at the database layer, not by application code choosing to filter correctly.
- The key that bypasses those database protections exists in exactly one file and is never sent to a browser.
- Team access is restricted to verified company accounts. External users reach only the workspace they are named on.
- Payment card details never touch our systems. Checkout is hosted by Stripe.
6. Getting your data, and deleting it
Enforced in codeA copy of everything
Ask, and you get a single file containing everything the platform holds for your workspace: 66 categories of data plus your account record. It is machine-readable JSON, so it can be loaded elsewhere rather than only read.
Three things are held back, and the file itself lists them so you can see what was withheld rather than having to trust that nothing was:
| Withheld | Reason |
|---|---|
| Connected-platform credentials | Encrypted tokens for your own Google, Meta and CRM accounts. Putting them in a file that gets emailed would be a risk to you, and you control the originals already. |
| Password hashes | A hash is still a credential. Everything else about your users is included. |
| Our cost telemetry | What serving you costs us is data about the relationship, not data belonging to you. |
Deletion
Ask, and your workspace is deleted: connected credentials, cached performance data, reports, the knowledge graph, documents, notes, history and user access. This is a real deletion, not a flag, and it cannot be undone.
Two things survive on purpose, both anonymised rather than retained intact:
- Support conversations, with the link to your account removed. They are our record of how we handled an issue.
- Feature-board suggestions, with the author removed. The board loses the name, not the idea.
One thing deletion does not do, and it matters: removing our copy of a token stops us reading your accounts, but the authorisation you granted still exists inside your Google, Meta or CRM account until you remove it there. We will remind you at the time. Do it, and the door is closed at both ends.
How to ask
Email your account team, or info@agentcroft.com directly. Say whether you want a copy, a deletion, or both. We work to a one-month turnaround, the statutory period under UK and EU data protection law, and in practice both take minutes rather than days.
On our side both are single actions available to an administrator, with the export shown to the operator before it is sent so an incomplete file cannot be handed over by accident. Every export is recorded on your own account timeline, so there is a record of what left and when.
7. What we cannot do yet
Not available yetStated plainly, because you will find these out eventually and it is better that you hear them now.
We do not yet delete data automatically over time
There is no retention schedule. Your data persists until you ask for it to be deleted or your account is removed. If a defined retention period is a requirement for you, tell us what you need and we will confirm whether we can commit to it before you sign, rather than after.
A request about one named individual is not self-service
The export covers a whole workspace. A request of the form "what do you hold about this specific person" is handled manually, and we will tell you what is involved when you raise one.
We do not have a formal certification
No SOC 2, no ISO 27001. If your procurement process requires one, we are not currently able to satisfy it, and we would rather say so at the start.
8. Changes, and what to confirm with us
Confirm in contractSub-processors change when integrations are added. The mechanism in section 3 means the list cannot drift silently, but you should ask for change notification terms in your agreement rather than assuming them.
Confirm these with us in writing before signing, because they depend on current vendor terms or on your jurisdiction rather than on our code:
- Where data is physically stored and processed, and whether that satisfies your transfer requirements.
- Current model-training terms for the AI vendors relevant to the features you will use.
- Incident notification timelines.
- Whether any retention commitment can be made for your account.
Questions about anything on this page: info@agentcroft.com.
Questions about the small print?
We're actually human - happy to talk it through.