Two different lifetimes, and they are easy to confuse.
| What | How long |
|---|---|
| A conversation you have not deleted | Kept indefinitely |
| A deleted conversation | Purged 30 days after deletion |
| Diagnostic log entries | 7 days |
Live conversations are kept
Sohay does not expire conversations on its own. One from two years ago is still in the inbox, still searchable.
That is usually what you want — the inbox is the record of what people ask — but it is a decision worth making rather than inheriting. If your privacy policy says you keep support conversations for twelve months, nothing enforces that for you.
Deleted conversations are purged
Deleting is a two-stage process. It leaves the inbox immediately, and a scheduled job permanently removes it and its messages after the retention window — 30 days by default.
The window is a safety margin against mistakes, not a filing cabinet. Somebody who deletes the wrong conversation has that long to notice, though recovering it needs database access rather than a button.
Changing the windows
add_filter( 'sohaychat_retention_days', function () {
return 7;
} );
And for the diagnostic log:
add_filter( 'sohaychat_logger_retention_days', function () {
return 30;
} );
Shorter conversation retention is a stronger privacy position and costs you the ability to recover a mistaken deletion. Longer keeps personal data on disk after somebody asked you to remove it. Whichever you pick, make your privacy policy say the same number.
The purge needs scheduled tasks to run
The purge is a scheduled job. On a site with very little traffic, or one where WP-Cron has been disabled without a system cron replacing it, it never runs — and deleted conversations sit in the database indefinitely.
That is worth checking if you have made a retention promise. It affects everything scheduled on the site, not only Sohay: sync jobs will be stuck too. A queue that never drains on Sohay → KB Settings → Dashboard is the symptom that shows up first.
Enforcing a retention policy on live conversations
There is no setting for “delete conversations older than N days”. If you need one, it is a scheduled task of your own that finds old conversations and deletes them, after which Sohay’s purge handles the rest.
Worth building deliberately rather than assuming it exists.
Where to go next
Exporting and erasing visitor data for the GDPR tooling, and What happens when you uninstall Sohay for the end of the line.