CareCoreTrust Centre

Security & data protection

Care data is the most sensitive data there is. We treat it that way.

CareCore handles calls, WhatsApp messages, rotas and safeguarding records for domiciliary care providers. This page sets out exactly where that data lives, who can reach it, how long we keep it and what we do when something goes wrong. The care agency is the data controller. CareCore is the data processor, acting only on documented instructions.

Data residency

London, UK

Record types processed

23 (9 special category)

Sub-processors

5, all disclosed

Posture

Six commitments we can evidence on request

Each of these is implemented in the product, not just in policy.

UK data residency

All care records, transcripts and messages are stored in AWS eu-west-2 (London, United Kingdom). Nothing is replicated outside the UK for storage.

Isolation by default

Every row carries an agency identifier and is protected by database-level row-level security. One agency can never read another's data, even if application code is bypassed.

Least privilege

Four roles — registered manager, coordinator, carer, auditor. Carers see only their own record and the clients on visits they are rostered to.

Immutable audit trail

Every operational and governance action writes an audit event that cannot be updated or deleted by any application role.

Automatic retention

Per-agency retention windows are enforced by a scheduled nightly database job, not by anyone remembering to run one.

No open sign-up

Accounts exist only via a single-use invite from a registered manager. Recordings are never publicly addressable — audio is streamed through a short-lived signed proxy.

Certifications

Where we are — stated honestly

We publish status rather than badges. Anything marked in progress is not yet certified.

StandardStatusNotes
UK GDPR / Data Protection Act 2018In placeROPA, retention schedule, DSAR process and audit trail all implemented in-product.
ICO registrationIn progressController registers separately; CareCore registers as processor. Fee payable annually.
Cyber EssentialsIn progressTechnical controls (MFA, patching, access control) are met; certification body assessment to be booked.
NHS Data Security & Protection Toolkit (DSPT)In progressEvidence for the mandatory assertions is produced by this page; annual publication required by 30 June.
ISO/IEC 27001RoadmapUnderlying infrastructure (AWS, Twilio and our cloud platform) is certified; a CareCore-level ISMS certification is a 2027 objective.
CQC KLOE — Well-led / SafeIn placeAudit trail, incident log, escalation timings and staff-access evidence are exportable for inspection.

Security controls

Technical and organisational measures

The control set an information-governance lead will want to walk through, with the evidence we can show for each.

Tenant isolation

Every table is scoped to agency_id and protected by row-level security in the database itself.

Evidence: RLS policies on all tables; enforced even if application code is bypassed

Least privilege

Four roles — registered manager, coordinator, carer, auditor — with page- and row-level permissions.

Evidence: src/lib/rbac.ts + has_role() security-definer checks in every policy

Data minimisation

Carers see only their own record and clients on visits they are rostered to. Family contacts are hidden from carers.

Evidence: Carer-scoped RLS policies

Encryption

TLS 1.2+ in transit; AES-256 at rest on managed Postgres and object storage.

Evidence: Platform-level cloud controls (AWS)

Recording custody

Recordings are never publicly addressable — the console requests a short-lived HMAC-signed token and audio is streamed through a server proxy.

Evidence: src/lib/recording.server.ts (30-minute token TTL)

Webhook integrity

Every Twilio voice and WhatsApp webhook is signature-verified before a single record is written.

Evidence: X-Twilio-Signature validation on all public endpoints

No anonymous access

Registration requires a single-use invite token or a new agency creation; there is no open sign-up.

Evidence: handle_new_user() trigger rejects sign-ups without an invite

Accountability

Every operational and governance action writes an immutable audit event (no update or delete permitted).

Evidence: audit_events table with UPDATE/DELETE denied to all roles

Storage limitation

Per-agency retention windows are enforced by a scheduled nightly database job, not by anyone remembering.

Evidence: apply_retention() run daily at 03:15 UTC via pg_cron

Rights of the individual

One-click subject access export and pseudonymising erasure, both logged with a statutory 30-day due date.

Evidence: Data governance panel + data_subject_requests log

AI transparency

The AI's intent, confidence and the policy documents it relied on are stored against each call and thread.

Evidence: calls.workflow, conversations.ai_state, knowledge citation references

Human override

Anything the AI cannot safely handle is escalated to a named human, paged through the on-call chain, with time-to-human recorded.

Evidence: escalations.time_to_human_seconds, page_events

What we process

Record of Processing Activities

Our full Article 30 register. Special category data (health and care information) is marked.

RecordPurposeData categoriesLawful basisData subjects
Agency tenancyIdentify the tenant, route inbound calls and messages to the right agency.Business name, slug, main phone number, scheduling preferencesContract (Art. 6(1)(b))Agency (organisation)
Staff accountsAuthenticate console users and attribute every action to a named person.Name, work email, phone, avatar, agency membershipContract (Art. 6(1)(b))Managers, coordinators, carers, auditors
Access rightsEnforce role-based access control and least privilege.User id, role (admin / coordinator / carer / auditor)Legal obligation — security of processing (Art. 32)Staff
Onboarding invitationsInvite named colleagues into the agency workspace with a scoped role.Email address, role, single-use token, expiryContract (Art. 6(1)(b))Prospective staff
Service user recordsSpecial categoryIdentify the person receiving care so calls, messages and visits resolve to the right record.Name, date of birth, address, phone, conditions, risk profile, next of kin, care notesArt. 6(1)(b)/(f) + Art. 9(2)(h) — health and social care provisionService users
Family & representative contactsRecognise who is messaging on WhatsApp and whether they may request changes.Name, relationship, phone, verification and permission flagsLegitimate interests (Art. 6(1)(f)) — keeping families informedFamily members, advocates, next of kin
Care worker recordsRoster, match by skill and reach the right carer for cover.Name, phone, email, skills, reliability score, statusContract (Art. 6(1)(b))Care workers
Availability patternsWork out who can legitimately be offered a shift or cover.Weekday or dated availability windows, notesContract (Art. 6(1)(b))Care workers
Absence reportsSpecial categoryRecord a reported absence and drive the cover broadcast.Reason, dates, free-text note, affected visitsArt. 6(1)(b) + Art. 9(2)(b) where sickness is disclosedCare workers
Rota / visitsSpecial categoryThe schedule of care; the source of truth the AI answers rota questions from.Client, carer, date, times, status, visit notesArt. 6(1)(b) + Art. 9(2)(h)Service users, care workers
Call recordsSpecial categoryLog every inbound/outbound call, its AI triage outcome and the workflow it triggered.Numbers, direction, duration, intent, sentiment, urgency, AI summary, recording referenceArt. 6(1)(b)/(f) + Art. 9(2)(h)Service users, families, care workers
Call transcriptsSpecial categoryEvidence of what was said, for safeguarding review and AI quality assurance.Verbatim speech, speaker label, timings, confidenceArt. 6(1)(f) + Art. 9(2)(h)Anyone on the call
Call recordingsSpecial categoryAudio evidence for disputes and safeguarding. Media itself is held by Twilio; CareCore stores only the reference.Recording reference (audio hosted by Twilio)Art. 6(1)(f) + Art. 9(2)(h)Anyone on the call
WhatsApp threadsSpecial categoryFamily and service-user messaging, AI triage and the actions taken from it.Phone number, message body, intent, sentiment, AI state, assignmentArt. 6(1)(b)/(f) + Art. 9(2)(h)Families, service users
IncidentsSpecial categorySafeguarding, falls, medication and welfare concerns raised by AI or staff.Category, severity, description, client, carer, resolutionLegal obligation — CQC / safeguarding + Art. 9(2)(h)Service users, care workers
Operational tasksThe follow-up work created from a call, message or incident, with an owner and a due time.Title, description, priority, owner, linked records, resolutionContract / legitimate interestsStaff, service users (by reference)
EscalationsSpecial categoryHand-off to a human, with the chain of who was paged and when.Reason, urgency, owner, acknowledgement and resolution timestampsLegal obligation + Art. 9(2)(h)Service users, staff
On-call roster & paging logKnow who is on call, and prove they were contacted.Name, role, phone, channel, message sent, delivery statusContract / legal obligationManagers, coordinators
Cover broadcastsRecord which carers were offered a shift and who claimed it.Visit, carer, phone, offer status, timestampsContract (Art. 6(1)(b))Care workers
Policy knowledge baseGround AI answers in the agency's own policies rather than open-web guesswork.Policy text and vector embeddings (no personal data expected)Legitimate interests (Art. 6(1)(f))None (organisational content)
Audit trailWho did what, to which record, and when — the accountability evidence (Art. 5(2)).Actor, action, resource, metadata, timestampLegal obligation — Art. 5(2) / Art. 32Staff
Rights requests logEvidence that access and erasure requests were answered within the statutory month.Subject, request type, status, outcome summary, due dateLegal obligation (Art. 12)Service users, care workers
Retention configurationPer-agency retention windows, applied automatically every night.Day counts per data classLegal obligation — storage limitation (Art. 5(1)(e))None

Retention

How long each record is kept

Windows are configurable per agency within statutory limits and enforced automatically overnight.

Agency tenancy

Life of contract

Staff accounts

Life of contract, then 30 days

Access rights

Life of contract

Onboarding invitations

Expires after 7 days; record kept 12 months

Service user records

Care records: 7 years after end of service (or 25th birthday for under-18s)

Family & representative contacts

Life of the care package + 12 months

Care worker records

6 years after leaving (employment limitation period)

Availability patterns

Rolling 12 months

Absence reports

3 years

Rota / visits

7 years with the care record

Call records

Configurable per agency (default set in the retention schedule)

Call transcripts

Configurable per agency (default set in the retention schedule)

Call recordings

Configurable per agency (default set in the retention schedule)

WhatsApp threads

2 years

Incidents

7 years (safeguarding: longer where an investigation is live)

Operational tasks

3 years

Escalations

7 years

On-call roster & paging log

3 years

Cover broadcasts

2 years

Policy knowledge base

Until superseded

Audit trail

Configurable per agency (default set in the retention schedule)

Rights requests log

3 years after completion

Retention configuration

Life of contract

Sub-processors

Everyone who touches the data

Controllers are notified before any addition. All are engaged under Article 28 terms.

ProviderPurposeData sharedLocationTransfer basis
Lovable Cloud (managed Postgres on AWS)Primary database, authentication and file storage.All application data listed in the ROPAAWS eu-west-2, London, UKNo transfer — data stays in the UK
TwilioInbound/outbound voice, call recording media, WhatsApp and SMS delivery.Phone numbers, call audio, message bodiesIreland/EU with US parentEU SCCs + UK Addendum; Twilio is UK GDPR-committed
DeepgramSpeech-to-text transcription of call audio.Call audio, resulting transcript textUnited StatesSCCs + UK Addendum; zero data retention available on request
Lovable AI Gateway (Google Gemini, OpenAI TTS)Intent triage, reply drafting and neural voice synthesis.Transcript snippets, message text, retrieved policy extractsEU/US depending on modelSCCs + UK Addendum. Inference only — content is not used to train models.
VercelApplication hosting and edge delivery.Request metadata only; no care records at restEU region (lhr/fra)SCCs + UK Addendum

AI governance

What the AI is allowed to do — and what it never does

CareCore uses AI to triage calls and messages. That capability is bounded and auditable.

No training on your data

Model providers are used for inference only. Care content is not used to train or fine-tune any model.

Grounded in your policies

Answers are retrieved from the agency's own knowledge base and live rota. The AI does not invent clinical guidance.

Explainable decisions

Detected intent, confidence, sentiment and the policy extracts relied upon are stored against every call and thread.

Human in the loop

Anything clinical, safeguarding-related or out of scope is escalated to a named human and paged through the on-call chain, with time-to-human recorded.

No autonomous clinical decisions

The AI never changes a care plan, medication instruction or risk assessment. It records, routes and confirms.

Minimised prompts

Only the transcript snippet, message text and the retrieved policy extract are sent for inference — never a full client record.

Individual rights

Access, correction and erasure

Requests are handled by the agency as controller; CareCore provides the tooling and answers within the statutory month.

  1. 1

    Request received — logged in the rights request register with a statutory due date one calendar month out.

  2. 2

    Identity verified against the client or carer record before any data leaves the system.

  3. 3

    Export produced from the governance panel: the subject record plus every call, transcript, visit and incident held.

  4. 4

    Third-party data reviewed and redacted where another individual would be identified.

  5. 5

    Delivered securely; the register records who exported it and when.

  6. 6

    Erasure requests are fulfilled as irreversible pseudonymisation — identifiers and verbatim speech are removed while the clinical and audit record survives, as care records must be retained by law.

Incident response

If something goes wrong

Our breach procedure is timed to fit inside the controller's 72-hour ICO obligation.

  1. 1

    Detect — automated alerting on failed auth spikes, webhook signature failures and admin-role changes.

  2. 2

    Contain within 1 hour — revoke sessions and keys, isolate the affected agency tenant.

  3. 3

    Assess within 12 hours — scope the records and data subjects involved using the audit trail.

  4. 4

    Notify the controller (the agency) without undue delay and in any event within 24 hours of confirmation.

  5. 5

    The controller notifies the ICO within 72 hours where the breach is likely to result in a risk to individuals.

  6. 6

    Notify affected individuals directly where the risk is high.

  7. 7

    Post-incident review within 10 working days; corrective actions tracked to closure.

Due diligence

Ask us for the full pack

We will supply a Data Processing Agreement, DPIA support pack, retention schedule and penetration-test summary under NDA.

Data protection contact: privacy@carecore.app. Security disclosures: security@carecore.app — we acknowledge within one working day.