Protocolo de traspaso

El protocolo de traspaso de la plataforma de Messenger permite que dos o más aplicaciones participen en una conversación pasándose el control de la conversación entre ellas. Las aplicaciones a las que te suscribas mediante una página de Facebook tendrán el protocolo de traspaso activado de forma automática.

Nota: El enrutamiento de conversaciones ya está disponible y pronto reemplazará al protocolo de traspaso. Debes actualizar la aplicación para usar el enrutamiento de conversaciones lo antes posible.

Funcionamiento

Una página de Facebook o una cuenta profesional de Instagram puede usar varias aplicaciones de mensajes para comunicarse con los clientes o los usuarios interesados en su contenido. Por ejemplo, en casos relacionados con el servicio de atención al cliente, los clientes pueden enviarse a una experiencia automatizada; no obstante, si dicha experiencia no puede solucionar el problema del cliente, el sistema puede enviarlo a otra aplicación con agentes de asistencia en directo. Para transferir la conversación, y los metadatos sobre la conversación, entre aplicaciones o entre una aplicación y la bandeja de entrada de una página de Facebook o la bandeja de entrada de Instagram, el control de la conversación debe pasarse de una aplicación a otra. El protocolo de traspaso posibilita esta transferencia.

De manera predeterminada, cuando un cliente envía un mensaje para iniciar una conversación, esta está inactiva. Las aplicaciones recibirán una notificación, mediante webhooks, que indica que se ha recibido un mensaje que espera una respuesta. Para recibir esta notificación, una aplicación debe suscribirse a los webhooks específicos del traspaso.

Cualquier aplicación puede tomar el control de la conversación mientras esté inactiva. La aplicación que tiene el control de la conversación tiene la capacidad exclusiva de responder al mensaje. Solo una aplicación tiene el control a la vez y las demás aplicaciones no pueden enviar ningún mensaje hasta que la aplicación que tiene el control lo libere. Cuando una aplicación libera el control, la conversación vuelve a estar inactiva y la siguiente aplicación puede tomar el control.

La aplicación que controla la conversación recibirá notificaciones de los webhooks de mensajes. Todas las demás aplicaciones recibirán notificaciones de los webhooks específicos del traspaso.

Una conversación volverá a quedar inactiva automáticamente cuando no haya recibido ninguna actividad durante 24 horas. Una aplicación que tiene el control puede ampliarlo más de 24 horas si es necesario.

Si una aplicación que no tiene el control de la conversación intenta enviar un mensaje a un usuario, se devolverá un error 400 con el subcódigo de error 2018300.

Receptor principal

Si quieres que una aplicación concreta gestione los mensajes una vez recibidos, puedes asignarla como receptor principal. El receptor principal recibe todos los mensajes nuevos de una conversación, puede transferir el control a otra aplicación, la bandeja de entrada de la página de Facebook o la bandeja de entrada de Instagram, y puede tomar el control de una conversación desde otra aplicación, en caso necesario. Cuando una aplicación que no es el receptor principal completa la conversación y libera el control, la conversación se establece en inactiva.

Si una conversación está inactiva y un usuario envía un nuevo mensaje a tu página o cuenta, el receptor principal tiene el control de la conversación y recibe una notificación de webhook sobre el nuevo mensaje.

Nota: No es obligatorio establecer un receptor principal.

Bandeja de entrada

La bandeja de entrada de una página de Facebook o la bandeja de entrada de Instagram no se pueden asignar como receptor principal. No obstante, si mueves el mensaje a la carpeta “Principal” o respondes a un mensaje en una conversación que no controla la bandeja de entrada, esta toma el control de la conversación. Si respondes a un mensaje marcado como Listo en la bandeja de entrada, el control sigue con la aplicación que lo tenía anteriormente, en el receptor principal (si se ha establecido) o se libera y el estado pasa a ser inactivo.

Puntos de acceso a las conversaciones

Una conversación se puede asignar a una aplicación específica cuando se usa un punto de acceso a las conversaciones de clic a Messenger (CTM). Una empresa puede usar un CTM para iniciar conversaciones con los clientes a fin de generar clientes potenciales, aumentar el reconocimiento de marca, etc.

Menú persistente

Cualquier aplicación puede establecer el menú de nivel de página, a menos que se haya establecido un receptor principal. Si se ha establecido una aplicación principal, esta será la única que podrá establecer o eliminar un menú de nivel de página.

La aplicación que tiene el control de la conversación puede establecer o eliminar un menú de nivel de usuario, incluso si la aplicación no es el receptor principal, y cualquier aplicación puede establecer un menú de nivel de usuario cuando la conversación está inactiva.

Cuando un cliente selecciona un elemento de un menú, la aplicación que creó el menú tomará el control de la conversación. Esto se hace porque la aplicación que creó el menú está configurada para gestionar esos datos.

Llamada a la acción de postback

Cuando un cliente hace clic en una llamada a la acción de postback, la aplicación que creó dicha llamada a la acción tomará el control de la conversación, incluso si otra aplicación tenía el control. Esto se hace porque la aplicación que creó la llamada a la acción de postback está configurada para gestionar esos datos.

Encuestas para clientes

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

Componentes

Se necesitan los siguientes componentes para implementar correctamente el protocolo de traspaso para las aplicaciones de mensajes a las que se ha suscrito una página de Facebook.

Identificadores de acceso

Se necesita un identificador de acceso a la página solicitado por un usuario que pueda realizar la tarea MODERATE en la página para las llamadas a los extremos del protocolo de traspaso.

Revisión de la aplicación

La revisión de la aplicación es obligatoria en los siguientes casos:

  • Utilizarán la aplicación usuarios que no tienen ningún rol en ella.
  • La aplicación permitirá a un agente humano responder a los clientes.

Función de agente humano

Una aplicación podrá enviar un mensaje a un usuario aunque dicha aplicación no tenga el control de la conversación si se ha aprobado, mediante la revisión de la aplicación, para usar la función de agente humano y el mensaje tiene la etiqueta de agente humano. Se trata de la única situación en la que una aplicación que no tiene el control de la conversación puede enviar un mensaje.

Permisos

El permiso pages_messaging es necesario para que las aplicaciones puedan solicitar permiso a los clientes para acceder a los datos de los mensajes.

Webhooks

En el protocolo de traspaso hay dos conjuntos de webhooks a los que se debería suscribir una aplicación: los webhooks de mensajes y los webhooks de espera. Las notificaciones que recibe una aplicación dependen del control de la conversación. Si una aplicación tiene el control de una conversación, la aplicación recibe las notificaciones de los webhooks de mensajes. Si ninguna aplicación tiene el control de la conversación, la aplicación recibe las notificaciones de los webhooks de espera.

Usos habituales

Servicio de atención al cliente

Una empresa usa una aplicación para las experiencias automatizadas de preguntas frecuentes, pero transfiere al cliente a otra aplicación para que reciba asistencia en directo si dicha experiencia no resuelve su problema. La aplicación automatizada se establece como receptor principal, de modo que todas las conversaciones pertenecen a la aplicación automatizada. Cuando un agente del servicio de asistencia en directo necesita unirse a la conversación, la aplicación de asistencia en directo puede solicitar el control de la conversación. Una vez que la aplicación del agente en directo haya terminado la conversación, el control se devuelve a la aplicación de automatización. Si la aplicación del agente en directo necesita más tiempo para gestionar el problema de un cliente, la aplicación puede solicitar una ampliación. Las dos aplicaciones deben suscribirse a los webhooks para garantizar que la conversación fluya correctamente.

Campaña de marketing: clientes potenciales de productos

Una empresa pone en circulación una campaña de marketing y utiliza una experiencia automatizada para clasificar clientes potenciales u ofrecer recomendaciones de productos según un cuestionario de productos. Tras la clasificación de los clientes potenciales, la empresa usa la bandeja de entrada de la página de Facebook o la bandeja de entrada de Instagram para hacer un seguimiento de dichos clientes. La aplicación automatizada se establece como receptor principal, de modo que todas las conversaciones pertenecen a la aplicación automatizada. Cuando la aplicación automatizada haya completado la fase de clasificación de los clientes potenciales, el control de la conversación se pasa a la bandeja de entrada de la página de Facebook o la bandeja de entrada de Instagram. Una vez terminada la conversación en la bandeja de entrada de la página de Facebook o la bandeja de entrada de Instagram, marca la conversación como Lista. Esta acción cederá el control de la conversación a la aplicación principal. Las dos aplicaciones deben suscribirse a los webhooks para garantizar que la conversación fluya correctamente.

Campaña de marketing: anuncios de clic a Messenger

Una empresa pone en circulación una campaña de marketing y envía a los clientes potenciales a una aplicación automatizada para que disfruten de una experiencia concreta de Messenger. La aplicación automatizada se establece como receptor principal, de modo que todas las conversaciones pertenecen a la aplicación automatizada. Cuando un agente del servicio de asistencia en directo necesita unirse a la conversación, la aplicación de asistencia en directo puede solicitar el control de la conversación. Una vez que la aplicación del agente en directo haya terminado la conversación, el control se devuelve a la aplicación de automatización. Si la aplicación del agente en directo necesita más tiempo para gestionar el problema de un cliente, la aplicación puede solicitar una ampliación. Las dos aplicaciones deben suscribirse a los webhooks para garantizar que la conversación fluya correctamente.

Prácticas recomendadas

  1. Recomendamos que las experiencias automatizadas se establezcan como la aplicación receptora principal y que cualquier aplicación de agente en directo sea la aplicación no principal. Recomendamos que la aplicación de agente en directo realice escuchas de los eventos en espera y que no actúe a menos que sea necesario.
  2. Usa siempre la API de toma de control del hilo para comprobar si tienes el control del hilo o no y, a continuación, llama a las otras API según la situación. No te interpongas ni interrumpas si no tienes el control.
  3. Asegúrate de no intentar enviar mensajes al hilo cuando otra aplicación tiene el control de la conversación. Si eres una aplicación principal, utiliza la API de toma de control del hilo únicamente si lo consideras necesario. Cuando no sea urgente o si no eres una aplicación principal, solicita el control del hilo.
  4. Asegúrate de respetar cualquier evento de control del hilo solicitado por otra aplicación siempre que sea posible y pasar el control del hilo a la aplicación que lo solicite. Si por alguna razón no puedes pasar el control del hilo inmediatamente, usa la API de paso de metadatos para enviar información adicional a la aplicación solicitante y mantener una cola para pasar el control del hilo cuando termines.
  5. Si has terminado con la conversación, pasa el control de hilo a una aplicación que lo haya solicitado previamente y que aún esté en cola o libera el control del hilo para que esté inactivo, de modo que cualquier otra aplicación pueda retomar el hilo. De lo contrario, el hilo se liberaría automáticamente de la aplicación y quedaría en modo inactivo pasadas 24 horas. Codifica esta situación y los cambios de estado asociados como corresponde.
  6. Si observas que el hilo está inactivo al llamar a la API de toma de control del hilo, usa la solicitud de control del hilo para tomar el control de manera que puedas enviar mensajes exclusivamente al usuario sin interrupciones y liberarlo cuando hayas terminado.