Data, Privacy and Uninstall
A help desk collects names, email addresses, order questions and the occasional screenshot with a license key in it. Sooner or later someone asks where that data sits, who can read it, how long you keep it and what happens if you remove the plugin.
Core Support keeps tickets, customers and mail on your own site. The only call home is the license and update check, which sends your license key, site address and the plugin, WordPress and PHP versions to the store. Anything else leaves the site only through a service you connect yourself: a mail provider, a storage bucket, a Chat model or a team alert channel.
Where the Data Lives
Core Support uses its own database tables, all starting with your table prefix and csp_:
- Tickets:
csp_tickets,csp_messages,csp_attachments,csp_outbox(customer email queue) andcsp_reply_tokens - Incoming mail:
csp_receiptsandcsp_inbound_deliveries - Chat:
csp_chat_threads,csp_chat_messages,csp_chat_chunks(learned passages) andcsp_chat_faqs - Docs reader signals:
csp_doc_signals
It also keeps:
- Options starting with
core_support_, pluscsp_licensefor the license and short-lived sign-in and rate-limit records starting withcsp_. - Posts: docs (
csp_doc) in collections (csp_collection), and changelogs (csp_changelog). Learned Chat state sits in post meta starting with_csp_chat_. - Roles and capabilities: the Support Agent (
core_support_agent) and Support Manager (core_support_manager) roles and thecore_support_work_ticketsandcore_support_managecapabilities. - Files, when you move them out of the database:
wp-content/uploads/core-support-private, or your R2, S3 or Bunny bucket under thecore-support/site-<blog-id>/folder by default.
What Is Encrypted
Core Support encrypts with the PHP sodium extension, using keys derived from the site’s AUTH_KEY and AUTH_SALT.
- Saved credentials: the license key, IMAP passwords, relay secrets, automation tokens, storage keys, mail provider and Chat API keys, alert tokens and webhooks.
- Email originals: the full raw copy of every incoming email.
- Attachments and inline images: always in the database and in private local files. In a bucket or Bunny zone too, unless you turn off Encrypt files before upload.
Ticket conversations themselves are ordinary database rows. Subjects, message text, customer names and email addresses are readable by anyone with database access, and they are in every database backup.
What Is Stored Only as a Hash
These values are never stored in readable form, so a database copy can’t be used to sign in or post as someone:
- Reply tokens in customer emails, which also expire after 90 days.
- Connected site keys.
- Portal sign-in codes and sessions on connected sites. Codes last 15 minutes and sessions 30 days.
- Chat conversation tokens. A visitor’s conversation belongs to whoever holds the token.
- Docs readers: “Was this helpful?” votes and failed searches are tied to a hash of the visitor’s address that changes every day. The address itself is never stored.
Your Site Salts Are Part of the Data
The encryption keys and most of these hashes come from AUTH_KEY and AUTH_SALT. If those change, for example after a security plugin rotates them or a migration writes new ones:
- saved credentials can’t be decrypted, so each connection needs its password, key or token entered again
- email originals and encrypted attachments can no longer be opened
- reply links in emails already sent stop matching their tickets, so replies wait in Incoming mail
- connected site keys stop working and need to be issued again
- portal sessions on connected sites end
I’d treat wp-config.php as part of the support backup. A database backup restored next to new salts brings back tickets you can read and attachments you can’t.
What Core Support Deletes on Its Own
- Chat conversations: after the retention period, 180 days by default. Keep conversations for accepts 0 to 3650 days, and 0 keeps them until deleted. A daily job removes up to 200 expired conversations each run.
- Docs reader signals: votes, comments and failed searches older than 365 days.
- Expired security records: portal sign-in codes and rate-limit counters.
Tickets, messages, incoming mail receipts and attachments are kept with no automatic deletion in 0.9.2. Discard on Incoming mail marks a message as Discarded and keeps the row.
Privacy Export and Erase
Core Support registers with WordPress’s own tools under Tools → Export Personal Data and Tools → Erase Personal Data:
- Support tickets: the export lists every ticket opened with the address, with its number, subject, status, opening date and public conversation. Private notes stay out. Email received from the address follows under “Support email received”.
- Support chat conversations: a conversation handed to a person with an email address is included in the export, and the erase removes it.
The erase keeps each ticket and the team’s replies, so the history still reads. It removes the customer’s side:
- their name, which becomes “Deleted customer”, and their email address, so the ticket leaves their portal
- the subject, which becomes “Ticket #” and the ticket number
- their own messages, replaced with “[Removed at the customer’s request]”, and the files attached to them
- email they sent to the help desk, including the original and its attachments
- reply links and queued emails addressed to them
Anonymous Chat visitors are not tied to any email address until they hand off, so there’s nothing to export for them.
Deactivating Core Support
Deactivating keeps every ticket, setting and file. It only stops the scheduled jobs: mail processing, changelog sync and the Chat checks, refreshes and cleanup. Activate the plugin again and everything continues.
Deleting Core Support
By default, deleting Core Support from Plugins removes only its files. Every table, setting, post, role and stored file stays in place, so a reinstall picks up where you left off.
One setting changes that:
- Delete all Core Support data when the plugin is deleted: under Core Support → Settings → Data. Off by default. When on, deleting the plugin from Plugins removes its data on this site.
With the setting on, deletion removes:
- every Core Support table listed above
- its settings and saved state: options and transients starting with
core_support_, andcsp_license - docs and changelogs with their revisions and comments, and the collections
- what Chat learned about other posts, and other Core Support post meta starting with
_csp_ - attachments in
wp-content/uploads/core-support-private - the Support Agent and Support Manager roles, and Core Support’s capabilities on the administrator and editor roles
- its scheduled tasks
If Use the support page as the site homepage is still on, the previous homepage comes back. The Support page itself stays as an ordinary page, which you can delete under Pages.
To remove everything for good:
- Export any docs and changelogs you want to keep. They are your content.
- Give Support Agents and Support Managers another role, because removing the roles leaves them with none.
- Take a full backup of the database and
wp-content/uploads. - Turn on Delete all Core Support data when the plugin is deleted and choose Save settings.
- Deactivate and delete Core Support from Plugins.
Files in an R2, S3 or Bunny bucket stay there, under the core-support/site-<blog-id>/ folder by default. Delete them in the provider’s dashboard. On multisite, each site’s own Data setting decides what happens to that site’s data.
wp-config Constants shows how to keep credentials out of the database in the first place.