Channel Transfer

Channel transfers enable you to move a conversation with a user to another Smooch-integrated channel, while preserving the conversation history and unifying the user’s identity in the backend of your software. It allows businesses and end-users to have conversations on whichever channel is better suited for the topic at hand and to benefit from a single, continuous, cross-channel conversation thread. Changing channels can be used to:

  • Authenticate users on your website or mobile app to perform sensitive operations
  • Chat on a more private channel (than, say, Facebook Messenger)
  • Move the conversation to a channel that is less costly (eg. move away from SMS)
  • Provide a better user experience by leveraging rich messaging features on modern channels
  • Offer users the option to receive notifications on a more convenient channel

By leveraging the auth code and link request APIs, links can be generated and sent to users to direct them to the channel of your choice.

The guides below cover how to achieve this transfer in either direction:

Transfer to Web & Mobile SDK

The scenario below demonstrates how a customer Sue can begin a conversation with her bank on Facebook, and continue the same conversation on the bank’s own website. The flow chart below summarizes what we’re about to cover:

transfer to web flow chart

Sue is looking to set up a new bank account at Acme Bank. She first reaches out on their Facebook page. Acme Bank’s Facebook page is integrated with Smooch, so Sue’s conversation shows up as a new conversation in Acme Bank’s helpdesk software.

The conversation is assigned to Ash, a customer service representative. He offers to guide her through the application process. Ash opens the help desk menu and selects “Send user to banking app”. The help desk inserts a link action into the conversation which Sue can use to access the Acme Bank app.

channel transfer from facebook

Sue is now in the Acme banking app, but she hasn’t yet logged in. She does however see the history of messages that were sent between her and Ash over Facebook replicated here.

On Ash’s end, the conversation continues within the same help desk context as before and the help desk indicates that Sue is now talking to him via the Acme banking app. Ash directs Sue to log in.

Ash sees that Sue has logged in and helps her complete the application to set up her bank account.

Once Sue has a Smooch userId and an Acme Bank account that she can log in to, the channel transfer process is simpler. The flow chart below shows the difference:

transfer with login

For example, suppose a few years later Sue is shopping for a mortgage. She again contacts Acme Bank over Facebook. This time a different agent named Bishop responds with some rates. Sue finds the rates attractive and wishes to proceed. Bishop once again sends her a link to the Acme banking app.

Sue visits the link and logs in. She can now seamlessly continue her conversation with Bishop from the banking app.

Error Handling

When supplying an expired or otherwise invalid auth code at init time, the init flow will return an error and leave the SDK in an uninitialized state. Your code should account for this possibility and gracefully handle the error. You may also choose to display an error to the user in this case. If you prefer to ignore the error and continue execution anyways, your code should call init again without an auth code in order to trigger a new initialization process as the previously logged in user.

Transfer to Messaging App

In this example we’ll show how a conversation can be transferred from a Smooch SDK to a third party messaging app, in this case Facebook Messenger. The flow chart below summarizes this process:

transfer to messaging app

Sue wants to switch to a credit card that offers more points. She browses to her bank’s website and asks a question.

Sue asks a question on the Acme web app

An agent named Ash helps Sue choose a credit card and opens an application for her. Ash tells Sue that the process should take one day to complete.

Ash then invites Sue to link the conversation to a 3rd party messaging channel of her choice so that she can receive a notification as soon as her application completes. In the help desk software, Ash selects a menu option “Transfer to messaging app”. Sue is then presented with a list of channels to choose from.

Sue is presented with list of channels

Sue clicks the Facebook link which takes her into a Facebook Messenger conversation with Acme Bank.

Ash sends Sue another message to let her know she can continue the conversation over Facebook Messenger. Sue sees this message in Facebook Messenger while the conversation log continues to be replicated in her browser chat window.

Sue is now talking to Ash over Facebook Messenger

The following day, Sue’s application completes. Acme Bank sends a notification to let Sue know, and she receives the message via a Facebook Messenger push notification on her phone, and she continues the conversation with Acme Bank from there.

Next Steps

  • Generate auth codes REST API.
  • Generate link requests REST API.
  • Check out our runnable examples in Node.js to quickly try channel transfers.