According to Messenger Platform Policy, you can only message your users (sending them Broadcasts—now Reengage messages) within 24 hours of their last interaction with your bot.
For more details on this, please check Facebook's Platform Policy Overview here.
Let’s say you’re creating a bot for a vacation rental in Amsterdam. In your Welcome Message, you’ll need to ask the user if they agree to receive Reengage messages from your bot.
Once you’ve asked the question, you need to save the answer to a user attribute. In the screenshot above, a “Quick Reply” is used to do so. When the user clicks on “Yes, sign me up”, the answer is saved to “subscribed” user attribute.
Now, go to the “Reengage” tab in the left menu and click the button under “Deliver Your Message Now”. There you will see the built-in User Filter which allows you to choose which specific groups of people will receive your message.
Set the “subscribed” attribute to “Yes, sign me up” value to make sure only those who opted in are selected.
This way the broadcast will be sent only to users who picked "Yes, sign me up" in the "Welcome Message" block.
To give a user a way to unsubscribe from Reengage messages, you’ll need to change their attribute value to "Not set" using the "Bot action" functionality in the Flow tab.
To give the user an option to unsubscribe you can: