Security & data handling
Last updated October 30, 2026
Draft: the company details in brackets are filled in before Scaled Support is sold. Everything else on this page describes how the service works today.
What Scaled Support can read, what it keeps and for how long, where your data lives, and who else processes it. Written so you can forward it to your IT or security team as is.
The short version
- The bot only stores messages from the Slack channels you connect and the one mailbox you connect. Messages from any other channel are dropped as they arrive.
- Tickets and their messages are deleted automatically 365 days after their last activity. Admins can shorten this to as little as 30 days.
- Attachments are never downloaded or stored. Only the file name and type are kept.
- Data is stored in the EU (Ireland). AI requests go only to providers that keep no copy and never train on your data.
- Your data is never used to train AI models.
Slack permissions and why each is needed
The Slack app uses a bot token only. It asks for no user permissions, cannot read direct messages, and only sees channels it has been added to.
| Permission | Why it's needed |
|---|---|
channels:read | List public channels so you can pick which customer channels to connect. |
channels:history | Receive new messages in public channels the bot is in. Messages in channels you have not connected are dropped, and their text is not kept. |
channels:join | Join a public channel when you connect it, so you don't have to invite the bot. |
groups:read | List private channels the bot was invited to, and spot which ones are shared with a customer (Slack Connect). |
groups:history | Receive new messages in private channels the bot was invited to, on the same terms. |
chat:write | Post replies in the customer's thread, drafts for your team to review, private notices to the assignee, and satisfaction surveys. |
chat:write.customize | Post under your company's own bot name and logo instead of ours. |
im:write | Send the teammate who owns a ticket a direct message, if you switch that on. Never used to message customers. |
reactions:write | Add status emoji (seen, working on it, replied) to the customer's message so they know it was picked up. |
users:read | Show people's names on tickets, sync your team, and tell your staff apart from customers and guests. |
users:read.email | Match Slack people to teammates in your dashboard and to customer contacts by email address. |
conversations.connect:readOptional | Optional, not used yet. Will let the bot notice a Slack Connect invitation as soon as a customer accepts it, so the new channel appears right away. |
team:readOptional | Optional, not used yet. Will keep your Slack workspace's name and icon current in the dashboard after a rename. |
Optional permissions. Two permissions are for features that are not built yet. You can leave them out: in Settings → Connections, choose “Connect without optional permissions”. Nothing works differently today. When those features ship, they won’t work for your workspace until you reinstall the app with the optional permissions.
Gmail permissions and why each is needed
Only if you connect a support mailbox. Signing in to the dashboard with Google asks for your name and email address only.
| Permission | Why it's needed |
|---|---|
gmail.readonly | Read new emails that arrive in the connected mailbox's inbox. Older mail is never imported. |
gmail.send | Send the replies you approve (or that the bot is allowed to send) in the same email thread. |
gmail.modify | Add a label to emails once they are turned into a ticket, so you can see what was handled. It never deletes mail. |
Scaled Support’s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
What we store, and for how long
| Data | Kept for |
|---|---|
| Customer messages, tickets, AI drafts and sent replies, ticket history, satisfaction-survey comments, website-chat transcripts | 365 days after the ticket's last activity (admins can shorten it to 30), then deleted for good by a nightly job. An admin can also delete a ticket at any time. |
| Messages from channels you have not connected, and chatter the bot ignores | Not stored. The text Slack sends is blanked as soon as the bot has checked it. |
| Attachments | Never stored. Only the file name and type are kept, with the message. |
| Your help docs and the search index built from them | Until you remove the source. |
| Background job queue (can hold message text while it is processed) | Finished jobs are cleared after 14 days; failed jobs after 30 days. |
| Audit log of workspace actions (who did what and when, with ticket numbers and titles) | For the life of the workspace, so admins can check what the bot did. A ticket's own history is deleted with the ticket. |
| Slack and Gmail access tokens | Encrypted (AES-256-GCM) before they are stored; erased when you disconnect or uninstall. |
Customer messages are turned into search vectors only for the moment it takes to look up your help docs; those vectors are not stored.
Where your data lives
- Database and files: Supabase in the EU (Ireland, eu-west-1).
- Web app: Vercel, running in Dublin next to the database.
- AI: the models run outside the EU, usually in the United States, with zero data retention. Prompts and replies are processed and not kept by the AI providers.
Sub-processors
The companies that process customer data on our behalf:
| Company | What for | Data | Location |
|---|---|---|---|
| Supabase | Database, file storage, sign-in and the background worker | Everything the service stores | EU (Ireland, AWS eu-west-1) |
| Vercel | Hosts the web app and receives Slack's and Google's notifications | Requests passing through; nothing stored | EU (Dublin) for the app; static pages from its global network |
| OpenRouter | Routes AI requests to the model providers below, only to endpoints with zero data retention | Message text, help-doc passages and the drafted reply, in transit only | United States |
| Amazon Web Services (Bedrock) and Google Cloud (Vertex AI) | Run Anthropic's Claude models that sort requests and write replies, and Google's Gemini for the jobs a workspace picks it for | Message text and help-doc passages, processed and not kept | Outside the EU, usually the United States |
| Microsoft Azure (OpenAI models) | Turns help-doc text and search questions into search vectors, and runs OpenAI's GPT for the jobs a workspace picks it for | Help-doc text and the question being looked up, plus message text when a workspace picks GPT, processed and not kept | Outside the EU, usually the United States |
Slack and Google (Gmail) are not on this list: they are your own services, which you connect. We will update this list before adding a new sub-processor.
Access and protection
- Every table is separated by workspace and protected by row-level security: one workspace can never read another’s data.
- Only members of your workspace can see your tickets and drafts. Admins see an activity log of every action the bot takes.
- All traffic is encrypted in transit (HTTPS). Data at rest is encrypted by Supabase.
- Slack requests are verified by their signature; requests that fail the check are rejected.
- Nothing goes out to a customer on its own unless you turn on automatic replies, and refund, pricing, contract and security questions wait for a person unless you switch them on, with a stricter bar. Access questions always wait for a person.
Certifications
Scaled Support does not hold SOC 2 or ISO 27001 yet. We will start a SOC 2 Type I audit when customers ask for it and publish the audit date here. Until then we answer security questionnaires directly. A data processing agreement is available on the DPA page.
Report a problem
Found a security issue, or have a question about your data? Email [contact email].