LiveCRM Security Overview
LiveCRM changes records in the systems your revenue team depends on, so our security model starts from one principle: every change is recorded before it is made, and every recorded change can be reversed. This page describes how we protect your data, how we access your CRM, and what we do and do not yet hold in the way of certifications.
Where your data lives #
LiveCRM runs on Amazon Web Services in the US East (N. Virginia) region, us-east-1. The application runs in managed containers, your data is stored in a managed PostgreSQL database, and all of it is in that one region. Cloudflare sits in front of our API and handles TLS for incoming requests. We do not operate our own hardware.
LiveCRM keeps a copy of the CRM records you connect so that our tools can read your data quickly and consistently without repeatedly calling your CRM. That copy is kept current from your CRM's own change notifications.
A customer-hosted deployment, in which LiveCRM runs inside your own environment, is in development and not yet available.
Tenant isolation #
Every customer's data is separated at the database level. The tables that hold your CRM records, configuration, and audit history enforce PostgreSQL row-level security, applied even to each table's owner, so a query returns only rows belonging to the tenant that issued it. The application connects with a database role that cannot bypass those policies. The one exception is an internal registry of CRM connections, which our change-notification service must read across tenants; it holds connection metadata, and the credentials themselves are stored separately as described below. Our build pipeline checks every table against the live schema and fails if a new table could hold customer data without isolation.
Your tenant and CRM connection are always taken from your authenticated session or credential, never from a value supplied in a request.
Encryption #
Data in transit between your browser, AI agents, and LiveCRM is encrypted with TLS, and connections between our application and our database are required to use TLS.
Data at rest is encrypted with AES-256: the database, its automated snapshots, and the storage buckets that hold customer data. Encryption keys are managed by AWS. We do not currently offer customer-managed keys.
CRM authorization tokens and any provider or AI keys you supply are stored in AWS Secrets Manager under a path unique to your tenant, encrypted at rest with an AWS-managed key. They are never stored in our database or in code.
Backups #
The database is backed up automatically every day and backups are retained for seven days. We rehearsed a full database restore in September 2026.
How LiveCRM accesses your CRM #
LiveCRM connects to Salesforce and HubSpot through their standard OAuth authorization, so we never receive your CRM password, and you can revoke access from your CRM at any time. We recommend connecting through a dedicated integration user whose permissions your administrator controls.
Salesforce customers install the LiveCRM package, which contains the definition of the app Salesforce authorizes plus three custom fields used by the departure workflow. It ships no Apex, triggers, flows, Lightning components, or custom objects, so no LiveCRM code runs in your org. It is installed from a direct link and has not been through AppExchange security review.
For Salesforce, LiveCRM requests API access and a refresh token so it can keep working without asking you to sign in again, and it syncs accounts, contacts, leads, opportunities, cases, and users. For HubSpot, LiveCRM requests read and write access to contacts, companies, and deals, and read access to deal schemas and owners.
LiveCRM respects your CRM's API limits. Normalization, Mass Update, and Assignment runs check your remaining Salesforce API budget before writing and decline to proceed if it is insufficient or cannot be read.
Every change is recorded and reversible #
Before LiveCRM writes to your CRM, it reads the current values and records them. If that record cannot be saved, the change is not made. After the change, the record is available in History with both the prior and new values, and you can reverse it. Reversals remain available after a trial ends or its write allowance is used.
The application's database role cannot delete audit records. It can update only these fields: a change's status and the times it was executed and reversed, the values it wrote, the native API calls it made, the records it affected, and the reversal fields that record how to undo it.
Reversal restores the values LiveCRM recorded. It does not replace your own CRM backups and cannot undo downstream effects in your CRM, such as workflows that fired because of a change.
If something goes wrong #
If we confirm unauthorized access to your data in our systems, we notify you without undue delay and in any event within 72 hours, and we give you the information you need to meet your own reporting obligations.
Duplicate merges are never automatic. Every duplicate group LiveCRM finds is placed in the Queue and is merged only after a person or an authorized agent approves it.
Signing in and access control #
LiveCRM has no passwords. You sign in with your Google account or with a one-time link sent to your work email. LiveCRM does not provide its own multi-factor authentication; if you sign in with Google, your organization's Google account policies, including multi-factor authentication, apply.
Accounts have administrator and member roles. Only administrators can create or start runs and change rules. Any user in an account can approve, reject, or reverse changes in the Queue.
AI agents connect through our Model Context Protocol endpoint using OAuth 2.1 with PKCE. An agent receives only the capabilities a user approves, expressed as scopes such as reading CRM data, creating runs, starting runs, and reversing changes. Administrator-only capabilities cannot be granted to a member's agent. Every change an agent makes is recorded and reversible exactly as a person's change is.
AI and data providers #
LiveCRM's tools are deterministic: the same records and the same rules produce the same result. AI is used to plan work from plain-language requests and to assist with specific decisions, and every resulting change passes through the same recorded, reversible path.
You can connect your own Anthropic key. When you do, requests are made under your own agreement with Anthropic. When you do not, including during a trial unless you connect a key, LiveCRM uses its own Anthropic account, and record data included in those requests is processed by Anthropic as our subprocessor. Anthropic's Commercial Terms of Service state that Anthropic may not train models on customer content from its services. LiveCRM does not use your data to train any model.
Data providers used for Enrichment runs are connected with your own credentials under your own contract. LiveCRM does not resell data or take a margin on it. Every Enrichment run carries a credit cap that limits how many lookups it can spend. LiveCRM holds no data provider account of its own that could serve your requests.
Application security #
Every API route requires authentication except a fixed, published list of routes that must be public by design: sign-in, signed webhook receivers, OAuth discovery and registration, and a health check. An automated test fails the build if a route is added outside that list without an authentication requirement. Requests are validated against strict schemas, and database queries are parameterized. The LiveCRM application loads no third-party analytics, advertising, or chat scripts, and we run no third-party error-tracking or monitoring service that receives your data.
Sign-up refuses personal and disposable email domains, verifies that the person controls the email address, allows one trial per company domain, and is rate limited.
Python dependencies are scanned for known vulnerabilities on every build, and a finding blocks release. Frontend dependencies are scanned and reported.
Subprocessors #
The companies that process customer data on our behalf, and what each one receives, are listed at livecrm.ai/subprocessors. We update that page before adding a new subprocessor.
Salesforce, HubSpot, and data providers you connect are your own third-party services, used under your agreements with them. Slack is listed as a subprocessor because LiveCRM uses it to deliver alerts, including operational alerts about your connection.
Compliance status #
LiveCRM does not currently hold a SOC 2 report or ISO 27001 certification. We have completed an internal SOC 2 readiness review and an architecture security review, and we will share a summary with prospective customers under a confidentiality agreement.
Data retention and deletion #
Your data stays in your LiveCRM account until your administrator asks us to delete it, including after a trial or subscription ends. We delete it within 30 days of a written request to jaime@livecrm.ai, and backup copies expire seven days after that. Changes LiveCRM made in your CRM remain in your CRM.
Reporting a vulnerability #
Email jaime@livecrm.ai. We acknowledge reports within five business days and will not pursue legal action against good-faith research that avoids privacy violations, data destruction, and service disruption, and that gives us reasonable time to respond before disclosure.
Questions #
For a security questionnaire or a copy of our architecture review, email jaime@livecrm.ai.