When tracking the user account deletions by the system I found three main ‘reasons’ mentioned under ‘context’ in the logs:
Inactive user: Number of days before an inactive user (trust level 0 without any posts) is removed. To disable clean up set to 0.
Automatically deleted as abandoned, deactivated account: a user who has not activated their account is deleted. Set to 0 to never purge unactivated users.
Unused staged user: Number of days before an unused staged user (without any posts) is removed. To disable clean up set to 0.
Under settings it’s possible to change the period for the deletion:
inactive users: clean up inactive users after days
Automatically deleted as abandoned, deactivated account: purge unactivated users grace period days
Unused staged user: clean up unused staged users after days
I tried to search for any definitions for the second reason “Automatically deleted as abandoned, deactivated account” but I couldn’t find one so I decided to share this post here and hopefully it will be helpful for other community managers.
At the same time, I’d like to take the chance and ask,
What are the recommended periods for each?
Are there any actions you’d recommend before the system deletes these accounts?
After system deletions, would it be okay to follow up with users to inform them that the system deleted their account?
Major discussion question: I’ve had a Twitter (X now) account for a very long time and I don’t use it unless I want to check a post out (which is rarely) but X doesn’t delete user accounts, why should we delete accounts if they simply ‘never posted’?
It’s not just that they have never posted. How often do you check out a post on Twitter? By default, the clean-up period in Discourse is 730 days. So if the account isn’t that old, it isn’t deleted, but it also isn’t deleted as long as you logged in within this timeframe. So as long as “rarely” is less than 730 days, the account won’t get deleted. Also, accounts that reached trust level 1 aren’t deleted, and even if you visit a place rarely, you spend some time reading posts. By default, after reading 30 posts, opening 5 topics, and a total of 10 minutes of reading time, you are at trust level 1.
In general, I think the Discourse defaults are chosen in a way that they fit most communities’ needs. But of course, there are cases where, for example, disabling user deletion is necessary. For example, if you use Discourse as an identity provider, so the users do not visit your forum but still need the account.
I don’t know how things work around the globe, but in the Nordics, the majority of users are lurkers (what was the correct expression, anyway?). Not posting is a useless metric then, but not reading is a reason to kick someone out. And that will happen too.
I think I have the same feeling as @Ed_S … but taking into consideration your points, maybe a less strict decision could be ‘limit activity’ to a certain degree rather than ‘erasure’?
I always wonder about these. Usually they are detected by the System immediately but from what you said, there’s probably a lot that are not.
What if they’re ‘reading’ through email notifications? For instance, they’re only interested in the notifications from Announcements category. I don’t know if it’s easy to get a metric on that.
Or maybe the forum is the kind people want to join and appear as ‘members’ as a way to support its message/project.