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 Rengage messages from your Bot.
Once you’ve asked the question, you need to save the answer to a user attribute. In the screenshot above, “Quick Reply” button is used to do so. When the user clicks on “Yes, sign me up” button, the answer is saved to “subscribed” user attribute.
Now, go to the “Rengage” 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.
Click the “User Filter” button and 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 "Welcome Message" block.
To give a user a way to unsubscribe from Reengage messages, you’ll need to create a separate block to which the AI will send them to if they type in specific phrases. In this block, create a Set up user Attribute plugin and set the “subscribed” attribute to “NOT SET” value.
Make sure the bot lets the user know they have been unsubscribed from the Reengage by adding a text card like this one:
After that, go to Set Up AI tab to create a new AI rule. Be sure to choose the block you’ve created previously.