My company launches a mobile messaging app. We have a free version (B to C) that will be quite limited (can't access the history of messages / few space to store ...). So we propose a package with no limitations that users can buy in app (2€/month). I would like to know when should I send a push or email to encourage them buy this package. I suppose I can't send it right after they have created an account and try to reengage them in the app before that. But then I don't know when exactly it is the right time for me to ask them to pay.
It would be great not to to guess - but take a look on the application data/logs and see/analyze how people are interacting with the app. What actions are they taking and when, what are the steps users are taking. The questions are if you are collecting such data and if yes, do you have enough data to find interesting insights.
Apart from that - you've mentioned that in free app access to history / storage space is limited - I'd say it would be pretty natural to inform user about extension option when they actually need this features - when users are trying to access the history, upload content which is bigger than available storage etc. Definitely it's important to have right balance between the features for free and what you are getting in no-limits package. I think Slack can be a great reference point.
Hope it helps.
Ideally look at the current user journey. This will help you identify the right touchpoints on when to push this offer and in what form.
For instance - You can surely make a user aware about the limitation of free and how they can upgrade (typical SaaS workflow - it might happen some users probably would like to directly opt in this)
Then from free users, as pointed out by Pawel, if based on user data, you know who all have reached threshold are about to reach threshold, those people can have high touch communication about the upgrade (mail, in-app)