Facebook Rules: Managing Opt-in and Opt-out for Recurring Messages

Facebook Opt-in and Opt-out triggers let you request a contact’s permission to receive messages about a specific topic and then automatically start flows when the contact accepts the opt-in or later opts out, enabling compliant follow-ups beyond the 24-hour window while keeping subscription topics easy to manage and track.

Set up Facebook opt-ins in a few steps

If you just need the essentials, follow this:

  1. Create a flow that sends an opt-in request (usually started by a keyword)
  2. Add the Send an opt-in request action and select/create the opt-in topic
  3. Create an opt-in accepted flow and trigger to run when contacts accept
  4. Create an opt-out flow and trigger to run when contacts opt out of the topic
  5. Test end-to-end with a real Facebook Messenger conversation

You’re done. Contacts can subscribe to a topic, receive compliant follow-ups beyond 24 hours, and opt out any time.

Step-by-Step Process

1
Understand the 3-part setup

Facebook requires that messages sent to a contact more than 24 hours after their last message be associated with an opt-in topic (a user permission).
In RapidPro.app, you typically set up three pieces: a request flow, an opt-in accepted trigger/flow, and an opt-out trigger/flow.

[CAPTURE: Diagram or list showing the 3-part setup (Request → Opt-in accepted → Opt-out).]

💡
Tip: Opt-ins work well for subscriptions like “climate updates”, “appointments”, or “news alerts”.

2
Create the opt-in request flow

Create a flow to request opt-in

  1. Go to Flows and click New Flow.
  2. Name the flow (for example, “Climate Opt-in Request”).
  3. Create a keyword trigger to start it (for example, CLIMATE).

[CAPTURE: Flows page with “New Flow”.]
[CAPTURE: Trigger setup showing keyword CLIMATE starting the request flow.]

⚙️
Note: Keep the keyword short and easy to remember.

Add “Send an opt-in request”

  1. In the flow, add the action Send an opt-in request.
  2. Select an existing opt-in topic from the dropdown, or create one by typing its name.
  3. Confirm and save.

[CAPTURE: Flow action menu highlighting “Send an opt-in request”.]
[CAPTURE: Opt-in request selector/dropdown showing topic selection/creation.]

💡
Tip: Name topics clearly using labels contacts will recognize later (for example, “Climate updates” or “Health reminders”).

3
Start a flow when a contact accepts the opt-in

Create an “opt-in accepted” flow

Create a new flow (often a Background Flow if you only update groups). For example, you can add contacts to an Optins group,
remove them from an Optouts group, and optionally send a confirmation message.

[CAPTURE: Flow showing “Add to group Optins” and “Remove from group Optouts”.]

💡
Tip: Use groups like “Optins” and “Optouts” for reporting and filtering later.

Create the opt-in accepted trigger

  1. Go to Triggers and click + New Trigger.
  2. Select Start a flow when a contact accepts an opt-in request.
  3. Choose the flow you created and save.

[CAPTURE: Triggers page with “+ New Trigger”.]
[CAPTURE: Trigger type list highlighting “accepts an opt-in request”.]
[CAPTURE: Trigger config showing Flow selected.]

⚠️
Warning: These triggers only appear and work when your workspace has a Facebook Messenger channel connected and enabled.

4
Start a flow when a contact opts out

Create an “opt-out” flow

Create another flow (often Background) to remove the contact from your opt-in tracking group, add them to an opt-out tracking group,
and optionally send a clear confirmation message.

[CAPTURE: Flow showing “Remove from group Optins” and “Add to group Optouts”.]

⚙️
Note: Keep opt-out simple so contacts receive a clear confirmation with no extra steps.

Create the opt-out trigger

  1. Go to Triggers and click + New Trigger.
  2. Select Start a flow when a contact opts out of a topic they previously opted in to.
  3. Choose the opt-out flow and save.

[CAPTURE: Trigger type list highlighting “opts out of a topic”.]
[CAPTURE: Trigger config showing Opt-out flow selected.]

5
Test the full contact experience

  1. The contact sends the keyword (for example, CLIMATE).
  2. They receive an opt-in request prompt.
  3. If they accept, the opt-in accepted trigger starts your follow-up flow.
  4. They can opt out any time, which starts your opt-out flow.
  5. Review opt-in/opt-out status from the contact’s page.

[CAPTURE: Contact view showing opt-in topic status / history.]

Common Issues & Quick Fixes

Problem: I can’t find opt-in triggers in the trigger list.

Fix: Confirm a Facebook Messenger channel is connected and enabled, then refresh the triggers list after channel setup.

Problem: Contacts opt in but don’t enter the follow-up flow.

Fix: Confirm the “accepts opt-in request” trigger is active and points to the correct flow.

Problem: Group membership doesn’t change after opt-in/opt-out.

Fix: Verify the flow actions (Add vs Remove) and group names, and use a Background Flow if you don’t want to interrupt other flows.