Security & Trust

How BaseCommand Handles Your CRM Data

The honest version. What we connect to, what we send to LLMs, what we keep, and what we don't have yet.

OAuth-only access

Connect via your CRM’s standard OAuth flow. No credentials shared. Revoke any time from your CRM portal.

Deleted the moment you disconnect (HubSpot)

Disconnecting your HubSpot portal purges the synced working copy and the analytics derived from it right then, not on a 30-day timer. (Workspaces shared with a still-connected teammate are preserved.) Salesforce disconnect currently revokes access and stops the sync; the synced-data purge for Salesforce is still being wired up.

Your data, encrypted and scoped

The Suite syncs a working copy of your CRM records into Supabase to power the dashboard and background agents. It is encrypted at rest and row-level scoped to you.

No write without your approval

The install requests write scopes so writeback can work, but nothing is written to your CRM until you approve it. Most agents only read; every record-level write is explicit and click-gated in the product.

Hardened by default

HTTPS-only (HSTS), clickjacking and MIME-sniffing protection are enforced across the Suite. Rate limiting is applied at the application layer to specific write, send, and LLM routes, not as a blanket edge-wide guarantee.

Automatic team provisioning

An account owner can claim an email domain, and once we confirm the account controls it, teammates on that domain join the workspace automatically with no per-seat invites to manage. A claimed domain grants nothing until that confirmation. Owner, admin, and viewer roles, plus ownership transfer, are built in.

Audit trail

Team, billing, access, and agent actions are recorded to an audit log you can review, so you can see who did what, and when.

No third-party data brokers

No enrichment vendors, no marketing data appends, no resale. Your CRM data goes only to the providers you connect. The full table below also names the systems that support the service itself, covering billing, beta feedback, and our own internal alerts.

US-only processing

Data is hosted and processed in the US on Vercel and Supabase. EU customers should evaluate fit accordingly.

Honest about compliance

We don’t have SOC 2 yet. We tell you upfront and offer a sandbox-evaluation path for security reviews that need it.

How your data moves through BaseCommand

One path, end to end, for the connectors you use: your CRM data stays within the providers in the table below, including Google (Gmail) and Fathom when you connect them. That same table lists every other system that receives BaseCommand data, including billing, beta feedback, and our own internal alerts. No data brokers.

1

Connect HubSpot

You authorize the connection via OAuth. The Suite stores an encrypted connection token in Supabase. We never see your HubSpot password.

2

Sync into the Suite (US)

Background sync pulls a working copy of the records the agents need into Supabase, encrypted at rest and row-level scoped to you.

3

Anthropic (Claude)

The Suite sends only the relevant records directly to Anthropic for the analysis. Anthropic does not train on API data.

4

Action Inbox

The output lands in your Action Inbox in the Suite for human review. Revoking the connection in HubSpot invalidates access.

What we connect to

The exact OAuth scopes we request at install, and why. Record-level writes are click-gated in the product: the grant enables writeback, your approval triggers it.

IntegrationMethodScopesPurpose
HubSpot (read)OAuth 2.0crm.objects.deals.read, crm.objects.companies.read, crm.objects.contacts.read, crm.schemas.deals.read, crm.schemas.companies.read, crm.lists.readPull deal, company, and contact data (and their schemas/lists) for analysis.
HubSpot (write)OAuth 2.0crm.objects.deals.write, crm.objects.companies.write, crm.objects.contacts.write, crm.schemas.deals.write, crm.schemas.companies.write, crm.lists.write, automationRequested at install (not granted per-agent). Schema/automation scopes provision the bc_* property groups and Premium renewal workflows once at install; record-level writes (computed values on deals/companies, user-approved tasks, notes, logged emails, the BaseCommand list) are click-gated in the product. Nothing writes without your approval.
Salesforce (read, plus approved writes)OAuth 2.0 with PKCEapi, refresh_token, offline_access, idRead-only sync of Accounts, Opportunities, Contacts, and Tasks/Events. Salesforce has no read-only REST scope, so the write boundary is enforced at the application layer: the only writes the product can issue are creating a task, logging a note, and updating a specific field, and each one is refused unless a person approved that action in the Inbox. Autonomous execution is off, so a drafted action sits in the Inbox until you release it.
Gmail (optional)OAuth 2.0gmail.send, gmail.compose, gmail.readonly, userinfo.emailOnly if you connect Gmail: draft and send renewal outreach on your behalf, and read the latest inbound reply on threads the agent is tracking (up to the first ~6,000 characters) to detect and classify responses. The grant covers general mailbox read access; BaseCommand only reads the specific threads tied to agent-initiated outreach.
Fathom (optional)OAuth 2.0public_apiOnly if you connect Fathom: pull your meeting recordings, summaries, and transcripts so briefs and QBRs can ground on what was actually discussed on your calls.
Email deliverySent from the BaseCommand Suite (via Resend) to the user’s own email addressn/aDeliver agent output and notices to the user
StripeStripe Checkout and Billing Portal (hosted by Stripe)n/aProcesses your subscription payment. We never see or store your card number; Stripe does. Your billing email and Stripe customer ID are stored so we can match your account to your subscription.
GitHub (beta feedback)Server-side API call, not a customer-facing connectorn/aWhen an admin routes a beta feedback report into our engineering tracker to get it fixed, the issue carries what you wrote and its classification. It does not carry your email address or the page URL you were on. Those stay in the Suite database, referenced by an internal id an admin can look up.
SlackOne incoming webhook, one internal channeln/aPosts operational alerts to BaseCommand’s own team when a background job fails or a sync breaks, so we can fix it fast. These messages carry system metadata only (job names, error text, an account identifier), never your CRM records or contact information.
Intercom (optional)API key you paste in SettingsRead-only: companies, conversationsOnly if you connect it: pulls your support conversation volume and CSAT to compute a support-health signal. The connector is available today; its scheduled refresh is not turned on yet, so a connected account does not sync on an ongoing basis.
Amplitude (optional)API key and secret you paste in SettingsRead-only: eventsOnly if you connect it: pulls product usage event counts to compute a usage-health signal. Same status as Intercom: connectable today, scheduled refresh not turned on yet.

What data is sent to LLM providers

The CRM records relevant to the specific agent you ran. Nothing else.

For an agent like Customer Health Monitor, we send: deal name, amount, stage, close date, owner, associated contact names, engagement summaries, and the custom property values relevant to scoring.

We do not send: passwords, API keys, payment methods, or any data outside your connected CRM.

Analysis runs on Anthropic's Claude models, called directly by the BaseCommand Suite. Anthropic operates under an enterprise DPA and does not train on data submitted via API (per its public terms as of 2026-06-12).

Data retention

Your synced CRM data lives in Supabase, encrypted and scoped to you. Here's where each piece of data lives and how long we keep it.

DataWhereRetention
Synced HubSpot records (deals, contacts, companies, engagement metadata)Supabase (encrypted, row-level scoped to you)While your portal is connected; purged the moment you disconnect
Synced Salesforce records (accounts, opportunities, contacts, activities)Supabase (encrypted, row-level scoped to your workspace)While your org is connected; disconnecting revokes access and stops the sync, but the synced-copy purge for Salesforce is not yet wired up — contact us to request deletion
HubSpot and Salesforce OAuth connection tokensSupabase (encrypted at rest)Until you revoke the connection; then invalidated and removed
Agent run logs and output (Action Inbox items)Supabase, in the BaseCommand SuiteUntil you delete them or your account is closed
LLM provider logsAnthropicPer Anthropic’s enterprise policy: typically 30 days for abuse monitoring, then deleted

Authentication model

  • OAuth 2.0 through HubSpot's standard flow. The user authorizes the connection from their own HubSpot portal. No credentials are shared with BaseCommand.
  • Connection tokens are held by BaseCommand, encrypted at rest in Supabase. Revoking the connection in HubSpot immediately invalidates access.
  • No shared HubSpot credentials for you to manage; access is your own OAuth grant. Our service keys (Anthropic, Supabase) are held server-side and rotated by BaseCommand.
  • Token scope can be reviewed and modified by your HubSpot admin at any time.

Evaluate without connecting your production portal

For security reviews that need to see the product before granting OAuth access, two paths.

Sandbox HubSpot portal

Connect a HubSpot sandbox or test portal with non-production data. See the full agent output against synthetic records. Recommended for a structured security review.

Live walkthrough

Mike walks any agent through against BaseCommand's own HubSpot in a 15-minute screen-share. No customer data involved.

Compliance status (as of 2026-06-12)

We are an early-stage product. We'll be transparent about what we have and don't have, and we prioritize compliance work as customers require it. If your security policy requires SOC 2 before connecting production data, the sandbox path above lets you evaluate without that gate.

StandardStatusNotes
SOC 2 Type IINot currently certifiedSandbox evaluation path available for security reviews that require it.
GDPRUS-based processingEU customers should evaluate fit.
HIPAANot in scopeBaseCommand is not designed for PHI.
Data residencyUS-onlyHosting and processing happen on Vercel and Supabase US infrastructure.
Penetration testingNot yet conductedPlanned as the product matures; underlying providers (Vercel, Supabase, Anthropic) maintain their own security programs.

Security questions?

Send a list of specific questions to security@basecommand.ai and we'll respond in writing within two business days. Happy to join a 15-minute call with your security team.

The renewal foundation, free to start

Get started free →