Last updated: May 2026

Subprocessors

We rely on processors to operate Trade-OS. They receive only what is needed for their documented role under our vendor agreements (processor terms / DPA equivalents as supplied by each provider). Listed “active when configured” vendors do not ingest personal data operationally unless the referenced environment variables or keys are actually set on that deployment.

Supabase

Purpose
Managed PostgreSQL, authentication, object storage, edge tasks.
Data categories (summary)
Account identifiers, transactional business rows you enter, session tokens, file uploads you attach to workflows.
Status
Always on for standard live deployments (London/EU-aligned as configured).
DPA / processor terms
✅ Controller–processor agreement in place (Supabase contractual package).

Vercel

Purpose
Hosting, CDN, Git-backed builds, Node/Edge runtime for Next.js routes.
Data categories (summary)
Request/response artefacts for pages and APIs — same classes as surfaced in the web application and server logs operating on Vercel.
Status
Always on for deployments using Vercel.
DPA / processor terms
✅ Vercel data processing terms / DPA accepted.

PostHog

Purpose
Product safety, reliability, usage patterns, error/flow diagnostics, and proportionate AI-operation monitoring — via explicit browser opt-in and strictly typed events (no raw quote text, prompts, uploads, or contact fields).
Data categories (summary)
Pseudonymous PostHog identifiers in localStorage, coarse event metadata (feature keys, route groups, boolean flags, counts, non-sensitive status labels).
Status
Active capability where NEXT_PUBLIC_POSTHOG_KEY is set; SDK still initialises only after the subscriber selects “Allow product safety & analytics” on that browser.
DPA / processor terms
✅ PostHog's standard controller–processor terms accepted for cloud use.

Anthropic

Purpose
AI model inference for assistive features (for example quoting/estimation and internal catalogue tooling) where the codebase routes requests through Anthropic-compatible APIs or SDKs on our backend.
Data categories (summary)
Prompt-sized inputs from authenticated routes (for example job text a subscriber deliberately submits, catalogue chunks). Structured customer contact fields are excluded from prompt assembly by design; only free-text a subscriber chooses to include is processed. Prompts and completions are retained under our operational policies, not in client analytics.
Status
Active when invoked by features you use that call upstream Anthropic-hosted models — not dormant if those paths are live.
DPA / processor terms
✅ Processor terms covering API use accepted.

Google

Purpose
AI model inference via the Gemini API for assistive features on our backend. Gemini 3.5 Flash is used for multimodal analysis (photos, PDFs); Gemini 2.5 Flash is used for lightweight text tasks such as site condition advisory copy.
Data categories (summary)
Prompt-sized inputs from authenticated routes (job text a subscriber deliberately submits, catalogue chunks). Structured customer contact fields are excluded from prompt assembly by design. Prompts and completions are retained under our operational policies, not in client analytics.
Status
Active when invoked by features that route to Google-hosted models — not dormant if those paths are live.
DPA / processor terms
✅ Google Cloud / Gemini API data processing terms accepted.

Resend

Purpose
Operational transactional mail (including support notifications).
Data categories (summary)
Envelope recipients, subject lines, plaintext/HTML bodies we construct for notices.
Status
Active when configured — requires RESEND_API_KEY, EMAIL_FROM, routing such as SUPPORT_NOTIFY_EMAIL depending on pathway.
DPA / processor terms
✅ Processor terms covering email API accepted.

Stripe

Purpose
Subscriptions, Checkout, Billing Portal links, webhook handling.
Data categories (summary)
Billing artefacts Stripe processes (payments metadata, Tax/VAT tooling as enabled).
Status
Active when configured — Stripe secret & publishable keys supplied for the deployment.
DPA / processor terms
✅ Stripe data processing agreement / SaaS processor terms accepted.

Speechmatics

Purpose
Speech-to-text for voice notes (Record job, voice on quotes and templates).
Data categories (summary)
Short voice clips sent for transcription, and the resulting transcript text. Clips can include anything the business says aloud, such as a customer's name or the job details. Trade-OS does not keep the audio in cloud storage.
Status
In use — requires SPEECHMATICS_API_KEY.
DPA / processor terms
Provider's data processing terms for its speech API.

OpenAI (via Vercel AI Gateway)

Purpose
Text embeddings that match quote line items to the business's own catalogue and price history (estimator price learning).
Data categories (summary)
The name of each line item the estimator suggests, such as “Bridal bouquet” or “Consumer unit”. No customer details are sent on purpose, but a line name typed by the business can contain them.
Status
In use for businesses with price learning switched on — requires AI_GATEWAY_API_KEY.
DPA / processor terms
Vercel's DPA for the AI Gateway, and the model provider's API data terms.

Twilio

Purpose
Text messages (SMS) a business chooses to send its customers, such as quote and invoice links.
Data categories (summary)
Recipient phone numbers, the message text and delivery status.
Status
In use — requires TWILIO_ACCOUNT_SID and a sender configuration.
DPA / processor terms
Provider's data protection addendum for its messaging API.

UK address lookup (getAddress.io or Ideal Postcodes)

Purpose
Turning a postcode into a list of addresses when a business or customer types one.
Data categories (summary)
The postcode being looked up. Names and contact details are not sent.
Status
Active when configured — one provider, selected by ADDRESS_LOOKUP_PROVIDER with ADDRESS_LOOKUP_API_KEY.
DPA / processor terms
The selected provider's data processing terms.

Not live in product paths today

Auxiliary CRM tooling, outbound marketing automation, customer data warehouses, and similar processors are not wired into runtime flows until they earn a deliberate entry here.

Changes

Material processor additions or substitutions — particularly for database, auth, or AI inference — surface on this page and align with notices in our Privacy Policy when practical.