¿Qué tengo que tener en cuenta a la hora de diseñar un bot?
Recientemente me hicieron una entrevista para Expansión sobre el tema de los bots: ¿Con quién hablamos cuando hablamos con un bot?. Hoy quería aprovechar para ampliar la información aparecida en el artículo con más detalles que puedan ser de utilidad para todos aquellos de nosotros que nos vamos a enfrentar a la creación de un bot.
¿Cómo se moldea y se le da una identidad a un bot?
Lo primero que tendríamos que hacer es definir qué entendemos por bot: Un bot es un servicio que puede realizar una acción en reacción a la interacción de un usuario o a un evento externo. A los bots que interactúan con los usuarios de manera conversacional se les conoce también como chatbots, y es el tipo de bots que podemos crear con el Microsoft Bot Framework, y a los que nos referiremos simplemente como bots de ahora en adelante.
Los bots conversacionales pueden interactuar con los usuarios mediante texto escrito, tarjetas interactivas (con imágenes, botones, etc.) o habla. Un bot puede ser muy sencillo y proporcionar respuestas automáticas asociadas a instrucciones simples, o puede ser mucho más sofisticado y utilizar técnicas de Inteligencia Artificial como el Procesado de Lenguaje Natural para entender al usuario, recordar interacciones anteriores, aprender de dichas interacciones mediante técnicas de Aprendizaje Automático, e integrarse con servicios de negocio existentes.
Resumiendo, podemos pensar en un bot como en una aplicación más, pero con la que podemos interactuar de manera conversacional.
Al igual que con cualquier aplicación o sitio web, lo más importante de un bot es que proporcione una gran experiencia de usuario, por lo que a la hora de diseñar un bot deberíamos tener en cuenta aspectos clave como los siguientes:
- ¿Resuelve el problema del usuario fácilmente y en el mínimo número de pasos?
- ¿Resuelve el problema mejor/más fácilmente/más rápido que por otras vías?
- ¿Puede utilizarse en los dispositivos y plataformas que le importan al usuario?
- ¿Ayuda al usuario a saber qué puede hacer con él mientras lo usa?
En definitiva, el proceso de diseño de un bot es muy similar al de cualquier otra aplicación o sitio web. Y sin perder de vista los aspectos anteriores, mientras diseñamos nuestros bots tendremos que pensar en temas como los siguientes:
- ¿Qué nombre único vamos a ponerle al bot? ¿Qué imagen o logo vamos a utilizar para identificarle en los diferentes canales con los que podemos interactuar con él? ¿Qué tipo de personalidad queremos/necesitamos que tenga el bot? ¿Cercano e informal? ¿O más serio? ¿Está alineado con nuestra imagen de marca?
- ¿Cómo queremos que interactúe con los usuarios? ¿Queremos que puedan conversar con el bot escribiendo texto libre? ¿O queremos guiar las interacciones mediante opciones o botones de acción? ¿Queremos que el bot responda con textos simples, o que utilice tarjetas elaboradas con texto, imágenes y botones de acción? ¿Utilizará el bot Procesado de Lenguaje Natural para que los usuarios interactúen con él de una manera más natural y expresiva, como lo harían cuando escriben a un amigo?
- ¿Cuál va a ser el flujo de la conversación y qué diálogos formarán parte de ella? Si en una aplicación tradicional el interfaz de usuario está formado por una serie de pantallas, en los bots el interfaz de usuario está formado por una serie de diálogos. Los diálogos permiten a los desarrolladores separar en varias áreas la funcionalidad del bot y guiar el flujo de la conversación. Por ejemplo, un diálogo ayudaría al usuario a buscar productos y, una vez seleccionado un producto, otro diálogo le ayudaría a crear un nuevo pedido. Además, tenemos que pensar en la navegación entre diálogos. ¿Cómo conseguimos que el usuario no se pierda en la conversación? ¿Puede ir hacia atrás en la conversación? ¿O cancelar una operación? ¿O acceder al "menú principal" del bot?
Al final todos estos aspectos de diseño dependerán en gran medida de las posibilidades que ofrezca el bot.
Para más información: Plan and design bots.
¿Hay perfiles tipo para los bot? Y de ser así, ¿qué perfiles serían?
Los bots en general pueden servirnos para automatizar todo tipo de tareas, incluso sin interacción por parte del usuario, y para proveernos de información sobre cualquier tema que se nos ocurra.
Los bots pueden tener diferentes capacidades, como por ejemplo:
- Pueden optimizar una única tarea concreta e intentar hacerlo mejor que las apps o web existentes, o ser un super bot como los asistentes personales inteligentes tipo Cortana.
- Pueden guardar su estado y recordar detalles de la conversación actual o de conversaciones anteriores con el mismo usuario, o directamente no hacerlo.
- Pueden ser proactivos y contactar directamente con el usuario, o unirse a conversaciones de varios usuarios.
- Pueden redirigir al usuario a un navegador web para completar tareas, o incluso pasarle la conversación de manera transparente a un humano que hable directamente con el usuario del bot.
- Aunque habitualmente utilizamos los bots dentro de aplicaciones como Skype, Facebook Messenger, Telegram, etc., también pueden integrarse con cualquier tipo de aplicación o sitio web existente para complementarlos.
Para más información: Bot Design Patterns, Four Types Of Bots, 7 Types of Bots.
¿Qué tipo de bots existen?
Existen muchos tipos de bots. Además de los ya mencionados chatbots con los que podemos conversar, existen bots como los que utilizan los motores de búsqueda para monitorizar y obtener URLs y datos de sitios web y APIs (Crawlers), bots que representan a personajes y reemplazan a humanos con los que jugar a los videojuegos (Game bots), bots que mueven información de una plataforma a otra (Transactional bots), bots que dan información (Informational Bots), bots que roban información (Scrapers), bots que utilizan las redes sociales, los foros o la sección de comentarios de una web para hacer spam (Spammers), etc., etc.
Para más información: Types of Bots: An Overview, Different Types of Bots.
¿Qué pueden hacer los bots para mejorar la relación entre las empresas y sus usuarios?
Los bots proporcionan una manera diferente de acercarnos a las personas, una nueva manera de interactuar con ellas, facilitando aún más el acceso a los diferentes servicios que proporcionemos. El hecho de que los usuarios puedan llegar a hablar con los bots con lenguaje natural, de la misma manera y en los mismos canales con los que se comunican con familiares o amigos, desde cualquier dispositivo y plataforma, hace que sean muy accesibles para cualquier tipo de persona.
Un ejemplo de esta mejora es la colaboración entre la Universidad CEU Cardenal Herrera, Encamina y Microsoft en la creación de un bot que haga de asistente virtual de profesores y alumnos. Este bot ayudará en el proceso de aprendizaje del alumno y le dará soporte 24 horas al día, 7 días a la semana. El bot será proactivo, acompañará al alumno durante su carrera, podrá detectar posibles problemas durante su aprendizaje, y ayudarle a conseguir metas que por sí solo posiblemente hubiera descuidado. El objetivo final es tener a los alumnos mejor preparados para el mercado laboral al que se enfrentarán al terminar sus estudios.
Para más información: Universidad CEU Cardenal Herrera reinventa la relación con sus alumnos gracias a Microsoft.
¿Qué problemas encontraremos al tratar con un bot?
A la hora de que un usuario trate con un bot es muy importante sentar bien sus expectativas desde el principio. Un bot no es una Inteligencia Artificial como las que vemos en algunas películas de ciencia ficción, que entiende todo lo que le decimos aunque no tenga que ver con aquello para lo que fue diseñado, que hace de todo y todo lo hace bien y mejor incluso que cualquier ser humano. Un bot es una aplicación más con la que tan sólo nos comunicamos de manera diferente, y los problemas que podemos encontrarnos al tratar con un ellos son los mismos que podremos encontrarnos a la hora de lidiar con cualquier otra aplicación o sitio web que no esté bien diseñado: que no sepamos qué hacer con él, que no haga lo que necesitamos, o que lo haga pero no lo haga bien.
¿Y cómo empiezo a crear mi propio bot?
Para aprender a crear bots debes leer la nueva documentación del Microsoft Bot Framework. Ahora, si primero quieres hacerte un idea de lo que supone desarrollar un bot puedes ver mi sesión del pasado Microsoft Summit: Bots of Anarchy, o directamente puedes crear tu propio bot con el taller que puedes encontrar aquí: Crea tu primer bot inteligente.
Y si quieres estar al tanto de todas las novedades del Bot Framework, no te pierdas su blog oficial. Ahí podrás ver por ejemplo las últimas novedades comentadas en el Build 2017 y sesiones relacionadas: Hay nuevos canales donde conectar nuestro bot, unas nuevas tarjetas adaptativas para que el bot muestre información, soporte a pagos desde el bot, analíticas para el bot, etc., etc.
Un saludo,
Alejandro Campos Magencio (@alejacma)
Microsoft Technical Evangelist
PD: Mantente informado de todas las novedades de Microsoft para los desarrolladores españoles a través del Twitter de MSDN España, el Facebook de MSDN España, el Blog de MSDN España y la Newsletter MSDN Flash de España.