You need to create a backend (API) workflow that will run the actions you need - in this case to send an email to a User.
Then you need to schedule that workflow to run at a particular time - for example, one month before their expiry date (which you’d do by setting the scheduled date to
User's Expiry Data +(months) -1)
In most cases you’d want to schedule the API workflow to run from within the same workflow you use to create the object in the first place - i.e. in the workflow that sets the expiry date, schedule the backend workflow to run in the last step.
An alternative approach could be to run a backend workflow daily, that searches for User’s who’s expiry date is one month from today, and then schedules the other API to run (at the current date/time) on that list of Users.