Hi,
These are your requests:
1. automatically sends messages to users
2. users can answer whether or not they can
3. use that data to convert it into information
For no1, I'm not sure if you require this to be time-based or not. It's not clear what the trigger is. However, since it's a push mechanism (out of the server first without a request), then you probably would want to use Pub/Sub[1] or Cloud Functions[2]. Pub/sub pushes out messages to users that are subscribed to a particular topic, while Cloud Functions gets triggered by Pub/Sub where the code is running. Although, you could technically have Pub/Sub trigger anything else that you want.
For no2, you will need to add some logic to your code after the pub/sub so that it logs the response of their choice.
For no3, it all depends which database you want to use. Cloud Functions or any other service would be connected to a database. This is more difficult for me to suggest because you may have a preference on the database type in the way you store your semantics. I suggest choosing the database first and then what possible dashboard to use with that database. For example, here's[3] an article on how to use BigQuery (for analytics) with Cloud SQL (our SQL databases).