Trust & security
How we protect your data.
Plain English, no hype. Last updated .
Security at a glance
The one-pager for a security review, every claim below is expanded in this page and true today, not aspirational.
Server-side, opaque random id in an HttpOnly, SameSite=Lax, Secure cookie. Revoke = one row deleted; no token in the browser.
HTTPS everywhere. OAuth tokens encrypted at rest with AES-256-GCM. Database encrypted at rest by the provider.
Every row is keyed to your account or team and every query is scoped to the authenticated session, one tenant can't read another's runs, keys, or brain.
Processed to do the work, encrypted, isolated to your account, never sold, never used to train models. You connect each tool and can revoke it anytime.
Stored only as a SHA-256 hash, scoped, rate-limited per key; every control-plane call is logged.
SOC 2 is on the roadmap, not yet certified. We'll tell you honestly what we can provide today.
The short version
Your products run on our servers on a schedule. To do the work, they process the data you connect: the CRM records, emails, and calendar you link, plus the context you provide. That data is encrypted, isolated to your account, used only to produce your drafts and reports, never sold, and never used to train models. Everything is draft-first: nothing reaches a person without your approval. Below is exactly how we secure it, who we share data with, and the controls you have.
How your data is handled
Because the work runs on our servers, we process the data a scheduled run needs to produce your drafts and rollups. We are deliberate about what we keep and how it is protected.
- What we process: the tools you connect (CRM records, email, calendar) and the company context you provide, read by a run to research an account and draft the work.
- What we store: the drafts and reports we generate for you (these contain content, and live in your account until you dismiss them), plus run telemetry that is metadata only (counts, skill names, outcomes, timing, error categories).
- What we never do: we do not sell your data, share it with advertisers, or use it to train models. You connect each tool with your own permission and can revoke it at any time.
- Isolation: every record is keyed to your account or team, and every query is scoped to the authenticated session, so one tenant cannot read another's data.
- Credential custody, your choice: with managed connectors we custody your OAuth token encrypted and revocable; with the self-hosted lane (your own n8n) we never hold your credentials at all, the connectors run on your infrastructure and we only receive the drafts you send back. The self-hosted lane is the enterprise choice when you cannot let a vendor hold a token.
You can export or delete your data at any time (see below), and revoking a connected tool stops any further processing of it.
Security practices
- Encryption in transit and at rest. All traffic is HTTPS. OAuth tokens are encrypted at rest with AES-256-GCM. The database is encrypted at rest by our provider.
- Sessions. Server-side sessions with an opaque, random id in an HttpOnly, SameSite=Lax, Secure cookie. Revoking a session deletes one row, no token lives in the browser.
- API keys. The Sales as Code keys your integrations authenticate with are stored only as a SHA-256 hash, are scoped, and are rate-limited per key. Every control-plane call is logged.
- Tenant isolation. Every record (runs, entitlements, keys, brain state) is keyed to your account or team, and every control-plane query is scoped to the authenticated session before it reads. One tenant cannot see another tenant's data; team-scoped views are additionally limited to the members of that team.
- Single sign-on (SAML). Teams can route sign-in through their own identity provider with just-in-time provisioning and group-to-role mapping. See /login/sso.
- Audit log. Every admin-relevant action is written to an append-only audit log. You can retrieve your own entries (the actions you took, and the actions taken on your account) as JSON from
/api/me/audit. Entries are never edited in place; they are retained for 18 months and then pruned. A team-scoped view and CSV export for team admins is on the roadmap and is not available today. - You control publishing. Your products are tool-agnostic and draft-first: by default they draft and stage for your review. They publish automatically only on channels you connect and explicitly enable for automation, and only after a brand-safety check; anything that reaches a person, or any channel where automation is disallowed, is always held for your approval. You set the mode per channel and can revert to draft-only at any time.
- You choose where output goes. Each product's output lands where you pick: an in-app draft queue, your Google Drive, or your own mailbox as a draft. Nothing is sent for you.
Compliance posture & SOC 2 roadmap
We want to be straight with you about where we are. Sales as Code is an actively developed product. We follow the security practices above as a matter of course, but we do not yet hold a SOC 2 or ISO 27001 certification: treat SOC 2 as on the roadmap, not as something we've achieved. We won't imply a certification we don't have. If your procurement process requires a specific certification, a data processing agreement (DPA), a security questionnaire, or a penetration-test summary, contact us and we'll tell you honestly what we can provide today and what's planned.
Subprocessors
We use the following vendors to run the service. We don't sell your data or share it with advertisers. Several are conditional. They only process your data when you connect or enable the feature that uses them. This list is kept in sync with the privacy policy from one shared registry.
| Subprocessor | What they process | Region |
|---|---|---|
| Anthropic | AI inference (Claude). Scheduled runs call the Claude API to research and draft your work; prompts include the subset of your data needed and are not retained for training. | United States |
| OpenRouter | AI inference routing, when a run is configured to use it instead of the Claude API directly. Sees the same prompt content: the subset of your data the run needs. | United States |
| Amazon Web Services (Bedrock) | AI inference, when a run is routed through Bedrock rather than the Claude API. Same prompt content as above. | United States |
| Gong | Call recordings and transcripts, read from your Gong workspace when you connect it, so a run can prepare a meeting or coach a call. | United States |
| Neon | Primary Postgres database, accounts, entitlements, telemetry, brain sync. | United States |
| Vercel | Application hosting and edge delivery. | Global edge, U.S. compute |
| Stripe | Payments, subscriptions, invoices. We never see full card numbers. | United States |
| Resend | Transactional and digest email delivery. | United States |
| Google sign-in (OpenID) and, if a deployment enables the first-party connectors, Gmail / Calendar / Drive data within the scopes you grant. | United States | |
| Recall.ai | Meeting-bot recording and transcription when you enable call recording, audio, video, and transcripts of the meetings you point it at. | United States |
| Dropbox Sign | Electronic signature for enterprise contracts, signer name, email, and the executed contract document. | United States |
| Apollo | Contact and company enrichment when you connect the Apollo integration. The identifiers you look up and the firmographic results. | United States |
| ZoomInfo | B2B contact and company data when you connect the ZoomInfo integration (partner-gated). The identifiers you look up and the results. | United States |
| PostHog | Product analytics on marketing pages, page views and click events, only after you consent via the cookie banner. | United States |
| Voyage AI | Text embeddings for in-product semantic matching. The text snippets being matched are sent for vectorization. | United States |
| ElevenLabs | Text-to-speech for the audio weekly recap. The recap text you generate audio for. | United States |
| Slack | Slack notifications and the Slack assistant when you connect a workspace. The messages and channels you route through it. | United States |
| Snowflake | Warehouse reads when you connect the Snowflake integration, query results from the tables you point it at. | Customer-selected cloud region |
| Cloudflare Turnstile | Bot protection on public forms. A browser challenge token and IP metadata, no tracking cookies. | Global (U.S. company) |
Where your data lives
Primary database: Neon (Postgres), U.S. region. Application servers: Vercel, distributed globally with U.S. compute. AI inference: Anthropic, U.S. region. If you're outside the U.S., your data is processed in the U.S.
Your data and retention
- Access. Everything the control plane holds about you is visible in the product.
- Export. Download all of your data as JSON at any time from Settings → Data, or export your synced brain, see how export works.
- Delete. Request account deletion from Settings → Data. We hard-delete within 7 days. Stripe retains billing records per its own policy for tax and accounting.
- Disconnect. Revoke any connected tool (CRM, inbox, calendar) at any time to stop processing it. Any API key you issued for advanced access can be revoked from Settings → Advanced.
Reporting a vulnerability
If you find a security issue, email admin@salesascode.com with the details and steps to reproduce. We'll acknowledge and work the fix. Please don't publicly disclose until we've had a chance to remediate. (Our contact page also lists security@salesascode.com for responsible-disclosure reports. Both addresses route to the same inbox, so use whichever you find first.)
Questions
For DPAs, security questionnaires, or anything not covered here, reach us at our contact page or admin@salesascode.com. See also our Privacy Policy and Terms.
Questions people ask
Do you use my data to train models?
No. We do not sell your data, share it with advertisers, or use it to train models. This is enforced, not just promised: the Anthropic API is contractually zero-retention for training, and where a request is routed through OpenRouter we send its no-data-collection policy, which makes any provider that would store or train on the prompt ineligible to serve it.
Where does my data live?
Primary database: Neon (Postgres) in their default U.S. region. Application servers: Vercel, distributed globally. AI inference and embeddings run in U.S. regions. If you are outside the U.S., your data is processed in the U.S. The subprocessor table on this page names where each vendor processes it.
Can another customer see my data?
No. Every record is keyed to your account or team, and every query is scoped to the authenticated session, so one tenant cannot read another tenant data.
Who are your subprocessors?
We publish the full list on this page: Anthropic, OpenRouter, Amazon Web Services (Bedrock), Gong, Neon, Vercel, Stripe, Resend, Google, Recall.ai, Dropbox Sign, Apollo, ZoomInfo, PostHog, Voyage AI, ElevenLabs, Slack, Snowflake, Cloudflare Turnstile. Each entry names what it processes.
Do you hold my credentials?
With managed connectors we custody your OAuth token encrypted and revocable. With the self-hosted lane we never hold your credentials at all: the connectors run on your infrastructure.
Are you SOC 2 certified?
Not yet. This page states the compliance posture as it is today rather than as a roadmap claim.
How do I report a vulnerability?
Email the address in the "Reporting a vulnerability" section of this page. We acknowledge reports and will not pursue researchers acting in good faith.