How we run the service

Security Overview

DKT Digital, St Peter Port, Guernsey GY1 · [email protected]

Draft

DRAFT — pending legal review, not binding. This document has not been reviewed by a solicitor. It is published so you can read our terms before you talk to us, and so we can be held to what it says — but it is a working draft, not a vetted contract, and nothing here is legal advice. A binding version will be issued for signature only once it has been through legal review. If you are relying on any part of it, ask us and we will tell you where it stands.

Where your data physically lives, what is encrypted and what is not, every outside company that can process it, and how backups and access control work. Measured against the running system rather than described from intention.

*Last updated: 2026-08-01 (hosting, encryption and backup sections re-measured against the live system after the VPS migration). Owner: Daniel Thomas, DKT Digital (Guernsey).*


1. Where your data is hosted

Measured 2026-08-01, not assumed. The automation engine and the database run on a dedicated virtual server operated by Hetzner Online GmbH in Falkenstein, Saxony, Germany (EU). The public website, client portal, and edge security are served through Cloudflare. Nothing client-facing runs on the owner's own hardware any more; the earlier "Guernsey hardware" statement in this document described the pre-migration setup and was replaced once the move was verified.

So, in one sentence: **your data lives in Germany (EU), reached only through Cloudflare, and DKT Digital — the business you contract with — is established in Guernsey.**

What that means for the law that applies:


2. Encryption

In transit: all traffic is over TLS/HTTPS. The website, client portal, form submissions, and every API call to a third party use encrypted connections. Public endpoints sit behind Cloudflare with modern TLS.

At rest:


3. Sub-processors — who else touches client data

We use third-party services to deliver the automations. Below is the **full list of sub-processors that can process client personal data**, enumerated from the live automations (not guessed). The client remains the data controller for their own customers' data; DKT Digital and these providers are processors/sub-processors.

Sub-processorWhat it does with client dataPrimary region
Hetzner Online GmbHHosts the server the automation engine and the client database run on — every piece of client data at rest sits on this machineGermany (Falkenstein)
CloudflareWebsite/portal hosting, CDN, tunnel, access control (Zero Trust), bot protection (Turnstile), encrypted off-site backup storage (R2) — all client-facing traffic passes through itGlobal edge
ResendSends transactional client emails (welcome, reminders, reports, invoice chases)US
BrevoEmail delivery/transactional (secondary email path)EU (France)
Google (Workspace / Cloud, via service account)Calendar events for bookings (client name/email), optional Sheets sync, Search ConsoleUS / EU
GoCardlessDirect Debit mandates and recurring retainer collection (client billing details)UK
StripeCard payments / one-off chargesUS / Ireland (EU)
TrueLayerOpen-banking bank-feed verification for accounting audits (client bank data)UK
XeroThe client's own accounting data, accessed under the client's per-client authorisationNZ / global
TwilioSMS reminders/notifications (client phone numbers). Not live — listed because it is wired and would become a sub-processor the moment SMS is switched on for a client, not because it is processing anything today.US
CalendlyMeeting booking (client/prospect name, email)US
CrispWebsite live-chat (visitor/lead messages, email)EU (France)
Hunter.ioEmail-address verification for cold/nurture outreach only (never transactional client sends)EU / US
ApolloProspect/lead sourcing for outreach (marketing contacts, not existing-client data)US
TelegramOperational alerts to the owner — client identifiers (names/emails) can appear inside alert messagesGlobal (Telegram FZ-LLC)
AI inference — Groq, Cerebras, Google Gemini, OpenRouterLLM processing where a feature needs it (e.g. drafting a reply, summarising). See §4 on what is and isn't sent.US

Not sub-processors of client personal data (listed for completeness — these handle market data, the agency's own content/research, or internal ops, and do not receive client customers' personal data): Alpaca, Nasdaq, Yahoo Finance, Finnhub, CNN, SEC/EDGAR, arXiv, Hacker News, Reddit, TechCrunch, VentureBeat, Wikipedia (market/trading & research sources); Beehiiv (the agency's own newsletter, with its own subscribers); Buffer, Dev.to, LinkedIn (the agency's own content publishing); Tavily, Exa, Firecrawl (web research); Dub.co (link shortening); GitHub (private code/workflow backup — secrets are held in the environment, not in the backed-up files); Notion, Slack (internal operations).

The solicitor should decide which of these belong in the contractual sub-processor schedule of the DPA. The table above is the honest engineering enumeration to work from.


4. AI / model use — your data is never used to train models


5. Backups and recovery

*Re-measured 2026-08-01 against the live backup log, because the previous version of this section described the pre-migration Mac setup and reported the off-site leg as broken. It is not broken any more, and saying so is as much a correction as reporting a failure would be.*


6. Data retention (per table)

Current reality: the operational database keeps client records for the life of the engagement; there is no automatic deletion of client business tables yet. The automation engine's own execution logs are pruned automatically (kept 240 hours / max 5,000 runs).

Tables that hold client personal data today (with the honest current retention):

TableHoldsCurrent retentionProposed retention (for solicitor)
clients, saas_clientsClient profile, onboarding answers, data-source declarationsLife of engagementDuration + 6 years (financial records) or as agreed
client_integrationsEncrypted Xero/bank OAuth tokensUntil disconnectedDeleted on offboarding / disconnect
leads, outbound_queueProspect/lead contacts, outreach queueIndefinite24 months from last contact, then purge
invoices, invoice_chases, payment_eventsBilling/payment recordsIndefinite6 years (tax)
meetingsBookings (name/email/time)Indefinite24 months
client_reports, client_roi, savings_logOutcome/reporting dataIndefiniteDuration + 12 months
client_tasksSetup/data-migration tasksIndefiniteDuration + 12 months
feedbackClient feedbackIndefiniteDuration + 12 months
email_delivery_logDelivery events (recipient email, status)Indefinite12 months
sms_logSMS attempts (phone, status)Indefinite12 months

Open item: implement automatic retention/purge jobs to match whatever the solicitor sets. Right now retention is "kept unless manually deleted (or exported+deleted at offboarding)" — stated honestly rather than claimed. **The "Proposed retention" column above is a proposal only. Nothing in this table is enforced by a job today**, and no document in this set should be read as promising automatic deletion, because none happens.

[SOLICITOR] — 6 YEARS OR 7? THE DOCUMENTS DISAGREE, AND THIS IS NOT SETTLED HERE. The published Privacy Policy says client data is kept 7 years from the end of the contract, citing Guernsey financial record-keeping. The "Proposed retention" column above says **6 years (tax)** for billing and payment records. Those are two different numbers for substantially the same records, and a client reading both would get two answers. **No figure has been invented or changed here to make them agree** — picking a statutory retention period is a legal judgement, not a consistency edit, and getting it wrong in either direction is a real problem (too short breaches a record-keeping duty; too long breaches storage limitation). The solicitor should settle one figure for a Guernsey sole trader serving UK clients, and then it goes in all three places at once — here, the Privacy Policy, and DPA §7.2. Tracked as LEGAL-RETENTION-6-VS-7-YEARS.


7. Access control


8. Deletion / your rights

On request, and always on offboarding, a client's data is exported in standard formats and then deleted from the operational database and from future backups (older encrypted backups age out under the backup retention window). See Offboarding for the process and the rehearsed handover.


*Related: Service Level Agreement · Offboarding · our how-it-works notes · our internal incident runbook. The binding privacy policy and DPA are separate solicitor-drafted documents; this overview must be reconciled with them.*