Keply is a customer-success tool. It reads the accounts, email, support and usage data you connect, scores which customers are at risk and which look ready to grow, and drafts the outreach for a person to approve before anything sends.
If a colleague forwarded this to you, it answers the questions a security reviewer asks: what we read, what we keep, where it goes, and how to switch it off. No NDA, no form, no call.
The short version
- Connects only to the sources you choose, one at a time. Reads only, apart from the mail you approve and three write paths you switch on yourself: Slack replies, HubSpot write-back and Salesforce write-back. All three are off until you turn them on.
- Reads the text of your messages, and sends it to Anthropic to score sentiment and risk, under terms that prohibit training on your data.
- Uploaded files are read. Files you upload or attach directly to Keply can be sent to Anthropic. See the details below.
- Keeps the result rather than the message: a short summary, a sentiment score and metadata. Uploaded text and drafts are processed as described below.
- Revoke from Settings, or from your own Google, Microsoft or Slack admin console. Takes effect immediately.
- Export your data yourself at any time. Ask us to delete it and we complete within 30 days.
- SOC 2: our controls are aligned to the Trust Services Criteria and self-assessed. We do not hold a SOC 2 report.
1. What Keply reads
Keply reads the sources you connect, and you connect them one at a time. These are the permissions verbatim, as they appear on the provider's own consent screen. There is one source Keply reads that you do not connect, the public web. Four paths carry something of yours onto it, and all four are described immediately below the table rather than buried.
Gmail / Google
gmail.readonly, gmail.compose, openid, email, profile
Read mail and create drafts. Google's compose scope also permits sending, which is how Keply sends the mail you approve. It cannot delete mail or change settings.
Microsoft 365 / Outlook
Mail.Read, Mail.Send, User.Read, offline_access
Read mail and send mail. Mail.Send is full send, not draft-only. It cannot delete mail or read files.
Slack (default)
channels:history, channels:read, groups:history, groups:read, mpim:history, mpim:read, im:history, im:read, users:read, users:read.email
Keply connects with a user token, so it reads the conversations the connecting person can already see: their channels, group DMs and 1:1 DMs. It does not read the workspace. By default Keply has no write scope, so it cannot post to Slack.
Slack (only if you turn on replies)
chat:write, reminders:write
Keply can only post to Slack if you grant a write scope, by enabling replies and reminders through a separate re-authorization. It never happens on its own.
CRM, billing, support, usage
Per-provider API key or OAuth
Read access to the objects Keply scores: accounts, contacts, subscriptions, tickets, usage. Read-only by default: the two write paths are HubSpot write-back and Salesforce write-back, both below, and both are off until you turn them on.
HubSpot (only if you turn on write-back)
crm.objects.companies.write, crm.schemas.companies.write
Keply can write to HubSpot only after a separate, explicit opt-in in Keply (off by default), and only once you add these write scopes to your HubSpot private app yourself. It then writes four Keply-created company properties (keply_health_score, keply_risk_flag, keply_next_action, keply_renewal_date) and nothing else, and it never overwrites a value a person set by hand. A second, separate sub-toggle can also create a HubSpot task for the company owner when Keply drafts a save; the task names the account and the risk, links back to Keply where the draft is waiting, and nothing is sent without a person's approval.
Salesforce (only if you turn on write-back)
api, refresh_token
Keply connects to Salesforce read-only; writing is a separate, explicit opt-in in Keply (off by default) that you configure by naming which of your own fields each value goes into. It then writes at most five Keply verdict values onto the Account record (health score, tier, timing, next window and a short rationale) and nothing else. It can only write into CUSTOM fields whose API name ends in __c: a name that does not is refused before the request is built, so writing over a standard Salesforce field such as Name or AnnualRevenue is structurally impossible rather than merely disallowed. Keply may also propose which of your fields fits which value; a proposal has to be confirmed by a person, and a field you typed in yourself always wins over one Keply proposed.
| Source | Permissions requested | What that actually allows |
|---|---|---|
| Gmail / Google | gmail.readonly, gmail.compose, openid, email, profile | Read mail and create drafts. Google's compose scope also permits sending, which is how Keply sends the mail you approve. It cannot delete mail or change settings. |
| Microsoft 365 / Outlook | Mail.Read, Mail.Send, User.Read, offline_access | Read mail and send mail. Mail.Send is full send, not draft-only. It cannot delete mail or read files. |
| Slack (default) | channels:history, channels:read, groups:history, groups:read, mpim:history, mpim:read, im:history, im:read, users:read, users:read.email | Keply connects with a user token, so it reads the conversations the connecting person can already see: their channels, group DMs and 1:1 DMs. It does not read the workspace. By default Keply has no write scope, so it cannot post to Slack. |
| Slack (only if you turn on replies) | chat:write, reminders:write | Keply can only post to Slack if you grant a write scope, by enabling replies and reminders through a separate re-authorization. It never happens on its own. |
| CRM, billing, support, usage | Per-provider API key or OAuth | Read access to the objects Keply scores: accounts, contacts, subscriptions, tickets, usage. Read-only by default: the two write paths are HubSpot write-back and Salesforce write-back, both below, and both are off until you turn them on. |
| HubSpot (only if you turn on write-back) | crm.objects.companies.write, crm.schemas.companies.write | Keply can write to HubSpot only after a separate, explicit opt-in in Keply (off by default), and only once you add these write scopes to your HubSpot private app yourself. It then writes four Keply-created company properties (keply_health_score, keply_risk_flag, keply_next_action, keply_renewal_date) and nothing else, and it never overwrites a value a person set by hand. A second, separate sub-toggle can also create a HubSpot task for the company owner when Keply drafts a save; the task names the account and the risk, links back to Keply where the draft is waiting, and nothing is sent without a person's approval. |
| Salesforce (only if you turn on write-back) | api, refresh_token | Keply connects to Salesforce read-only; writing is a separate, explicit opt-in in Keply (off by default) that you configure by naming which of your own fields each value goes into. It then writes at most five Keply verdict values onto the Account record (health score, tier, timing, next window and a short rationale) and nothing else. It can only write into CUSTOM fields whose API name ends in __c: a name that does not is refused before the request is built, so writing over a standard Salesforce field such as Name or AnnualRevenue is structurally impossible rather than merely disallowed. Keply may also propose which of your fields fits which value; a proposal has to be confirmed by a person, and a field you typed in yourself always wins over one Keply proposed. |
Two cells above are worth reading twice. Google's gmail.compose permits sending, not only drafting, which is how Keply sends the mail you approve. Slack's read set covers direct messages, though only those of the person who connects it, and Keply has no write scope there unless you add it.
The one source you do not connect: the public web
Keply also searches the public web. Most of that happens on a schedule as part of the daily analysis rather than because anyone clicked search, and it covers three things:
- Business news about your accounts: funding rounds, layoffs, acquisitions, executive changes. Those move renewal risk before anything shows up in your own data.
- What kind of business each account is: its sub-vertical, where it operates, and whether it runs all year or closes for a season. A hotel that shuts every winter is not an account going quiet, and we would rather know that than guess.
- What your own company sells, and to whom: read once and cached, so the account research above asks questions that fit your market instead of generic ones.
For the first two, what leaves Keply is the account's company name and website domain, and nothing else: no contact names, no email content, no usage or revenue figures. For the third the subject is your company, so what leaves is your company name, your domain, and the description you gave us at signup. That text becomes a search query. It goes to Anthropic, whose model runs the search server-side, so Anthropic and its search provider see it. What comes back is stored with a source link, so every finding can be traced to where it came from. Anything we could not trace to a real source is discarded rather than kept. There is also a weekly scheduled lookup that asks what is changing in your industry rather than at any one account: regulation, vendor policy, seasonal demand, competitor moves. Nothing of yours leaves on it. What goes out is the name of your sector and nothing more, so it is listed here for completeness rather than as a disclosure.
The fourth path: the search someone on your team asks for
The three above are things Keply decides to look up. There is a fourth, and it is different in kind because a person triggers it: anyone on your team can ask Keply to search the web from the ask box, in their own words, and can paste in up to three web addresses for Keply to read as part of that answer.
So what leaves Keply here is more than a company name and a domain. It is the question they typed and the addresses they gave, sent to Anthropic, whose model runs the search server-side, plus whatever Keply reads on those pages. If someone types an account name, a number or a customer detail into that box, that is what goes out, so it is worth knowing this box exists and what it does. Keply reads a pasted address over https only and refuses one that resolves to a private or internal host, and it tells the person which addresses it refused rather than quietly returning less.
Three limits hold on this path. It is capped at three searches a day for the whole workspace, so it cannot become a background process by volume. Nothing it finds is written into an account's record or into a health score: it answers the question and stops, because an ad-hoc search is not reviewed evidence. And every claim in the answer carries the link it was read on; an answer Keply cannot source is discarded rather than shown.
This is on by default for every account, and you can switch it off for your whole workspace in Settings → Permissions. With it off, no public-web search runs for you at all: none of the four paths above, not the scheduled ones on the daily pass, not the weekly industry lookup, not the “Scan the web” button, and not the user-triggered search, which is refused before anything leaves, including before a pasted address is read. There is still no per-account switch; the control is workspace-wide.
One honest limit remains. The companies searched are your customers, so if the mere fact that you are evaluating an account is sensitive, that fact is what leaves. Everything here is public information about companies, not personal data about individuals.
Partial data is enough to start
You can start with partial data. Keply uses the financial, usage and communication evidence available for each account, and confidence reflects that coverage. An account list alone does not supply those signals; a spreadsheet needs relevant financial or activity data to contribute scoring evidence.
Churn calibration is separate: deriving a new silence threshold requires at least ten usable churn events and ten measurable silence gaps. A smaller import can still support individual churn analysis without producing a new calibrated threshold.
2. What Keply reads, and what it keeps
We read the text of the messages you connect. That is how sentiment, tone and risk are scored, and it is sent to Anthropic for inference under commercial terms that prohibit training on your data. We would rather say that plainly than imply we score your relationships without reading them, which would not be true.
Keply reads message text from connected mail and Slack. Where the source provides attachment file names, Keply can retain and flag them. Text parts included in a mail message can be read as message text, even when they have a file name. Files you upload or attach directly to Keply are processed separately, as described below.
What Keply keeps is the result rather than the message. For each signal from mail or Slack it retains:
- the subject line, sender and recipients;
- attachment file names, where available from the connected source;
- a short summary Keply writes, capped at 240 characters;
- a sentiment score, the source, the direction, and a timestamp.
Pasted call transcripts work the same way: Keply keeps the summary and the length, not the transcript.
Other information you give Keply is processed as follows:
- Outreach Keply drafts or sends is kept in full, subject and body. It has to be: it is the record of what went to your customer, and what you approved.
- Survey free-text comments are stored as the respondent wrote them.
- Spreadsheets you upload are stored with the fields you map, including free-text notes and ticket text. To suggest account-column mappings, Keply can send column names and up to four example values per column to Anthropic.
- Knowledge documents you upload have their text stored in chunks, subject to size limits. Text is extracted from uploaded PDFs in your browser. Keply can send the beginning of a document to Anthropic to propose settings and workflows, and matching passages when scoring accounts or drafting messages.
- Files you attach to an Ask Keply question are included as text with your question and sent to Anthropic to answer it.
- A writing-style profile distilled from mail you have sent, so drafts sound like your team rather than like a robot.
- Account and contact records: company, name, email address, job title, role.
- Questions Keply could not answer can be recorded with the first 2,000 characters of your submitted message, which may include the beginning of an attached file. Keply records what was missing, so we can see what the product lacks and build it. These stay inside your own workspace, no browser role can read them, and they are deleted after 12 months.
3. Where it goes
These are the providers Keply sends data to. Each is engaged under data-protection terms, or is being brought under them as we complete our vendor review, and processes personal data only to provide its function. This list forms part of our Data Processing Addendum; we give advance notice by email or in-app before adding or replacing a provider.
Supabase
Configured region
Database, authentication, storage, edge functions
Data: All application & customer data
Cloudflare
Global edge
Frontend hosting, CDN, TLS, WAF
Data: App delivery; request metadata
Anthropic
United States
AI model (Claude) for scoring & drafting, no training on your data
Data: Account context, message text, and content from files you upload or attach, including document excerpts and spreadsheet column samples, sent as prompts
Polar
United States / Global
Subscription billing & payments (merchant of record)
Data: Billing contact, subscription & payment metadata
Google
Global
Gmail: reads mail as a signal, and sends the mail you approve (when connected)
Data: Email metadata & content; your name and address for sign-in
Microsoft
Global
Outlook/365: reads mail as a signal, and sends the mail you approve (when connected)
Data: Email metadata & content
Slack
United States / Global
Reads the conversations you connect as a signal, and posts the messages you approve (when connected)
Data: Message text & metadata from the channels and DMs the connecting user can see; the text of anything Keply posts back
Resend
United States
Sends Keply's own email to your team, daily briefings and teammate invitations. Never used for outreach to your customers
Data: Your teammates' email addresses, and the briefing text, which names accounts and their risk
PostHog
United States
Product analytics, heatmaps and session replay (opt-in where required, notice-based elsewhere)
Data: Usage events, pageviews, clicks and session replays. On our public marketing pages and demo sandbox the replay is unmasked (the sandbox runs on a made-up book of accounts with no sign-in, so nothing there is yours), and we record the questions visitors type into the sandbox and into the Contact us bot, and the answers they got (never the email address a visitor leaves for a reply). On the signed-in product and shared customer journey pages every word on screen and everything you type is masked in your browser before the replay leaves it, so the replay shows layout and clicks, never your customer data. The one exception: when you ask Keply a question inside your workspace, we record that question and Keply's answer (the first few hundred characters of each) so we can see what people ask and whether Keply answered well. Those can name your accounts; they are used only to improve Keply and never shared with advertising tools
Microsoft Clarity
United States
Session analytics & replay on our public marketing pages only (opt-in where required, notice-based elsewhere)
Data: Interactions with our marketing pages. It is not enabled on the signed-in product or shared customer journey pages
Google Analytics
United States
Web analytics (opt-in where required, notice-based elsewhere)
Data: Pageviews, traffic sources
Meta
United States / Global
Advertising measurement on our public marketing pages (Meta pixel), so we can tell which ads bring people to keply.ai. Loads only after you accept analytics, and never on the signed-in product
Data: Marketing page views and IP address. Nothing from your workspace
LinkedIn
United States / Global
Advertising measurement on our public marketing pages (Insight Tag), so we can tell which ads bring people to keply.ai. Loads only after you accept analytics, and never on the signed-in product
Data: Marketing page views and IP address. Nothing from your workspace
| Provider | Purpose | Data | Region |
|---|---|---|---|
| Supabase | Database, authentication, storage, edge functions | All application & customer data | Configured region |
| Cloudflare | Frontend hosting, CDN, TLS, WAF | App delivery; request metadata | Global edge |
| Anthropic | AI model (Claude) for scoring & drafting, no training on your data | Account context, message text, and content from files you upload or attach, including document excerpts and spreadsheet column samples, sent as prompts | United States |
| Polar | Subscription billing & payments (merchant of record) | Billing contact, subscription & payment metadata | United States / Global |
| Gmail: reads mail as a signal, and sends the mail you approve (when connected) | Email metadata & content; your name and address for sign-in | Global | |
| Microsoft | Outlook/365: reads mail as a signal, and sends the mail you approve (when connected) | Email metadata & content | Global |
| Slack | Reads the conversations you connect as a signal, and posts the messages you approve (when connected) | Message text & metadata from the channels and DMs the connecting user can see; the text of anything Keply posts back | United States / Global |
| Resend | Sends Keply's own email to your team, daily briefings and teammate invitations. Never used for outreach to your customers | Your teammates' email addresses, and the briefing text, which names accounts and their risk | United States |
| PostHog | Product analytics, heatmaps and session replay (opt-in where required, notice-based elsewhere) | Usage events, pageviews, clicks and session replays. On our public marketing pages and demo sandbox the replay is unmasked (the sandbox runs on a made-up book of accounts with no sign-in, so nothing there is yours), and we record the questions visitors type into the sandbox and into the Contact us bot, and the answers they got (never the email address a visitor leaves for a reply). On the signed-in product and shared customer journey pages every word on screen and everything you type is masked in your browser before the replay leaves it, so the replay shows layout and clicks, never your customer data. The one exception: when you ask Keply a question inside your workspace, we record that question and Keply's answer (the first few hundred characters of each) so we can see what people ask and whether Keply answered well. Those can name your accounts; they are used only to improve Keply and never shared with advertising tools | United States |
| Microsoft Clarity | Session analytics & replay on our public marketing pages only (opt-in where required, notice-based elsewhere) | Interactions with our marketing pages. It is not enabled on the signed-in product or shared customer journey pages | United States |
| Google Analytics | Web analytics (opt-in where required, notice-based elsewhere) | Pageviews, traffic sources | United States |
| Meta | Advertising measurement on our public marketing pages (Meta pixel), so we can tell which ads bring people to keply.ai. Loads only after you accept analytics, and never on the signed-in product | Marketing page views and IP address. Nothing from your workspace | United States / Global |
| Advertising measurement on our public marketing pages (Insight Tag), so we can tell which ads bring people to keply.ai. Loads only after you accept analytics, and never on the signed-in product | Marketing page views and IP address. Nothing from your workspace | United States / Global |
The tools you connect as sources only (your CRM, billing, support, usage and survey systems, including Stripe, Pendo and Delighted) are not on this list, because Keply reads from them and sends nothing back. They stay governed by whatever agreement you already hold with each provider, and you can disconnect any of them at any time.
Google, Microsoft and Slack are on the list, and the reason is worth stating: Keply both reads from them and sends through them, so data flows outward. That is the test for this table: not whether you or we set the account up, but whether your data leaves Keply toward it.
4. How to revoke access
A workspace manager in your organization can disconnect any connection from Settings → Connections at any time, without contacting us. That erases the stored credential and stops all syncing immediately.
For Slack and Gmail we also call the provider's own revoke endpoint, so access ends at the source and not just in our copy of it. For Microsoft and for key-based connectors we erase our stored credential, which ends all Keply access. You can also revoke Keply from your own Google, Microsoft or Slack admin console, and that takes effect regardless of anything we do.
5. How to export or delete your data
You can export your core data yourself, at any time, from Settings → Export: accounts, contacts, signals, health scores and risks, as an Excel workbook or as CSV per entity. It needs no request and no notice period, so leaving Keply does not require our cooperation.
To have your data deleted, email ori@keply.ai. We acknowledge within 5 business days and complete within 30 days, then confirm in writing. That covers accounts, contacts, signals, scores, drafts and stored credentials. Backups age out on their normal cycle. Deletion runs by hand today, by a named person rather than a background job, so the confirmation comes from someone who can answer for it.
If you stop using Keply without asking for deletion, we delete or return your data within 30 to 90 days of termination, as set out in the DPA.
6. How the data is protected
Data is encrypted in transit with TLS and at rest with AES-256. Integration access tokens are encrypted with an application-managed key and are never stored in plain text; API keys are stored only as hashes. Keply is multi-tenant, and organizations are isolated at the database layer by deny-by-default row-level security, so one customer's data is not reachable from another's session.
Keply is governed by an autonomy dial that starts at draft-for-approval, so actions that contact your customers require a human to approve them until you decide otherwise, and every action Keply takes is written to an audit log.
7. How changes reach production
Every change is version-controlled. Deployable changes are validated on staging before production. The production branch requires a pull request and protected checks, including for administrators. Checks are selected by change scope: applicable checks must pass; unrelated jobs may be skipped. Database-affecting changes include a full migration replay against a clean database. Detail is on the Security page.
8. SOC 2 position
Keply does not hold a SOC 2 report. Our controls are self-assessed. Keply has not completed an independent third-party SOC 2 examination, and a SOC 2 report can be issued only by a licensed CPA firm following one. We will update this page if and when one is issued.
What we do have is an information-security program designed and operated to align with the AICPA Trust Services Criteria for Security, Availability and Confidentiality, documented in a control matrix and a written policy set covering information security, incident response including the GDPR 72-hour breach clock, data retention and deletion, access control, vendor risk, and data-subject requests. We share that documentation and complete security questionnaires on request, without an NDA.
For our privacy commitments and the rights available to individuals, see the Privacy Policy. For the contractual terms covering our processing on your behalf, see the Data Processing Addendum.
Forwarding this to your security reviewer
Paste this:
Subject: Security review, Keply
Hi, we want to use Keply for customer success. It connects to our email, Slack and CRM, and drafts outreach that a person approves before it sends. Their trust page covers what it reads, what it stores, where the data goes, and how to revoke and delete it: keply.ai/trust
Short version: they read message text to score it, under terms that prohibit training on our data, and keep a summary rather than the message. Text from files we upload or attach can also go to Anthropic, as described on the page. We can disconnect from settings at any time. Their SOC 2 controls are self-assessed and they do not hold a report yet. Anything blocking?
Questions, or a security issue
Security questions and vulnerability reports both go to ori@keply.ai. If you believe you have found a vulnerability, we appreciate responsible disclosure and will acknowledge your report.