Ir al contenido

Blog


Creación de una experiencia de chat unificada en DoorDash

8 de febrero de 2022

|
Dan Behar

Dan Behar

Resolver los problemas de los clientes a gran escala no es tarea fácil, por lo que la solución más factible es implantar una función de chat; sin embargo, conseguir que estas experiencias de chat sean unificadas y cohesionadas es un reto en sí mismo. 

Los clientes de DoorDash a menudo quieren poder hablar con un representante de atención al cliente inmediatamente. Uno de los mecanismos que ofrecemos en nuestro sitio para facilitar esta comunicación es una función de chat basada en texto. En una entrada de blog anterior, describimos cómo integramos el chat en la aplicación DoorDash. Partiendo de esta base, lo hemos ampliado para incluir tanto la asistencia en directo como la automatizada.

Los problemas generales de nuestra actual solución de chat 

Nuestro chat heredado estaba fragmentado entre nuestros diferentes tipos de usuarios (consumidores, Dashers -nuestro nombre para los conductores de reparto- y comerciantes), utilizando múltiples aplicaciones que se ejecutaban en las diferentes plataformas (iOS, Android, Web). Esta división de las aplicaciones de cliente también incluía aplicaciones de soporte, lo que creaba una gran duplicación de esfuerzos y dificultaba la adopción de mejores prácticas de forma centralizada. 

Uno de los mayores problemas de nuestra solución de chat heredada era su incapacidad para transmitir los datos del usuario a un agente de soporte. Se pedía a un usuario que rellenara un formulario y luego se le ponía en cola para conectar con un agente. El agente acababa pidiendo la misma información, aunque el usuario ya hubiera rellenado el formulario. Necesitábamos una forma de pasar este contexto al agente. 

También queríamos automatizar gran parte del proceso de asistencia para que los clientes ni siquiera tuvieran que hablar con un agente de asistencia, sino que pudieran obtener inmediatamente la información que necesitaban a través de la aplicación. 

Crear una solución de chat mejor

Queríamos crear una plataforma de asistencia por chat para todos nuestros clientes que permitiera una gran reutilización en todas las plataformas y garantizara una experiencia de usuario coherente.

Crear una aplicación de chat mejor implicaba construir: 

  • Componentes de interfaz de usuario comunes para todas las implementaciones de chat en DoorDash
  • Un sistema backend extensible que permite la integración con diferentes servicios de terceros.
  •  Un sistema que permita una gran escalabilidad y resistencia

Creación de componentes comunes de interfaz de usuario

Queríamos crear una única implementación de chat que funcionara con el soporte así como con el chat de Consumidor a Dasher que se ofrece para cada pedido. Recientemente, hemos actualizado nuestro chat de consumidor a Dasher utilizando Sendbird. Antes de ese cambio, cuando un Dasher quería llegar a un consumidor enviaba un mensaje que el consumidor recibía como un mensaje SMS. Esta mensajería se migró para utilizar Sendbird y se integró directamente en la aplicación Consumer y Dasher. Nos basamos en este trabajo para crear una única implementación de chat, lo que nos permitió tener una experiencia coherente en todos los chats de DoorDash. También permitió que ambos flujos se beneficiaran de las mejoras y funcionalidades realizadas para el otro. 

Definiendo todos los componentes de las aplicaciones de plataformas anteriores en una única biblioteca podríamos crear un sistema de componentes de interfaz de usuario. Luego podríamos codificarlos en nuestra aplicación. Aunque había que crear una interfaz de usuario para cada una de las distintas plataformas (Web, iOS, Android), una vez creada, podíamos reutilizar el componente en los múltiples casos de uso en los que se mostrara el chat para esa plataforma. Siempre que fuera necesaria una personalización adicional, podíamos confiar en que cada plataforma disponía de un único módulo que podía importarse a las distintas aplicaciones y personalizarse según fuera necesario. Esto nos permitió crear los múltiples casos de uso más rápidamente que si tuviéramos que crear cada caso de uso de forma independiente.

Manténgase informado con las actualizaciones semanales

Suscríbase a nuestro blog de ingeniería para estar al día de los proyectos más interesantes en los que trabaja nuestro equipo.

Creación de un sistema backend extensible 

El sistema backend se construyó con múltiples capas, lo que nos permitió dividir las responsabilidades entre servicios internos y terceros. La utilización de terceros para funciones como el chat, el procesamiento del lenguaje natural (PLN) y la gestión de tickets por agentes nos permitió avanzar más rápido sin tener que crear funciones que no nos diferencian directamente. Mantuvimos en nuestro motor de toma de decisiones piezas que son fundamentales para nuestra lógica empresarial, como determinar el motivo esperado para ponerse en contacto o determinar posibles resoluciones para el cliente, aprovechando el trabajo existente realizado por otros equipos. Al mantener el control de la integración y del recorrido del cliente, podemos ver los distintos chats y su uso y actualizarlos fácilmente.

Para permitir que la plataforma gestione el procesamiento en capas comunes, hemos creado una nueva pasarela API para todas las diferentes devoluciones de llamada de terceros. Dado que el procesamiento no tiene por qué ser síncrono, podemos enviar los mensajes a una cola de mensajería para que se procesen de forma fiable. El procesamiento posterior es independiente de la fuente y se basa en los datos de los distintos eventos.

Figura 1: Flujo de datos a través de un servicio de chat centralizado, integrado con terceros

Resolver problemas mediante la automatización

Como el chat de asistencia mejorado está ahora más integrado en el ecosistema central de DoorDash, hemos empezado a aplicar la automatización mencionada anteriormente. Podemos ver el camino que siguió el usuario para abrir el chat, así como el estado actual, para proporcionar información inmediata al usuario, lo que puede reducir su tiempo de espera para obtener la información deseada, así como reducir los costes que implica un agente humano. 

Al integrar el chat con nuestra plataforma Decision Engine, hemos permitido que las operaciones incorporen cualquier funcionalidad, incluida la actualización del estado de un pedido, la emisión de créditos y reembolsos y la mensajería personalizada. Esto permitirá a DoorDash confiar más en la automatización y menos en los operadores humanos manuales. Por supuesto, los usuarios todavía pueden escalar en cualquier momento y obtener el apoyo DoorDash que esperan. 

Además de permitir al usuario seleccionar un conjunto predefinido de problemas, también le permitimos escribir el motivo por el que se pone en contacto con nosotros. Esto se transmite a un motor de PLN, que puede permitir poner en marcha los flujos de trabajo apropiados o escalarlos. Esto también debería permitirnos captar cosas como el sentimiento del usuario e identificar problemas comunes, proporcionándonos datos sobre escenarios de seguimiento comunes que deberíamos añadir. 

También se proporcionaron píldoras de respuesta rápida, que permitían al usuario indicar respuestas comunes.

Figura nº 2: Píldora de respuesta rápida ofrecida en un chat de asistencia de DoorDash

Desplegar la migración

Queríamos garantizar un despliegue fluido de la nueva solución de chat, así que empezamos con una funcionalidad mínima para un pequeño subgrupo de usuarios, y luego fuimos añadiendo más funcionalidad y usuarios en rampas posteriores.

El primer escenario con el que empezamos fue la experiencia web, por las siguientes razones:

  • No había ninguna función de chat después de la entrega, así que no tuvimos que preocuparnos de romper la funcionalidad existente al añadir más funciones al sitio.
  • El volumen en web es menor que en móvil, por lo que el riesgo era menor
  • Podíamos iterar más rápido al no estar atados a los ciclos de lanzamiento de móviles.

Una vez en marcha, controlamos varios parámetros clave de rendimiento, entre ellos: 

  • Opiniones de agentes y clientes
  • La tasa de error
  • Una métrica CSAT (satisfacción del cliente)
  • Cuánto tiempo se tardó en resolver los problemas de los clientes (AHT = tiempo medio de gestión)
  • El porcentaje de personas que volverían a ponerse en contacto con nosotros por el mismo problema (FCR = resolución en el primer contacto).
  • El ritmo al que se pondrían en contacto con un agente (MTO = tareas manuales por pedido)

Cuando tuvimos confianza en la experiencia y nuestras métricas de rendimiento fueron buenas, aumentamos rápidamente la automatización y las funciones adicionales. Entre ellas, la carga de imágenes, la asistencia a entregas en curso, la integración en las aplicaciones móviles Cx y Dx, la posibilidad de que los agentes transfieran chats y la automatización. 

Utilizamos indicadores de características para aumentar la velocidad de cada uno de forma independiente, de modo que pudiéramos aumentar la velocidad lentamente o reducirla rápidamente en caso de que se descubriera algún problema. Nuestro sistema de análisis capturó las métricas y pudimos verificar el comportamiento. 

Figura 3: Aumento del tráfico. Aumento y disminución de chats adicionales tras el despliegue inicial.

Conclusión

Ya estamos viendo los beneficios de la actualización del chat de asistencia en la web, que ya está disponible para Dashers en los móviles, y de la automatización de algunas de las respuestas. 

  • Hemos reducido las tasas de escalada y mejorado el CSAT. 
  • Ahora podemos automatizar determinadas condiciones, reduciendo el número de puntos de contacto manuales necesarios por entrega. 
  • Los clientes pueden resolver sus problemas con mayor rapidez y sin intervención manual, al tiempo que tienen la posibilidad de recurrir a una persona. 
  • Hemos reducido el tiempo necesario para poner en marcha automatizaciones adicionales con respecto a lo que ocurría antes con el procesamiento en plataformas comunes.
  • Con las capas de interfaz de usuario comunes, ahora ofrecemos una imagen de marca y un aspecto coherentes, lo que hace que el chat se sienta mucho más integrado en nuestras aplicaciones en todas las plataformas. 

About the Author

Trabajos relacionados

Job ID: 2915998
Ubicación
Sao Paulo, Brazil
Departamento
Ingeniería
Ubicación
Sunnyvale, CA
Departamento
Ingeniería
Ubicación
Pune, India
Departamento
Ingeniería
Ubicación
São Paulo, Brasil
Departamento
Ingeniería
Job ID: 2739485
Ubicación
San Francisco, CA; Tempe, AZ
Departamento
Ingeniería