I'm planning a possible email subscription management system for our company. Users will voluntarily opt-in for initial registration, and can control which specific mailing lists they'll be subscribed to.
Some of our mailing lists will be restricted to residents living in our community, and therefore will need to have a name and address associated with the email account. This will be optional for anyone subscribing to only mail lists that are not restricted to residents.
We also want to store cell phone numbers for possible future SMS communications, if the users wish to share that information.
In addition to removing specific mailing lists from their account, I want to give users the ability to unsubscribe completely (i.e. remove themselves from all mailing lists). Given the amount of information that will be (potentially) captured above and beyond a simple email address, I was contemplating using a boolean value in the database to determine if the user had unsubscribed, rather than deleting their information completely.
This way, should the user later decide to re-subscribe, I could pre-populate the form with the information on record to make the process easier for the user.
However, I am concerned that this would possibly be a negative experience, if the user assumes that unsubscribing completely removes all of their data from their system.
Is it okay to maintain data about a user even after they unsubscribe?