Conversation Routing for Instagram

Updated 

Meta has introduced Conversation Routing as a replacement for the now-deprecated Handover Protocol. With Conversation Routing, Instagram can assign control of user conversations to different connected apps based on the entry point of the message. This article outlines how Sprinklr supports this updated routing mechanism, what configuration steps are required, and how agents can manage thread control.

Conversation Routing allows Instagram to route user messages to different apps based on how the user initiated the conversation:

  • Default App: Handles conversations started via organic entry points like direct messages.

  • Marketing App: Gets control when the user enters via sponsored messages or ads linked to a specific campaign.

Each app must be configured in Meta Business Manager, and apps can pass control to each other or end conversations explicitly.

For more information, refer to Meta's Conversation Routing Documentation.

Conversation Routing Flow

Here is the flow diagram for Conversation Routing:

1. User interacts - The user sends a message or clicks on an ad campaign.

2. Routing decision: Is a Marketing App configured for this entry

  • Yes → route to Marketing App

  • No → route to Default App

3. Default App handles the conversation from start to finish.

4. Marketing App steps in when relevant (example, ad click):

  • Manages the flow.

  • Periodically checks if control should be transferred:

    • Yes - can hand over to *another Marketing App* or back to *Default App*

    • No - continue handling

5. End result: The active app at that point handles the remainder of the conversation.

Key Points

  • No idle state — every incoming interaction gets routed immediately.

  • Entry context (like ad click) triggers the Marketing App; otherwise, the Default App takes over.

Enable Conversation Routing

To enable conversation routing for an Instagram account in Sprinklr, follow these steps:

1. Click the New Page (+) icon to open the Launchpad.

1. Under Platform Modules > Listen, click Messaging Accounts.

2. From the All Channels dropdown available on the top of the page, select Instagram. The list of Instagram accounts will be displayed.

3. Hover over the three dots of the Instagram account for which you want to enable Conversation Routing. Click Enable Converation Routing.

A prompt will be displayed that this action is irreversible. This action is irreversible once saved, as Meta does not support switching back to Handover Protocol. Click Enable.

Configure Conversation Routing

After enabling Conversation Routing for a specific Instagram account, you must also configure it to manage how conversations are routed. This setup ensures seamless handoff of conversations between multiple apps, such as marketing apps and the default support app, based on user entry points and business requirements.

To configure Conversation Routing, follow these steps:

1. On the Accounts page, click on the three-dots icon corresponding to the Instagram page for which want to configure Conversation Routing.

Note: Conversation Routing can only be configured for accounts where it has already been enabled.

2. Click Configure Conversation Routing.

3. In the Configure Conversation Routing Settings page, enter Application ID, Application Name, and Role (Default or Marketing App).

Note: This is not actual app integrations in Sprinklr. Sprinklr uses this metadata to:

  • Recognize which apps are associated with the account.

  • Allow thread control actions (pass/release) to target the correct app using its ID.

When an agent passes control of a conversation in Sprinklr, the system uses the App ID configured here to send the correct signal to Meta’s Conversation Routing APIs.

Grant Permission to Take Thread Control

This is a feature provided by Meta where you can give permission to one of your app to take thread control. This setting must also be enabled in Meta Business Manager.

1. On the Accounts page, click on the three-dots icon corresponding to the account for which you want to grant permission to take control.

Note: Conversation Routing must be enabled and configured to allow App to take control.

2. Click Grant Permission to Take Thread Control.

If enabled, the app can interject and take control of the thread even when another app currently owns the conversation.

Example Scenario

Imagine you have an Instagram account with the following apps configured in Meta Business Manager:

  • Sprinklr App (Default App)

  • XYZ Marketing App (Marketing App for Ad Campaigns)

To reflect this setup in Sprinklr:

  1. Enable Conversation Routing.

  2. Grant the Sprinklr app permission to take control.

  3. In the Connected Apps section:

  • Add:

    • App ID: 123456789

    • Name: Sprinklr Default

    • Role: Default

  • Add:

    • App ID: 987654321

    • Name: XYZ Marketing

    • Role: Marketing

Now, if the XYZ Marketing App initially receives the conversation (when a user clicking on an ad), agents in that app can pass control back to the Sprinklr Default App, and Sprinklr will use the App ID you entered (123456789) to complete the action via Meta APIs.

Agent Experience in Care Console

Agents can manually pass or release control of a conversation directly from the Care Console. For accounts with Conversation Routing enabled, agents will see a Pass/Release Conversation Control option within the reply box, allowing them to seamlessly transfer or release conversation ownership as needed.

To pass/release conversation control, follow these steps:

1. Click the New Page (+) icon to open the Launchpad.

2. Under Sprinklr Service > Resolve > Omnichannel Dashboards, click Care Console.

3. Open the required case.

4. In the reply box, click Pass/Release Conversation Control.

5. In the Update Thread Control window:

  • Select Pass Control to transfer the thread to another connected app (choose from the App drop-down).

  • Or, select Release Control to end the conversation and return control to the default app.

  • Click Update.

7. Enter a relevant message in the reply box and click Send.

Note: After selecting Pass or Release Control, you must send a message to complete the action. Control is only transferred once the message is successfully sent.

Example: