Uniendo Asistentes Virtuales con Software Empresarial
Los asistentes virtuales se han convertido en parte de nuestro ecosistema web. Hoy en día la mayoría de los sitios cuentan con al menos uno, pues son muy buenos para automatizar tareas orientadas al público, brindando una comunicación directa a través del lenguaje natural. Así quienes interactúan solo tienen que escribir en un chat sin necesidad de aprender a utilizar un nuevo sistema. Ideales y prácticos para resolver tareas monótonas y repetitivas, los casos de uso son muchos y de lo más variados. Por ejemplo, respondiendo preguntas frecuentes en un sitio web, atendiendo y registrando turnos en un centro donde se presten servicios o incluso efectuando la venta por delivery en un local de comida. En el área de IA de Kunan con el tiempo atravesamos distintas implementaciones de asistentes virtuales. Cada una es diferente, está orientada a una nueva tarea y presenta con ello nuevos desafíos y puntos a abordar. Estos van desde el diseño de las conversaciones y de la experiencia de usuario, al desarrollo en sí y de las integraciones con otros sistemas necesarias para lograr el objetivo del asistente. Asistente virtual & CRM En todos los casos donde hay un sitio web u otro canal de atención al cliente, se genera en poco tiempo un gran volumen de consultas de usuarios. Con un asistente virtual se puede responder con mayor rapidez a preguntas frecuentes, dejando los casos especiales o de mayor complejidad para tratarlos por separado. Ésto se consigue con la integración de un asistente virtual y un CRM. Sucede entonces, que cuando el asistente detecta que no cuenta con una respuesta, puede ofrecer al usuario la posibilidad de registrar la consulta junto con sus datos en el CRM así la respuesta se podría hacer más tarde vía mail. ¿Pero cómo lo logramos? Parafraseando un poco a Newton, estamos sobre los hombros de gigantes. Concretamente RASA y SuiteCRM. Aquí entra en escena el Software Open Source y las comunidades que aportan a éstas tecnologías, ya sea con código, blogs, tutoriales, respondiendo preguntas en los foros, etc, el universo de opciones para aportar es enorme. RASA Utilizamos RASA, un framework escrito en Python para construir sistemas conversacionales. Permite un diseño personalizado de las conversaciones, al mismo tiempo que pone a disposición diversos algoritmos de inteligencia artificial para clasificar intenciones y detectar entidades. ¡Básicamente puedes desarrollar un asistente inteligente a gusto! e incluir mediante las actions todas las integraciones de backend que se necesiten. También cuenta con una comunidad muy activa donde siempre se pueden resolver dudas. SuiteCRM Por otro lado, trabajamos con SuiteCRM, un software libre orientado a la gestión de clientes. Está escrito en php y permite muchas modificaciones custom para adaptarlo según las distintas necesidades. En esta implementación nos enfocamos en registrar casos de consulta. Integración En una primera instancia, usamos directamente la API que provee SuiteCRM para hacer la conexión con el asistente. Ésta permite hacer operaciones sobre los registros de clientes, cuentas y casos. Luego decidimos armar una capa intermedia para hacer la integración lo más limpia posible. Del lado del asistente solo tuvimos que hacer las llamadas: Conclusiones Desde una visión netamente funcional, esta integración permite mejorar la productividad a quienes usan el CRM, ya que el bot responde consultas repetitivas dejando a los colaboradores, mayor tiempo para otras actividades más específicas y calificadas. Al mismo tiempo que mejora la experiencia del usuario ya que recibe una pronta respuesta a sus consultas. Una vez que ya pudimos hacer una integración sólo queda ir agregando más interacciones de chat como una forma más fácil de interactuar con el CRM. Por ejemplo, agendar una reunión con un representante, generar una nueva oportunidad de venta o consultar sobre la resolución de un ticket o caso de soporte. ¡Las posibilidades son muchas!class IntegracionCRM: @classmethod
def setCaso(cls, contactid, email, name_contact, description):
description = f”Contacto {name_contact}({email}): {description}”
datos = {
“url_crm”: URL_CRM,
“metodo”: “setCaso”,
“user”: USER,
“pass”: PASSWORD,
“asunto”: “Caso generado por el bot”,
“account_Id”: ACCOUNT_ID,
“contact_Id”: contactid,
“name_contact”: name_contact,
“description”: description
}
data = {“datos”: json.dumps(datos)}
response = requests.post(url=URL, data=data) if response.status_code == 200:
casoid = response.json().get(“id”)
return casoid @classmethod
def getCaso(cls, idd):
datos = {
“url_crm”: URL_CRM,
“metodo”: “getCaso”,
“user”: USER,
“pass”: PASSWORD,
“id”: idd
}
data = {“datos”: json.dumps(datos)}
response = requests.post(url=URL, data=data) if response.status_code == 200:
n_caso = response.json().get(“value”)
return n_caso
< Volver