DocsReference
Privacy and data
What Sortr stores and why, what is encrypted, how long it is kept, who can read transcripts, and how to have data deleted.
A plain-language summary of what Sortr keeps about your server and your members, why, and for how long. The Privacy Policy (version 31) and the Terms of Service (version 17) are the full versions, with the Data Processing Terms (version 7), which are part of the Terms and cover the ticket data Sortr handles for your server. Each lists at its end what changed in every version.
#Who is responsible for what
Who runs Sortr, and how to reach them, is in the Privacy Policy, sections 1 and 11. For the dashboard and the sign-in, Sortr decides what is collected. For tickets, your server decides: you choose to install Sortr, what the form asks, whether and when transcripts are kept, for how long, where copies go and which staff can read them, and Sortr does that work on your behalf, under the Data Processing Terms. You agree to them when you add Sortr to a server or set it up in the dashboard. The same goes for anything your server sends to a Google Sheet or another app, for moving your server from Ticket Tool, and for a site your server lets change its panels with an API key. That is why some requests about ticket data may be passed on to a server's admins.
#What Sortr stores, and why
| What | What it holds | Why |
|---|---|---|
| Your dashboard sign-in | Your Discord id, display name (or username) and avatar, the servers you can manage, whether your Discord account has two-factor authentication on, and Discord's sign-in tokens. The rest of your server list is dropped straight away. Signing in gives Sortr no email address. | To show you the servers you can manage: those you own or have Administrator in. The two-factor setting matters in servers that require it for moderators. |
| Who added Sortr to a server | When Sortr joins a server, it reads from the server's audit log who added it. It keeps nothing about that person, apart from a technical log line with the server's id. | To leave a server added by a blocked account (below), and to send the welcome message by direct message when Sortr can't post it in the server. |
| Each ticket | The server, channel, ticket number and panel, its status, who opened it, anyone added to it, who closed it and the reason they typed, and when it was opened, closed, last active, given an inactivity warning and deleted, and when its transcript was saved. Reopening a ticket clears the earlier close reason. | To run tickets: limits, cooldowns, automations and the list of closed tickets. |
| Form answers | Every answer, and the first 200 characters of the first answer as the ticket's subject. The text of each question is stored beside its answer. Unless you switch it off, the answers are also posted in the ticket channel. | They are the member's request. The subject labels the ticket in the closed-ticket list, and answers go on to your Google Sheet if you turn one on. |
| Files attached to a form | Only if a question takes files. Sortr copies them from Discord into the ticket channel, under the opening message, and holds each in memory only while posting it: it never stores the files, not even in its backups. The copy in the channel is then yours, like anything else posted there, and goes when the channel is deleted. A file it does not copy, such as one too large for the server or not a picture on a question that takes only images, is named in the channel instead. As the answer, Sortr keeps the files' names, encrypted, with the other answers and for as long. The names also go to your Google Sheet and connected apps, which also get each file's size and type but no link. | So the member's files reach the ticket, since Discord's own links expire. |
| Transcripts | Saved when the ticket closes or when it is deleted, as your panel sets, and whenever staff press Transcript, use /transcript or save one from the dashboard. A ticket that would be deleted with no copy is saved right before it goes, so a ticket can have more than one copy; sortr.xyz keeps its first and its 3 newest. A transcript holds up to 5,000 messages, and at most 12 MB. For each message it has the text, the author's display name and avatar link, the time, embeds, stickers, polls and links to attachments with their names and sizes. It also names the server, the member who opened the ticket (name, username and Discord ID) and who saved it. Attachments themselves are not copied. Beside it Sortr keeps a one-way fingerprint of the Discord id of everyone who wrote in it, so a deletion request can find their words. | A record of the conversation, if your panel keeps one. |
| Event log | One entry per switched-on event, and for those that are always on: what happened, when, in which ticket (or, for /add outside a ticket, which channel) and who did it, with a few lines of text that can include the people involved and the close reason. Integrations changed entries name the sites webhooks send to (never the full address) and the last four characters of a linked Google Sheet's id (never the link). It is stored even when no log channel is picked. Message edited and Message deleted, both off by default, show the first line of the message, up to 120 characters, or the names of deleted files, in the post in your log channel. Sortr does not store that text. | A record of what happens around your tickets, posted to your log channel if you set one. |
| Messages in your server | Nothing outside tickets. Sortr reads message content, so Discord delivers the messages of every channel Sortr can see. The invite does not ask for Administrator, so that is the channels Sortr's role can see: usually your open channels, and private ones only where it is let in, such as the ticket channels it creates. If an admin gives Sortr Administrator by hand, for example while moving tickets from Ticket Tool, it sees every channel until they take it away. Sortr ignores them outside ticket channels and stores none, apart from what a Ticket Tool scan keeps when your admins ask for one (below). Like any Discord bot, it holds recent messages in memory for about half an hour before they are dropped. Inside a ticket, message text is used for transcripts, for the Message edited and Message deleted log posts if you switch those on, and to count staff messages before a reopen. Otherwise Sortr only notes when the last message was sent. | Transcripts, and the timers under Automations. |
| Uploaded images | Images you add to panel and ticket messages: PNG, JPEG, GIF or WebP, up to 8 MB. They are stored exactly as uploaded, including hidden details a photo carries, such as where and when it was taken, and served at a public link that anyone who has it can open. Sortr also records who uploaded each one. Discord gets a copy when the message is posted. | So Sortr can add them to its messages. Who uploaded them counts towards that person's storage limit. |
| Settings | Your server's id, name, icon and colour, whether Discord makes its moderators use two-factor authentication (kept so that rule still applies to the server's remaining transcripts after Sortr is removed), and each panel's settings: role, channel and category ids, messages, questions, limits, the link to a Google Sheet, and the addresses and signing secrets of webhooks, with the Discord id of whoever connected each webhook and the sheet. When an admin mentions a member in a message, the dashboard looks up the server's members by name from Discord at that moment, up to 10 at a time, and keeps only the mention. | To do what you set up. Sortr also notices when a member's roles change, so that what someone connected is switched off once they are no longer an Administrator, and an API key stops working once its maker can no longer manage the server. Apart from the log entry when something is switched off, nothing about those changes is kept. |
| Sortr's support server | Only if you join Sortr's own Discord server for help and news. Discord shows its admins what it shows the admins of any server: your username, display name and avatar, when you joined, the roles you hold, and the messages you post there. Messages in its open channels can be read by every member. A support request there is a Sortr ticket like any other, files included, with the people who run Sortr as the server. For this server, Sortr decides what is collected. | To help you, to improve Sortr and to keep the server safe. Messages or members that break its rules or the Terms can be removed. |
| Request counts | How many requests came from an IP address, and how many sign-ins from a Discord account, counted in memory only, for example to limit sign-in attempts. The counts are never written down and are gone within an hour. The web server keeps no access log. Sortr stores internet addresses in two places only: those set on an API key (the servers of the site that holds it), and the security log of the machine Sortr runs on, which records attempts to log in to it and the traffic its firewall blocks, almost all from automated scanners. It is not a record of who visits sortr.xyz or uses Sortr. | To stop abuse. |
| Moving from Ticket Tool | Only if your admins use Import from Ticket Tool. If Ticket Tool is in the server and Sortr has Discord's Message Content access, the scan reads the latest 50 messages of up to 250 channels Ticket Tool can see and post in, and up to 200 more in a channel where those 50 hold Sortr's own posts but none of Ticket Tool's, such as after an earlier import. It keeps only what Ticket Tool posted: its panels, and how many transcript and log posts each channel holds. It also reads the first 10 messages of up to 60 recent Ticket Tool tickets and keeps only Ticket Tool's, or uses Sortr's copy of Ticket Tool's first message in a ticket Sortr took over. From them it sorts the tickets into kinds, usually one for each Ticket Tool panel, and rebuilds each kind's opening message and questions. The member's mention, name and picture become placeholders, and anyone else's mention is left out. Answers in Ticket Tool's answer boxes are left out, and other answers are found by comparing tickets of the same kind and left out too. Each opening comes from a real ticket, so the review asks your admins to check it for anything about that member before importing. Where only one ticket of a kind was read, there is nothing to compare it with, so what that member wrote may still be in it. To tell tickets named after their member from numbered ones, Sortr also gets the names of the members the tickets are for, asking Discord for up to 100 of them, and uses them only in memory. The result is held in memory for about an hour and never stored, except the panels your admins create from it. Images on Ticket Tool's panels and opening message are copied into your server's Sortr images; nobody's profile picture is copied. A panel picked with the Import into Sortr command is held in memory for about 30 minutes. A ticket Sortr takes over keeps the usual ticket record, plus which roles could see it, the ids of the Ticket Tool message it replaced and of Sortr's copy, and when it was taken over; answers in that message are posted again in Discord only. The first time the import is used on Sortr at all, the people who run Sortr get the server's name in a Discord message; only that it happened and a count are kept. | To move your server from Ticket Tool, when your admins ask. |
| API keys | Only if your server has one. For each key: its name, a one-way hash of the key (never the key itself), the Discord id of the person who made it and whether their account had two-factor authentication on at the time, when it was made and last used, and, if set, the internet addresses of the other site's servers that may use it. A call from any other address is refused, and the refusal is logged without the caller's address. | So a site your server works with can change your panels, and so a key can be limited, checked and revoked. |
| Blocks | Only if the people who run Sortr block an account or a server for breaking the Terms or using Sortr to harm others. Sortr keeps its Discord id, when it was blocked and which of the people who run Sortr blocked it, but not the reason. A blocked account can no longer use the dashboard or Sortr in Discord: its sessions end, and Sortr leaves any server it adds Sortr to. It can still read its own transcripts. Sortr leaves a blocked server, whose data is then deleted 30 days later like any server that removes Sortr. The person, or the server's owner, is told what was done and how to challenge it. | To keep Sortr safe and free of abuse. |
The display name, profile picture and banner you set under Customize bot go straight to Discord; Sortr keeps no copy. Sortr notes when the member who opened a ticket leaves the server, and keeps no member lists. Its technical logs hold times, Discord ids, server names and error messages, never message content.
#What is encrypted
Encrypted at rest with AES-256-GCM:
- transcripts kept on sortr.xyz, and the name and username of the member who opened the ticket saved with each one;
- form answers and the questions they answer, ticket subjects and close reasons;
- the lines of each event log entry;
- the Google Sheet link, and webhook addresses and signing secrets;
- webhook events waiting to be sent, rows waiting for the Google Sheet, and why either is still waiting;
- Discord sign-in tokens, and the display name, avatar and server list of a dashboard session.
The key is kept outside the database and outside its backups, so a copy of the database on its own does not reveal any of these. The hosting provider's weekly copies of the whole server hold the key as well as the database, so those copies are protected only by the provider's own security. A dashboard session id, and an API key, are stored only as a one-way hash, so the database cannot be used to sign in as anyone or to use a key. Everything to and from sortr.xyz uses HTTPS.
What stays readable is what Sortr needs to find, count and run things: Discord IDs, times and dates, statuses and numbers, the names of servers and panels, each panel's settings (its messages, questions and rules), links to transcript copies posted in Discord, whether a signed-in account has two-factor authentication, and an API key's details other than the key itself. Closed tickets can still be searched by member: Sortr decrypts the names of the server's newest 500 transcripts to look through them. To tell when two servers connect the same Google Sheet, Sortr keeps a keyed fingerprint of the spreadsheet's ID, from which the ID cannot be read back. A sheet stays with the first server that used it, even after its link is removed, so no other server can write into it through Sortr unless someone who manages that server moves it. Copies posted into Discord are protected by Discord, not by Sortr.
#How long things are kept
| Data | Kept for |
|---|---|
| Blocked accounts and servers | Until they are unblocked, or until the account's owner, or the blocked server's admins, ask for the block to be deleted. |
| Sortr's support server | Messages in its channels: until you or the people who run Sortr delete them. Its tickets, answers and transcripts: as for any server, above. |
| Dashboard sign-in | 7 days from signing in, or until you sign out, then deleted: an expired session is cleared out within the hour. Sign out everywhere, in the account menu at the top right of the dashboard, ends every session for your account at once. |
| Transcripts on sortr.xyz | As set per panel in Keep it for: 30, 90 or 180 days, 1 year, or until deleted by hand, counted from the day the copy was saved. The default is 90 days. A ticket keeps its first copy and its 3 newest. A server's copies together take at most 1 GB, the copies of all the servers one account owns 3 GB, and all of Sortr's 40 GB: past any of these, no new copy is kept, except a taken-over Ticket Tool ticket's copy kept off Discord. When a panel is deleted, its tickets keep the period the panel had at that moment. Older tickets, from a panel deleted before Sortr kept settings this way, follow the 90-day default. Expired copies are removed every hour. Of each ticket, Sortr keeps at most the first copy and the newest three. Once one of those limits is reached, or while Sortr is low on disk space, no new copy is kept on the site, and your event log says so. The server owner and Administrators can delete a copy at any time. |
| Transcripts posted in Discord | As long as the Discord message. Sortr never deletes them. |
| Ticket records, form answers and subjects | Form answers and the subject go when the panel's Keep it for period ends, counted from the close (with Until deleted by hand, a year after the close). The ticket record goes a year after the close, or later while its closed channel is still in your server or a copy of its transcript is still on the site. Everything goes 30 days after you remove Sortr, or sooner when you ask: see below. |
| Event log | 90 days |
| Forms waiting for a Google Sheet | Until written, or at most three days if the sheet can't be reached. The record of it is deleted seven days after that. |
| Webhook events | Until delivered, or at most a day if the address can't be reached. A record that an event was sent, without its contents, is kept for 7 days. |
| Uploaded images | While a panel of the same server uses them. The settings kept for a deleted panel's tickets count as well, until the last of those tickets is deleted. A panel copied to another server gets its own copies of the images. An unused image is deleted automatically, at the earliest 3 days after it was uploaded. An image removed after a copyright notice goes from sortr.xyz and from the panels Sortr has posted, and the person who uploaded it is told; copies already inside Discord messages are removed in Discord, by the server's admins or through Discord. Sortr keeps a fingerprint of a taken-down image's content (its SHA-256 hash and size) so the same file can't come back, until the takedown is lifted; it names no person or server. |
| Settings | Until you delete the panel. If the deleted panel has tickets, a copy of its settings as they were at that moment stays with them while they are open or closed. The copy leaves out the Google Sheet link, and the webhooks unless you chose to keep them. Once the last of those tickets is deleted, only how long their transcripts stay and where their log entries go are kept, until the last of those transcripts is gone. A Google Sheet's fingerprint stays with the server that first used it, even after the link is removed. After Sortr is removed from the server, all of this is deleted 30 days later with the rest. |
| API keys | Until the people who run Sortr revoke the key, or until your server's data is deleted after it removes Sortr. A key that stops working because its maker lost access is kept until it is revoked. |
| A Ticket Tool scan | In memory for about an hour, never stored. A panel picked with Import into Sortr: in memory for about 30 minutes. |
| Backups | A backup is taken every night and before each update, and deleted once it is more than 14 days old, except that the newest complete backup is kept while later ones fail. So something removed from Sortr usually leaves its backups within about two weeks. Each backup file is encrypted as it is written, with a key whose private half is kept off the server, so the server can make backups but cannot read them; inside, everything above is encrypted a second time. A copy is also kept off the server, in a second place under Sortr's control. Several times a day it adds the newest backups and deletes those more than 14 days old, by the same rule as the server, and it is not kept in any further backup. If that copy cannot be updated for a while, a backup can stay in it longer. If Sortr's server were lost, that copy would be kept until it had been used to restore Sortr. The hosting provider also keeps weekly copies of the whole server, the latest two. Those can include Sortr's backups, so something removed can remain in them for up to about four weeks. |
| Technical logs | Sortr's own logs are replaced automatically once they reach a fixed size, about 50 MB per service, so how long a line lasts depends on how busy Sortr is: days when it is busy, longer when it is quiet. When Sortr is updated, the last lines from before the update are kept until the next update, so a problem just before it can still be looked into. The machine's own logs, including its security log, are kept for at most 60 days. If any of these logs are needed to investigate a security incident, a copy is kept until that is closed, and longer only while a breach notification, a legal claim or the authorities still need it. |
When you remove Sortr from a server, everything Sortr holds for that server on sortr.xyz is deleted 30 days later: tickets, form answers, every transcript kept on the site, the event log, images, settings, API keys, and anything still waiting for its Google Sheet or webhooks. What was still waiting is not sent once Sortr is removed. Add Sortr back before then and it picks up where you left off, apart from what was not sent. Until then, transcript links still open for the people allowed to read them. Transcripts already posted in Discord stay there. To have everything for your server deleted sooner, write to team@sortr.xyz. The policy commits to doing it within one month.
#Who can read transcripts
- The copy on sortr.xyz opens only for the member who opened the ticket, and for the server's owner and members with Administrator as Discord confirmed within the last minute, after they sign in with Discord. In a server that requires 2FA for moderator actions, those Administrators also need 2FA on their own account. The member can open their own copy even after leaving the server. Anyone else, support roles without Administrator included, sees a "No such transcript" page. If you switch on Transcript opened under Event log, openings are logged, at most once every 30 minutes per person and transcript.
- The copy posted in Discord can be read by anyone who can see that channel, so pick a staff-only channel. A ticket taken over from Ticket Tool is posted only in a channel nobody outside its own roles can read (the server owner, Administrators and bots aside); otherwise its copy is kept on sortr.xyz instead.
- What each copy holds. The copy on sortr.xyz and the copy sent to the member by direct message stop at the moment the ticket closed, and leave out what staff wrote while it was closed before a reopen. That holds when an admin reads the site copy too. The copy posted in your channel, and the file staff get when they press Transcript, hold everything.
- 18+ tickets. For a ticket in a channel marked 18+ (age-restricted) in Discord, the copy is posted only in a channel marked 18+ too, the member gets the link by direct message without the file, and the copy on sortr.xyz shows an 18+ notice before the conversation.
More in Transcripts.
#Where data goes
- Discord. Every ticket happens there, and Sortr posts notices, transcripts and log entries there. Avatars, server icons, emoji and attachment previews in the dashboard and in transcripts load from Discord's servers, so Discord sees your IP address when your browser fetches them. A picture in a message preview from any other site loads only after you press Load.
- Hosting. One server with Hostinger, in a data centre in Germany, runs the bot, the database, uploads and backups. Hostinger's weekly copies of that server are kept in Lithuania.
- Cloudflare answers DNS lookups for sortr.xyz and is the domain's registrar. In the current setup it does not see or carry your traffic.
- Google, only if you turn on Google Sheets. Each submitted form adds a row to your own sheet, with the answers to the questions you chose and, if you choose, the time and the member's Discord username. Sortr also reads what is already in those columns to find the next empty row. The ticket's opening message tells the member their answers go there.
- Webhook addresses, only if you add webhooks. Ticket events go to the addresses your admins chose, with the server's and panel's names, the people involved, the close reason, the transcript link and, when a ticket opens, the questions and answers (for a question that takes files, each file's name, size and type). When the answers go out this way, the ticket's opening message tells the member so. Every webhook added or changed is logged under Integrations changed, which cannot be switched off.
- A site with an API key, only if your server has one. A site your server works with, such as an agency's dashboard, can read and change your panel message, opening message and form questions, and update the posted panel. It also receives your server's id, name and icon, and the names of your panels and the channel each is posted in. It sees no tickets, answers, transcripts, event log or members. Every change it makes is posted in your log channels. See API.
- Email to team@sortr.xyz. Since 13 October 2026 it goes to Sortr's mailbox at Zoho Mail, on Zoho's EU service, and replies are sent from there. Zoho companies outside the EU, such as in India and the US, may also handle it to run the service. Until 13 October 2026, replies went out through Resend, which Sortr no longer uses. Resend keeps a copy of each email it sent for 30 days, so the last copies are gone by mid-November 2026. Emails are kept for 1 year after the last message; requests about your data and complaints, for 3 years after the answer.
- The people who run Sortr can reach its database and hold the encryption key. They look at personal data only when they need to: to keep Sortr working, fix a fault, handle abuse, or answer a request or a legal duty. Their own overview page shows totals, every server Sortr is in with its member, panel and ticket counts, every API key in every server (the server, the key's name, who made it and its addresses), the blocked accounts and servers, and the first uses of new features. It shows no messages, and no member names other than those on the blocklist and the uploaders of an image being taken down.
No payment provider receives anything today. Nothing is sold, shared with advertisers or used to train AI, and sortr.xyz has no analytics, advertising or tracking cookies, so every visit is handled the same way whether or not your browser sends a Do Not Track signal. It sets only the cookies that are strictly necessary to sign you in and keep you signed in. Once data reaches your Google Sheet or a webhook address, what happens to it there is up to your server.
#If you run a server
- The Terms ask you to tell members that tickets are logged and transcribed before they open one: in your server rules, the panel message or the ticket's opening message. You can link to the Privacy Policy. Transcripts are on when you add Sortr; you can switch them off.
- Don't use forms to ask for passwords, card or bank details, government ID numbers, health information or other sensitive data, nor for photos or scans of identity documents or other files that contain them.
- Don't upload pictures of people or anything private, and remove location details from photos before you upload them.
- Keep transcripts only as long as you need them. You can delete a ticket's site copies from Closed tickets at any time: Delete there removes every copy of that ticket kept on sortr.xyz. Copies posted into Discord are yours to delete in Discord.
- Everyone with Administrator can manage Sortr and read every transcript kept for your server, so grant it with care. Requiring 2FA for moderator actions in Discord makes Sortr ask for it too. When someone loses Administrator or leaves, the webhooks and Google Sheet export they connected are switched off, and an API key they made stops working.
- If you move from Ticket Tool and choose Replace, or take over its open tickets, Sortr deletes Ticket Tool's panel messages, and the first message of each ticket it takes over. Deleted messages cannot be brought back, so copy anything you want to keep first. The Terms ask you to tell members that their open tickets are now handled by Sortr, and that a ticket's transcript includes what was written before Sortr took it over.
- A site holding an API key for your server acts for your server, not for Sortr: what it changes is your server's responsibility, and keeping the key safe is that site's. Keys are made by the people who run Sortr, at the request of your server's owner or Administrators. To have one revoked, write to team@sortr.xyz.
#Ask to see or delete your data
- Find your Discord user id. Discord shows it once Developer Mode is on, under User Settings › Advanced: use Copy User ID.
- Email Sortr. Write to team@sortr.xyz with your id and what you want: a copy, a correction or deletion.
- Confirm it's you. You may be asked to confirm from your Discord account, for example by sending a message from it.
Requests are answered within one month, free of charge, unless a request is unusually complex, in which case you are told why it needs longer. A request about tickets in a particular server may be passed to that server's admins, who may also need to delete copies posted in their Discord channels. Deletion reaches the tickets you opened, with their answers and transcripts, your sessions, a block on your account, and your Discord id in the other records, such as who closed or saved a ticket, or in an event log entry. What you wrote in other people's tickets is removed from the copies on sortr.xyz once their servers' owners have been told: each of your messages, with its files, becomes a note that it was removed at the author's request. In copies saved before version 31 of the Privacy Policy took effect, Sortr finds you only if you had your own Discord avatar then; otherwise it asks the admins of the servers concerned, who can find and delete those transcripts in the dashboard. Some things you can do yourself: Sign out everywhere ends all your sessions, and the server owner and Administrators can delete any transcript kept on sortr.xyz.