Protocolo de traspaso

El protocolo de traspaso de la plataforma de Messenger permite que dos o más apps participen en una conversación mediante el traspaso del control entre ellas. Las apps suscritas mediante una página de Facebook tienen automáticamente el protocolo de traspaso activado.

Nota: El enrutamiento de conversaciones ahora está disponible y pronto reemplazará al protocolo de traspaso. Debes actualizar tu app para usar el enrutamiento de conversaciones lo antes posible.

Cómo funciona

Una página de Facebook o una cuenta profesional de Instagram puede usar múltiples apps de mensajería para comunicarse con clientes o personas interesadas en su contenido. Por ejemplo, a quienes usan el servicio de atención al cliente se los puede dirigir a una experiencia automática, pero si esta no puede solucionar el problema, se puede dirigir al cliente a otra app con representantes de atención al cliente en vivo. Para transferir la conversación y los metadatos sobre la conversación, de una app a otra, o entre una app y una bandeja de entrada de la página de Facebook o de Instagram, el control de la conversación debe pasar de una app a la otra. El protocolo de traspaso permite esta transferencia.

De manera predeterminada, cuando un cliente envía un mensaje para iniciar una conversación, el estado de esta es inactivo. Las apps recibirán una notificación, mediante Webhooks, de que se recibió un mensaje y se está esperando un respuesta. Para recibir esta notificación, es necesario suscribir la app a los webhooks específicos de traspaso.

Cualquier app puede tomar el control de la conversación si está inactiva. La app que controla la conversación tiene la capacidad exclusiva de responder el mensaje. Solo una app a la vez tiene el control, y las otras apps no pueden enviar un mensaje hasta que la app controladora libera el control. Una vez que una app libera el control, la conversación se vuelve inactiva y la siguiente app puede tomar el control.

La app que controla la conversación recibe notificaciones de los webhooks de mensajes. Las demás apps reciben notificaciones de los webhooks específicos de traspaso.

Una conversación se volverá inactiva automáticamente cuando no haya recibido actividad durante 24 horas. Una app controladora puede extender el control pasadas las 24 horas si es necesario.

Si una app que no tiene el control de la conversación intenta enviar un mensaje a una persona, se devuelve un error 400 con el subcódigo de error 2018300.

Receptor principal

Si quieres que los mensajes sean manejados por una app específica después de recibirlos, puedes asignar esa app como receptor principal. El receptor principal recibe todos los mensajes nuevos de una conversación, puede transferir el control a otra app o a una bandeja de entrada de la página de Facebook o de Instagram, y puede tomar el control de una conversación desde otra app, si es necesario. Cuando una app que no es el receptor principal finaliza la conversación y libera el control, la conversación se configura como inactiva.

Si una conversación es ociosa y una persona envía un nuevo mensaje a tu página o cuenta, el receptor primario tiene el control de la conversación y recibe una notificación webhook sobre el nuevo mensaje.

Nota: No es obligatorio configurar un receptor principal.

Bandeja de entrada

No se puede asignar una bandeja de entrada de la página de Facebook o de Instagram como receptor principal. Sin embargo, si mueves el mensaje a la carpeta principal o respondes un mensaje en una conversación no controlada por la bandeja de entrada, esta toma el control de la conversación. Si respondes un mensaje marcado como Listo en la bandeja de entrada, el control sigue recayendo en la app controladora principal, el receptor principal, si se configuró, o se libera como inactivo.

Puntos de acceso a las conversaciones

Se puede asignar una conversación a una app específica cuando se utiliza un punto de acceso a las conversaciones de clic a Messenger. Una empresa puede usar un clic a Messenger para iniciar conversaciones con clientes con el fin de generar clientes potenciales y aumentar el reconocimiento de marca, entre otros.

Menú persistente

Cualquier app puede configurar el menú en el nivel de página a menos que se haya configurado un receptor principal. Si se configuró una app principal, solo esta podrá configurar o eliminar un menú en el nivel de página.

La app que controla la conversación puede configurar o eliminar el menú en el nivel del usuario, incluso si la app no es el receptor principal, y cualquier app puede configurar el menú en el nivel del usuario cuando la conversación esté inactiva.

Cuando un cliente selecciona un elemento de un menú, la app que creó el menú toma el control de la conversación. Esto se debe a que la app que creó el menú está configurada para administrar esos datos.

Llamada a la acción de postback

Cuando un cliente hace clic en la llamada a la acción de postback, la app que la creó toma el control de la conversación, incluso si lo tenía otra app. Esto se debe a que la app que creó la llamada a la acción de postback está configurada para administrar esos datos.

Encuestas a los clientes

Si se envía una encuesta mientras otra app controla la conversación, no se entregará hasta que la app libere el control y la conversación esté inactiva.

Componentes

Se necesitan los siguientes componentes para implementar correctamente el protocolo de traspaso de las apps de mensajes a las que se suscribió tu página de Facebook.

Tokens de acceso

Para las llamadas a los puntos de conexión del protocolo de traspaso, se necesita un token de acceso a la página solicitada por una persona que puede realizar la tarea MODERATE en la página.

Revisión de apps

La revisión de apps es obligatoria para las apps en las siguientes condiciones:

  • Cuando las usan las personas que no tienen un rol en la app
  • Cuando se permite que un agente humano le responda a los clientes

Función de agente humano

Si una app ha sido aprobada, a través de la revisión de apps, para usar la función de agente humano y el mensaje está etiquetado con la etiqueta de agente humano, podrá enviar un mensaje a una persona incluso si la app no tiene el control de la conversación Este es el único escenario en el que un mensaje puede ser enviado por una app que no controla la conversación.

Permisos

En el caso de las apps, el permiso pages_messaging es obligatorio para solicitar a los clientes permiso para acceder a los datos de los mensajes.

Webhooks

En el protocolo de traspaso, existen dos conjuntos de webhooks a los que se debe suscribir un app: los webhooks de mensajes y los de espera. Las notificaciones que recibe una app dependen del control de la conversación. Si una app tiene el control de una conversación, recibe las notificaciones de los webhooks de mensajes. Si una app no tiene el control de la conversación, recibe las notificaciones de los webhooks de espera.

Usos comunes

Servicio de atención al cliente

Una empresa utiliza una app en experiencias automáticas para responder las preguntas frecuentes, pero transfiere al usuario a otra app para ofrecerle un servicio de atención al cliente en vivo si la experiencia automática no soluciona el problema del cliente. La app automatizada se configura como receptor principal, por lo que todas las conversaciones son propiedad de la app automatizada. Cuando un representante del servicio de atención al cliente en vivo debe unirse a la conversación, la app del servicio de atención al cliente en vivo puede solicitar el control. Una vez que la app del representante en vivo haya finalizado la conversación, se devolverá el control de la conversación a la app de automatización. Si la app del representante en vivo necesita más tiempo para resolver el problema de un cliente, puede solicitar una extensión. Ambas apps deben suscribirse a los webhooks para asegurarse de que la conversación fluya de forma adecuada.

Campaña de marketing: Clientes potenciales de productos

Una empresa lleva a cabo una campaña de marketing con una experiencia automatizada para calificar a los clientes potenciales o proporcionar recomendaciones de productos en función de un cuestionario. Después de la calificación de clientes potenciales, la empresa usa la bandeja de entrada de la página de Facebook o de Instagram para hacer un seguimiento de los posibles clientes. La app automatizada se configura como receptor principal, por lo que todas las conversaciones son propiedad de la app automatizada. Una vez que la app automatizada haya completado la fase de calificación de clientes potenciales, pasará el control de la conversación a la bandeja de entrada de la página de Facebook o de Instagram. Una vez que la conversación se haya completado en la bandeja de entrada de la página de Facebook o en la de Instagram, marca la conversación como Listo. Así, se liberará el control de la conversación a la app principal. Ambas apps deben suscribirse a los webhooks para asegurarse de que la conversación fluya de forma adecuada.

Campaña de marketing - Anuncios de clic a Messenger

Una empresa lleva a cabo una campaña de marketing y envía a los clientes potenciales a una app automatizada para ofrecerles una experiencia de Messenger específica. La app automatizada se configura como receptor principal, por lo que todas las conversaciones son propiedad de la app automatizada. Cuando un representante del servicio de atención al cliente en vivo debe unirse a la conversación, la app del servicio de atención al cliente en vivo puede solicitar el control. Una vez que la app del representante en vivo haya finalizado la conversación, se devolverá el control de la conversación a la app de automatización. Si la app del representante en vivo necesita más tiempo para resolver el problema de un cliente, puede solicitar una extensión. Ambas apps deben suscribirse a los webhooks para asegurarse de que la conversación fluya de forma adecuada.

Prácticas recomendadas

  1. Recomendamos que las experiencias automatizadas se establezcan como la app receptora principal y cualquier app de agente en vivo se establezca como la app secundaria. Se recomienda que la app de agente en vivo escuche los eventos en espera y no tome medidas a menos que sea necesario.
  2. Usa siempre la API de obtención de control de conversación para comprobar si tienes el control de la conversación o no, luego llama a las otras APIs en función del escenario. No intervengas ni interrumpas si no tienes el control.
  3. Asegúrate de no enviar mensajes a la conversación cuando otra app tiene el control de la misma. Si tienes una app principal, usa la API de reclamación de control de la conversación solo si lo necesitas. En casos no urgentes o si tienes una app secundaria, pide el control de la conversación.
  4. Asegúrate de respetar un evento de solicitud de control de la conversación de cualquier otra app en todos los casos posibles y pasa el control de la conversación a la app solicitante. Si por alguna razón no puedes pasar el control de la conversación inmediatamente, usa la API de envío de Metadatos para enviar contexto adicional a la app solicitante y mantener una cola para pasar el control de la conversación cuando finalices.
  5. Si has terminado con la conversación, pasa el control de la conversación a una app solicitante previamente en cola o libera el control de conversación al modo inactivo, para que cualquier otra app pueda asumir la conversación. No hacerlo daría como resultado que la conversación se liberase automáticamente de tu app y pasase a modo inactivo después de 24 horas. Codifica este escenario y las modificaciones de estado relacionadas según corresponda.
  6. Si al llamar a la API de obtención del control de conversación notas que la conversación está inactiva, usa la solicitud de control de conversación para tomar el control de la misma, de manera que puedas enviar mensajes exclusivamente al usuario sin interrupciones y liberar la conversación una vez hecho.

Más información

Obtén más información sobre los componentes del protocolo de traspaso.