Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2022
UNIVERSIDAD DE ALCALÁ
Escuela Politécnica Superior
TRIBUNAL:
FECHA: 30/06/2022
Agradecimientos
A mi familia,
por confiar en mi desde el primer momento.
A mis amigos y pareja,
por ser mi punto de apoyo constante.
Me gustaría agradecer a mi tutora, Elisa Rojas Sánchez, por el empuje, la paciencia y las
ganas que has puesto a la finalización de este proyecto. Viendo la tendencia debido a mi
trabajo se dificultaba el avanzar y no tiraste la toalla. Gracias por inyectarme esas ganas
cuando las necesitaba.
También quisiera agradecer a mi profesor José Luis Lázaro que me enseñó y apoyó tanto
durante toda mi carrera. Me dio la fuerza necesaria como para tirar adelante con todo a
pesar de lo complicado.
Por último, a mis amigos, en concreto a mi amiga Lucía Zujeros. Ha sido la persona que
más veces me ha escuchado decir no puedo y más veces me ha dicho puedes con todo.
Gracias por estar conmigo en esta carrera de fondo apoyándome al máximo y siendo
partícipe de mis alegrías y mis decepciones.
ÍNDICE
I. Introducción ....................................................................................................... 4
1.1 Objetivo del proyecto............................................................................................ 7
1.2 Estructura del documento ..................................................................................... 8
II. ESTADO DEL ARTE .............................................................................................. 9
2.1 Historia del CRM ................................................................................................... 9
2.2 ¿Qué es la nube? ................................................................................................. 14
2.3 Salesforce ........................................................................................................... 15
2.3.1 Nubes de Salesforce ........................................................................................................... 15
2.3.1 Licenciamiento ................................................................................................................... 18
2.4 Oracle ................................................................................................................. 19
2.4.1 Nubes de Oracle ................................................................................................................. 19
2.4.1 Licenciamiento ................................................................................................................... 20
2.5 SAP ..................................................................................................................... 21
2.5.1 Nubes de SAP ..................................................................................................................... 22
2.5.2 Licenciamiento ................................................................................................................... 23
2.6 Ventajas sobre la utilización CRM en la nube....................................................... 23
2.7 Historia de los asistentes de voz .......................................................................... 25
2.8 Alexa ................................................................................................................... 29
2.8.1 ¿Qué es una Skill? .............................................................................................................. 29
2.8.2 Dispositivos Echo ............................................................................................................... 29
2.9 Google Assistant ................................................................................................. 32
2.9.1 ¿Qué es una acción? .......................................................................................................... 32
2.9.2 Dispositivos de Google Home ............................................................................................ 32
III. Análisis y diseño ........................................................................................... 35
3.1 Salesforce ........................................................................................................... 35
3.2 Amazon Web Services ......................................................................................... 37
3.3 Alexa Skills Kit ..................................................................................................... 38
IV. Implementación y Desarrollo........................................................................ 40
4.1 Implementación de Salesforce ............................................................................ 41
4.1.1 Modelo de datos ................................................................................................................ 41
4.1.2 Configuración de seguridad ............................................................................................... 55
4.1.3 Interfaz de usuario ............................................................................................................. 59
4.1.4 Configuración de Omnichannel.......................................................................................... 64
4.1.5 Configuración de asignación de Casos ............................................................................... 69
4.1.6 Configuración canales ........................................................................................................ 69
4.2 Desarrollo de skill de Alexa ................................................................................. 77
4.2.1 Configuración de la skill ..................................................................................................... 79
4.2.2 Configuración de Salesforce............................................................................................... 90
4.2.3 Función lambda ................................................................................................................. 91
V. EVALUACIÓN .................................................................................................... 96
5.1 Valoración de usuarios del sistema ................................................................... 101
VI. CONCLUSIONES .......................................................................................... 102
VII. BIBLIOGRAFÍA ............................................................................................ 104
VIII. REFERENCIAS.............................................................................................. 105
IX. ANEXO ....................................................................................................... 106
9.1 Data import....................................................................................................... 106
9.2 Data export ....................................................................................................... 110
ÍNDICE DE ILUSTRACIONES
FIGURA 1: PHILIP KOTLER, CATEDRÁTICO DE MARKETING INTERNACIONAL [1] .............................................................. 4
FIGURA 2: LOGOS DE CRM EN ESTUDIO [2] ........................................................................................................... 6
FIGURA 3: DISPOSITIVO DE ASISTENTE DE VOZ, ALEXA [3] ......................................................................................... 7
FIGURA 4: BASE DE DATOS EN LA ÉPOCA DE LOS 80 (HISTORIA DEL CRM) .................................................................... 9
FIGURA 5: TARJETEROS ROLODEX [5] ................................................................................................................. 10
FIGURA 6: MIKE MUNHEY Y PAT SULLIVAN, FUNDADORES DE ACT [6] ..................................................................... 10
FIGURA 7: COFUNDADORES DE ORACLE [7] ......................................................................................................... 11
FIGURA 8: SOCIOS FUNDADORES DE SAP [8] ....................................................................................................... 12
FIGURA 9: THOMAS SIEBEL [9] .......................................................................................................................... 13
FIGURA 10: MARC BENIOFF, FUNDADOR DE SALESFORCE [10] ................................................................................ 14
FIGURA 11: LOGO OFICIAL DE LAS NUBES DE SALESFORCE. [11] ............................................................................... 16
FIGURA 12: LOGO DE LA NUBE DE VENTAS [12] .................................................................................................... 16
FIGURA 13: LOGO DE LA NUBE DE SERVICIOS [13]................................................................................................. 16
FIGURA 14: LOGO DE LA NUBE DE MARKETING [14] .............................................................................................. 17
FIGURA 15: LOGO DE LA NUBE DE COMUNIDADES [15] .......................................................................................... 17
FIGURA 16: LOGO DE LA NUBE DE VENTAS DE SAP [16] ......................................................................................... 22
FIGURA 17: LOGO DE LA NUBE DE SERVICIOS DE SAP [17] ...................................................................................... 22
FIGURA 18: LOGO DE LA NUBE DE MARTKETING DE SAP [18] .................................................................................. 23
FIGURA 19:IMAGEN DE (AUDREY) [19] .............................................................................................................. 25
FIGURA 20: IMAGEN DE (SHOEBOX) [20] ............................................................................................................ 26
FIGURA 21: LOGO DE SIRI [21] ......................................................................................................................... 27
FIGURA 22: LOGO DE CORTANA [22] ................................................................................................................. 27
FIGURA 23: LOGO DE ALEXA [23] ...................................................................................................................... 28
FIGURA 24: LOGO DE GOOGLE ASSISTANT [24] .................................................................................................... 28
FIGURA 25: ECHO DE AMAZON [25] .................................................................................................................. 30
FIGURA 26: ECHO PLUS DE AMAZON [26]........................................................................................................... 30
FIGURA 27: ECHO DOT DE AMAZON [27] ........................................................................................................... 31
FIGURA 28: ECHO SPOT DE AMAZON [28] .......................................................................................................... 31
FIGURA 29: GOOGLE HOME [29] ...................................................................................................................... 33
FIGURA 30: GOOGLE HOME MINI [30] ............................................................................................................... 33
FIGURA 31: GOOGLE NEST AUDIO [31] .............................................................................................................. 34
FIGURA 32: GOOGLE NEST HUB [32] ................................................................................................................. 34
FIGURA 33: MODELO DE DATOS ........................................................................................................................ 37
FIGURA 34: CONSOLA DE AWS ......................................................................................................................... 38
FIGURA 35: ALEXA DEVELOPER CONSOLE ............................................................................................................ 39
FIGURA 36: PROCESO DE SOPORTE ..................................................................................................................... 41
FIGURA 37: CONFIGURACIÓN DE CUENTAS PERSONALES ......................................................................................... 42
FIGURA 38: FORMATO DE PÁGINA DE CUENTAS PERSONALES ................................................................................... 44
FIGURA 39: FORMATO DE PÁGINA DE CASOS ........................................................................................................ 45
FIGURA 40: ACTIVACIÓN DE PEDIDOS ................................................................................................................. 46
FIGURA 41: FORMATO DE PÁGINA DE PEDIDOS ..................................................................................................... 47
FIGURA 42: FORMATO DE PÁGINA DE LÍNEA DE PEDIDO .......................................................................................... 48
FIGURA 43: FORMATO DE PÁGINA DE PRODUCTO .................................................................................................. 49
FIGURA 44: FORMATO DE PÁGINA DE ENTRADAS DE LISTA DE PRECIOS ....................................................................... 49
FIGURA 45: FORMATO DE PÁGINA DE CATÁLOGO .................................................................................................. 50
FIGURA 46: CREACIÓN DE PROCESO DE SOPORTE DE INCIDENCIAS Y CONSULTAS ........................................................... 50
FIGURA 47: CREACIÓN DE PROCESO DE SOPORTE DE SUGERENCIAS ........................................................................... 51
FIGURA 48: SELECCIÓN DE ESTADOS DE PROCESO DE SOPORTE DE INCIDENCIAS Y CONSULTAS ......................................... 51
FIGURA 49: SELECCIÓN DE ESTADOS DE PROCESO DE SOPORTE DE SUGERENCIAS .......................................................... 51
FIGURA 50: CONFIGURACIÓN TIPO DE REGISTRO INCIDENCIAS Y CONSULTAS ............................................................... 52
FIGURA 51: CONFIGURACIÓN TIPO DE REGISTRO DE SUGERENCIAS ............................................................................ 52
FIGURA 52: PANTALLA DE INICIO DE CONFIGURACIÓN DEL FLOW .............................................................................. 53
FIGURA 53: PANTALLA DE CONFIGURACIÓN DE DECISIÓN EN EL FLOW ........................................................................ 54
FIGURA 54: PANTALLA DE OBTENCIÓN DE TIPO DE REGISTRO ................................................................................... 54
FIGURA 55: PANTALLA DE MODIFICACIÓN DE REGISTROS ........................................................................................ 55
FIGURA 56: FLOW DE ASIGNACIÓN DE TIPOS DE REGISTRO....................................................................................... 55
FIGURA 57: JERARQUÍA DE ROLES EN SALESFORCE ................................................................................................. 58
FIGURA 58: PANTALLA DE INICIO EN CONSOLA DE SALESFORCE................................................................................. 60
FIGURA 59: CONFIGURACIÓN DE APLICACIÓN DE CONSOLA I .................................................................................... 60
FIGURA 60: CONFIGURACIÓN DE APLICACIÓN DE CONSOLA II ................................................................................... 61
FIGURA 61: CONFIGURACIÓN DE APLICACIÓN DE CONSOLA III .................................................................................. 61
FIGURA 62: CONFIGURACIÓN DE APLICACIÓN DE CONSOLA IV .................................................................................. 62
FIGURA 63: VISTA DE CONSOLA DE SERVICIO CON REGISTRO ABIERTO ........................................................................ 62
FIGURA 64: PÁGINA DE REGISTRO DE CUENTAS PERSONALES.................................................................................... 63
FIGURA 65: CONFIGURACIÓN DE LA COLAS DEL OBJETO CASOS ................................................................................. 64
FIGURA 66: PANTALLA DE CONFIGURACIÓN DE CANALES DE SERVICIO ........................................................................ 65
FIGURA 67: CONFIGURACIÓN DE ESTADO DE SERVICIO EN LÍNEA ............................................................................... 66
FIGURA 68: CONFIGURACIÓN DE ESTADO DE PRESENCIA OCUPADO ........................................................................... 66
FIGURA 69: PANTALLA DE CONFIGURACIÓN DE PRESENCIA ...................................................................................... 67
FIGURA 70: PANTALLA DE CONFIGURACIÓN DE ENRUTAMIENTO ............................................................................... 68
FIGURA 71: PANTALLA DE CONFIGURACIÓN FINAL DE COLA ASOCIADA A OMNICHANNEL ............................................... 68
FIGURA 72: CONFIGURACIÓN DE REGLAS DE ASIGNACIÓN DE CASOS .......................................................................... 69
FIGURA 73: PANTALLA DE CREACIÓN DE CUENTA DE GOOGLE ................................................................................... 70
FIGURA 74: PANTALLA DE CONFIGURACIÓN DE EMAIL-TO-CASE ................................................................................ 71
FIGURA 75: CORREO DE VERIFICACIÓN DE CREACIÓN DE EMAIL-TO-CASE .................................................................... 72
ÍNDICE DE TABLAS
TABLA 1: LICENCIAS DE LAS PRINCIPALES NUBES DE SALESFORCE ............................................................................... 18
TABLA 2: LICENCIAS DE LA NUBE DE MARKETING DE SALESFORCE ............................................................................. 19
TABLA 3: LICENCIAS ORACLE SALES CLOUD .......................................................................................................... 21
TABLA 4: LICENCIAS ORACLE SERVICE CLOUD ....................................................................................................... 21
TABLA 5: CAMPOS DEL OBJETO CUENTA PERSONAL ................................................................................................ 43
TABLA 6: CAMPOS DEL OBJETO CASO .................................................................................................................. 44
TABLA 7: CAMPOS DEL OBJETO PEDIDO ............................................................................................................... 46
TABLA 8: CAMPOS DE LÍNEA DE PEDIDO .............................................................................................................. 48
TABLA 9: CAMPOS DE PRODUCTO ...................................................................................................................... 48
TABLA 10: CAMPOS DE ENTRADA DE LISTA DE PRECIOS ........................................................................................... 49
TABLA 11: CAMPOS DE OBJETO CATÁLOGO .......................................................................................................... 49
TABLA 12: TABLA DE VISIBILIDAD DE OBJETOS DE SALESFORCE ................................................................................. 57
TABLA 13: DEFINICIÓN DE SLOTS UTILIZADOS EN LA SKILL ........................................................................................ 82
TABLA 14: CASOS DE USO DE USUARIOS FINALES ................................................................................................... 97
Resumen
La empresa en la que se basa este trabajo de final de grado es una empresa ficticia cuyo
punto de partida es un sistema de gestión de información obsoleto (Excel, email y papel).
1
Abstract
This final degree project entitled “Development of an incident management system with
Salesforce”, performs the design and development of a Cloud management system that
allows a company to have a centralized management for customer information and their
incidents, doubts and suggestions. It is proposed to have different case entry channels
such as email, web and the Alexa device.
The company on which this final degree project is based is a fictitious company whose
starting point is an obsolete information system comprised of excel, email and paper
notes.
The main objective of this project is to provide the company with a centralized
information system that facilitates the management of incidents, doubts or suggestions of
their customers, and, consequently, verify that are the customer satisfaction level
increases, in addition to the fact that the time of the agents thar are using the system
decreases in such a way they become more productive.
2
Glosario y abreviaturas
• API: Es la interfaz de programación de aplicaciones que se usa para integrar
softwares de diferentes aplicaciones.
• CRM: Sistema a través del cual se puede establecer una relación personalizada
con los clientes o clientes potenciales de una empresa
• CTI: Sistema que permite la integración de ordenadores con sistemas de telefonía.
• Enterprise contracts: Funcionalidad que permite mejorar el proceso de
contratación estándar aportando rapidez en las búsquedas, renovaciones y
visibilidad de los contratos dentro del CRM
• ERP: Software que se utiliza para almacenar información o gestionar acciones
comerciales, de facturación o contractuales en una empresa.
• Forecast: pronóstico
• Hashtags: Define una palabra que es clave y lo convierte en vínculo, permitiendo
así exportar toda la información referente a dicha palabra.
• Journey: Funcionalidad que permite construir relaciones estrechas con el cliente
respondiendo a la actividad de un cliente durante su ciclo de vida
• Knowledge: Funcionalidad que permite tener una base de datos de preguntas
frecuentes de Salesforce
• Oracle Voice: Sistema de chat a través del cual el cliente puede comunicarse con
la empresa.
• Out of the box: Funcionalidad no incluida en el paquete contratado y que puede
ser desarrollada por un tercero.
• TFG: Trabajo de final de grado
3
I. Introducción
El objetivo principal de cualquier empresa, independientemente el tamaño que tenga es
la captación y la retención de clientes. Es por esto, que uno de los factores de mayor
relevancia, es la comunicación con el cliente. Existen dos métricas por las cuales se puede
medir la fidelidad del cliente a la empresa:
• NPS, Net Promoter Score: Es la métrica orientada a la retención de clientes.
En esta métrica permite conocer si el cliente recomendase el servicio ofrecido
por la empresa a su entorno basándose en su experiencia con la misma.
• CHURN, Tasa de cancelación de clientes: Es la métrica orientada al
porcentaje de bajas que sufre una empresa de sus clientes. Esto permite la
mejora de los servicios en la empresa, pudiendo realizar un análisis de las
bajas de los clientes.
Teniendo en cuenta estas dos mediciones se puede deducir que una buena comunicación
con el cliente favorece la recomendación de la empresa y ayuda a reducir el número de
bajas de servicios, ya que se conoce la insatisfacción del cliente con respecto a los
mismos.
El establecimiento de una comunicación con el cliente que sea sencilla por diversos
canales y, que, además, en esa comunicación, el trabajador sea capaz de tratar la consulta
del cliente de manera ágil, aumenta el grado de satisfacción del cliente.
Philip Kotler, una de las referencias en el mundo del Marketing, en su libro Dirección de
Mercadotecnia, define la satisfacción del cliente como “El nivel de satisfacción es el nivel
del estado de ánimo de una persona que resulta de comparar el rendimiento percibido de
un producto o servicio con sus expectativas.” (Kotler, 1996)
4
Las siglas CRM, Customer Relationship Management, tal y como su nombre indica, se
refiere a todo sistema o proceso a través del cual se puede establecer una relación
personalizada con los clientes o clientes potenciales de una empresa. Con este tipo de
herramientas, la empresa aumenta su rendimiento, la satisfacción del cliente e incluso,
realizando un análisis del feedback recibido por los clientes satisfechos, puede
incrementar sus ventas.
Los tipos de CRM no solo se clasifican por su usabilidad con respecto a la empresa, sino
que en función de donde se localicen físicamente este tipo de sistemas se tiene la siguiente
clasificación:
• CRM on premise: Programa informático localizado en los servidores propios
de la empresa. En general, este tipo de aplicaciones suelen estar creadas a
medida completamente para la empresa o para un tipo de negocio en
concreto.
El espacio de almacenamiento de datos en este tipo de aplicaciones es
limitado, ya que la instalación se hace en un dispositivo físico. Es por esto,
que la instalación de estos programas es compleja ya que, las empresas
suelen tener contratado otro espacio de almacenamiento donde tienen sus
bases de datos, y es necesario realizar una integración del CRM con la base
de datos de la empresa.
En cuanto al coste de este tipo de herramientas, el usuario compra una
licencia de la herramienta que no tiene caducidad. Si la herramienta necesita
alguna actualización, el usuario asume el coste de la misma.
5
que el usuario compre de la nube, podrá almacenar más o menos
información.
Por tanto, dado que el programa no se encuentra en un dispositivo físico, el
coste de instalación es nulo. Solo se necesita un ordenador con acceso a
internet.
En cuanto al coste, el usuario compra una licencia con un tiempo
determinado de validez. Si la licencia caduca, el usuario pierde acceso al
programa y consigo a los datos almacenados en la nube.
En función de la política de la empresa desarrolladora de la herramienta de
CRM, cuando se finaliza el tiempo de una licencia, permiten un tiempo
limitado para extraer toda la información de la nube.
En caso de que la herramienta tenga alguna actualización disponible, el
usuario la tendrá disponible sin ningún tipo de coste adicional.
Definidos los tipos de CRM existentes, en este proyecto nos centraremos en desarrollar
un CRM Colaborativo basado en la nube.
1
Enterprise Resourcing Plan (ERP): Software que se utiliza para almacenar información o gestionar
acciones comerciales, de facturación o contractuales en una empresa.
6
• integraciones con CTI, Computer Telephony Intergation2,
• e incluso, integraciones con dispositivos de asistentes de voz.
Alexa es asistente de voz desarrollado por la empresa Amazon que te permite interactuar
con el a través de ciertos comandos de voz. Estos comandos de voz son programas
desarrollados por terceros (o por amazon) y que se instalan en el dispositivo. Por defecto,
amazon incorpora algunas skills como juegos, noticias o el tiempo. En este proyecto se
desarrollará una skill que permita al cliente abrir o saber el estado de sus reclamaciones
abiertas en la empresa.
Amazon propone para su dispositivo un control parental que permite inhabilitar el uso de
Alexa en ciertas skills para evitar, por ejemplo, compras no deseadas. Se realizará una
investigación acerca de la seguridad que se puede proporcionar en Alexa sobre el control
parental. A nivel de Alexa, se realizará la activación del control parental y se investigará
a nivel de Skills si es posible garantizar alguna clave de seguridad para evitar la apertura
de incidencias no deseadas.
Para la integración con Alexa, el autor del proyecto realizará una formación a través de
la página oficial de Salesforce con los módulos:
• Alexa Development Basics
• Build an Alexa Skill
• Build a Private Alexa for Business Skill for Salesforce
2
Computer Telephony Integration (CTI): Sistema que permite la integración de ordenadores con sistemas
de telefonía
7
Al final del proyecto se realizará una encuesta de valoración del sistema, además de las
pruebas unitarias que la empresa deberá hacer para corroborar su funcionamiento, a los
trabajadores de la empresa, los cuales evaluarán si el sistema ha facilitado sus labores
administrativas. También los clientes realizarán una valoración, puntuando si la
atención recibida por la empresa ha sido mejor gestionada y por consiguiente, han
resuelto sus incidencias de manera más ágil.
8
II. ESTADO DEL ARTE
Las siglas CRM, del inglés Customer Relationship Management, hacen referencia a los
sistemas software que permiten tener registradas todas las comunicaciones que tiene una
empresa con sus diferentes clientes. Este sistema, permite conocer el estado del cliente
con respecto a la empresa, pudiendo realizar un análisis de sus necesidades y permitiendo
a la empresa trazar planes comerciales de captación y retención de clientes.
Por último, se realizará una descripción del dispositivo Alexa y una comparativa con otros
dispositivos con los que se podría realizar el proyecto. Además, se realizará un estudio
sobre la evolución de los sistemas de asistentes de voz a lo largo de la historia.
Kate Kestenbaum y Robert D. “Bob” fueron los creadores de algunas de las metricas que
a día de hoy se siguen utilizando. Una de ellas, CLV, del inglés Customer Lifetime Value,
permitía conocer el valor que aporta al negocio en un periodo de tiempo cerrado. Esta
métrica permitía establecer estrategias comerciales que, a día de hoy, se utilizan para
incrementar las ventas y mejorar el servicio dado al cliente.
En el año 1967 se fundó la consultora Kestenbaum & CO por Kate y Robert. Ambos
coaboraron con Robert Shaw, especialista en Marketing y consultor, realizando
desarrollos en las bases de datos de empresas como Barclays. Robert Shaw, fue la persona
que añadió el campo teléfono a las bases de datos de marketing.
9
Previo a la creación de programas que permitirían tener una gestión centralizada de la
información de una empresa, estas mismas gestionaban su información a través de papel
y los famosos Rodolex.
Los tarjeteros Rodolex, cuyo nombre proviene del acrónimo de Rolling e Index, fueron
inventados en el año 1956 por Hildaur Neilsen. Su funcionamiento consistía en que cada
una de las tarjetas del Rodolex, contenía la información de un cliente. Además, el usuario
podía girar el eje hasta encontrar la tarjeta del cliente que requería. Esta herramienta fue
utilizada por los comerciales de las empresas a modo de base de datos de clientes.
El invento del Rodolex no fue importante porque fuera una revelación, sino porque
vaticinó el crecimiento de las herramientas destinadas a la gestión de los datos de las
empresas.
ACT era un desarrollo sencillo que permitía sustituir los anticuados tarjeteros por un
sistema de gestión basado en un ordenador, el cual permitía a los comerciales gestionar
toda su cartera de clientes. Lo curioso de este CRM, y a pesar de ser uno de los primeros
sistemas que permitían gestionar la información desde un ordenador, es que actualmente
es uno de los CRM más utilizados del mundo.
10
Años más tarde, en 1995 Pat Sullivan desarrolla SFA, del inglés Sales Force Automation.
SFA es un conjunto de sistemas de información utilizados en CRM que permitieron la
automatización del proceso de ventas que realizaban los comerciales de las empresas.
Entre las tareas automatizadas se encontraban el seguimiento de la actividad del cliente,
registros de actividad del comercial con el cliente incluso permitia el cálculo automático
del forecast 3de ventas. Este desarrollo permitió que las empresas obtuvieran un mayor
rendimiento en lo que a tareas comerciales se refiere, además de reducir el riesgo de la
fuga de clientes.
Transversal a todos estos años, el ingeniero Larry Ellison junto con otros socios, fundan
una empresa de consultoría. Esta empresa, conocida como Software Development
Laboratories (SDL), basó su tecnología en uno de los mayores estudios conocidos hasta
la fecha sobre bases de datos escrito por George Koch (1970). Una de las curiosidades
del nacimiento de esta empresa es que, los cofundadores de la misma, Lawrence J. Ellison
y Robert N. Miller, convencieron a la Agencia Central de Inteligencia (CIA) para firmar
un proyecto cuyo nombre en clave era “Oracle”.
Tras varios cambios de nombre, la empresa antes conocida como SDL, pasó a nombrarse
Oracle Corporation, empresa de software la cual posee uno de los más potentes CRM en
la actualidad.
Con el anuncio que la empresa IBM realizó indicando que a partir de ese momento se
enfocarían en realizar bases de datos que mejorasen aspectos como la rapidez o eficiencia
de los sistemas de bases de datos y con la utilización del lenguaje SQL (Structure Query
Language), Oracle se propuso construir uno de los primeros modelos de bases de datos
relacionales.
3
Forecast: pronóstico
11
Alrededor del año 1982, Oracle tenía aproximadamente un valor de 2.5 millones de euros
contando con tan solo 24 trabajadores. Actualmente Oracle es una de las más grandes
empresas del sector y, por ejemplo, en 2004, reporto unos ingresos de 8100 millones de
dólares.
Alrededor del año 1970, un grupo de ingenieros trabajaron en un proyecto interno de IBM
con el software que esta empresa obtuvo. Durante el desarrollo de dicho proyecto, los
cinco ingenieros que participaron en él decidieron dejar la empresa IBM para poder crear
la suya propia. En el año 1972 surge una de las mayores empresas en el sector del CRM
actuales, SAP.
Un año más tarde de su fundación, SAP lanzó al mercado el primer programa que permitía
tener funcionalidades de contabilidad, además de las funcionalidades estándar de su
CRM. Tras el éxito de su primer producto, la sede central de la empresa se trasladó a
Walldrof, Alemania, y tres años más tarde, en el 1979 lanzó la segunda versión de su
primer producto. Sin embargo, este segundo producto no fue tan exitoso como el primero.
Fue en el año 1985 cuando consiguió estar a la altura de su predecesor.
Por otro lado y unos años más tarde, uno de los trabajadores de la empresa Oracle, Tomas
Siebel, en el año 1993 fundó la empresa Siebel Systems. Esta empresa comienza siendo
una empresa orientada a la realización de automatizaciones en los procesos de venta pero,
12
al convertirse en el líder mundial del mercado, expande su negocio introduciéndose en el
mundo del CRM.
En la actualidad, esta empresa sigue funcionando y actualmente tiene más de 700
empresas consideradas colaboradoras, como Oracle, y cuenta con aproximadamente 7000
trabajadores.
Alrededor del año 1999, sucedieron varios cambios importantes para la industria del
CRM que marcaron la historia. Algunas compañías comenzaron a ofrecer productos
orientados a otros dispositivos como móviles y además, comenzaron a utilizar internet
para mejorar sus soluciones. Estos hitos permitieron un desarrollo exponencial de los
sistemas CRM que hasta la época se conocía.
En el mismo año en el que la revisa Fortune nombra a la empresa Siebels como empresa
con el crecimiento más rápido del país, otro trabajador de la compañía Oracle, funda una
de las empresas que actualmente tiene otro de los sistemas de CRM más potentes.
Como anécdota cabe destacar que los cuatro desarrolladores del prototipo no vestían con
ropas ejecutivas ni mucho menos, vestían con ropa completamente deportiva y nombraron
a la mascota de Marc, su perro Koa, como jefe del amor. En este aspecto, se puede ver la
influencia que tuvo sobre Marc Benioff su trabajo como desarrollador de la empresa
Apple, la cual tenía filosofías parecidas.
13
Figura 10: Marc Benioff, fundador de Salesforce [10]
Algo que caracteriza a la empresa de Marc Benioff, es que, en sus inicios, redactaron unn
documento en el que se citaban los objetivos de la empresa y que sus empleados, pasados
y futuros, debían tener en cuenta. Este documento denominado V2MOM, representa las
siglas de Visión, Valores, Métodos, Obstáculos y Medidas. Actualmente, la empresa
continúa aplicando lo estipulado en el documento V2MOM tanto en la dirección de la
empresa, como en las decisiones que se toman en la misma.
La nube, además de abaratar costes, permite que los empleados que la utilizan dentro de
una empresa tengan mayor flexibilidad dado que pueden acceder a la información desde
cualquier dispositivo que tenga acceso a internet.
Otra de las ventajas de la utilización de la nube es que los datos tienen una fiabilidad y
seguridad mayor ya que no se almacenan en un dispositivo físico, sino que toda la
información está compartida entre los empleados y no es posible que se pierda por
desperfectos de los equipos que los contienen.
14
A continuación, se detallan algunos de los sistemas en estudio que utilizan la nube como
método de almacenaje de datos, a pesar de que algunos de ellos partieron de el
almacenamiento de datos en dispositivos de hardware.
2.3 Salesforce
Salesforce (Benioff, Salesforce CRM, 1999), empresa fundada por Marc Benioff en el
año 1999, desarrolló una plataforma basada en la nube que permite a cualquier empresa
que lo utilice, tener toda su información centralizada. No solo permite almacenar la
cartera de clientes de una empresa sino, sus oportunidades de negocio, clientes
potenciales y, además, incidencias en el servicio prestado por la misma empresa.
El enfoque de esta herramienta de gestión es poder mejorar las relaciones con clientes,
permitiendo a los mismos tener una mejor comunicación con la empresa y, a esta última,
tener toda la información necesaria de cada uno de sus clientes accesible desde cualquier
punto.
La estructura de Salesforce está basada en diversas nubes. Cada una de las nubes que
conforman la plataforma Salesforce aporta unas funcionalidades estándar, lo que hace
que el cliente pueda obtener un sistema de CRM orientado únicamente a la nube que el
necesite.
15
Figura 11: Logo oficial de las nubes de Salesforce. [11]
Nube de ventas
Esta nube permite tener un mayor rendimiento a nivel comercial, ya que, cada uno de
los comerciales de la empresa, podrá tener acceso a su propia cartera de clientes,
gestionar las ventas que ha realizado, e incluso, permite realizar automatizaciones en
cuanto a los vencimientos de los contratos.
Nube de servicios
16
orientadas al soporte y resolución de incidencias como pueden ser el correo electrónico,
formularios web, integraciones con centralitas de telefonía e incluso una base de
conocimientos pública para que los clientes puedan solucionar incidencias comunes por
ellos mismos, sin tener la necesidad de contactar con la empresa.
Nube de marketing
Nube de comunidades
Existen varios tipos de comunidades que pueden ser utilizadas. Para las comunidades de
cliente, éste puede consultar a tiempo real el estado de sus incidencias, contactar con la
empresa, crear nuevas incidencias o incluso, si la comunidad tiene preguntas frecuentes,
solventar problemas que pueda tener en la utilización de un servicio.
Para las comunidades de socios, éstos pueden consultar el estado de sus oportunidades,
contratos o incluso visualizar informes para tener una visión ampliada de su trayectoria
con la empresa.
17
2.3.1 Licenciamiento
Para la utilización de esta plataforma, solo es necesario tener conexión a internet y obtener
una licencia por cada uno de los usuarios que la utilice. Cada una de las nubes
mencionadas en el punto anterior se adquiere a través de una licencia propia. De esta
manera, si la empresa no desea tener funcionalidades de otras nubes, solo se le
proporciona las funcionalidades estándar que vienen en el sistema por defecto. Este punto
hace que los costes se abaraten, teniendo en cuenta que muchos de los procesos que
Salesforce tiene implementados de serie, cubren las necesidades básicas de cualquier
empresa que no enfoque la utilización de su CRM en varias nubes sino solamente en una.
En función del tipo de licenciamiento que la empresa contrate con Salesforce, podrá
obtener más o menos funcionalidades estándar. A continuación, se muestra una tabla con
las diferentes licencias que una empresa puede obtener, haciendo referencia únicamente
a las dos principales nubes de Salesforce, así como el detalle de algunas funcionalidades
estándar que se obtiene con cada una de ellas:
Las licencias de la nube de Marketing Cloud por su parte tienen una estructura diferente
la cual no necesita una licencia por usuario, sino que las licencias son al mes por
funcionalidad:
4
Knowledge: Funcionalidad que permite tener una base de datos de preguntas frecuentes o información
sobre incidencias recurrentes, a través de las cuales los clientes de la empresa son capaces de resolver sus
casos sin necesidad de contactar con la empresa.
18
Informes avanzados ✖ ✔ ✔
Focalización de procesos en necesidades de clientes ✖ ✖ ✔
Inteligencia artificial para Marketing y ventas ✖ ✖ ✔
2.4 Oracle
Oracle (Ellison, Oracle CRM, 1977), empresa fundada por Larry Ellison en el año 1977,
a lo largo de su historia desarrollo inficidad de productos que facilitaron la gestión de
cualquier empresa independientemente del tamaño que tuviera. Oracle no es una empresa
enfocada únicamente a la nube, como sí lo es Salesforce, sino que además proporciona
sus propios sistemas de bases de datos, software totalmente empresarial a medida e
incluso desarrollos de software basados en la nube. En este aspecto, Oracle es una
empresa más competente en cuanto a diversidad de opciones que puede ofrecer una
contratación con ellos.
Basándonos en el CRM de Oracle, al igual que el CRM de Salesforce, Oracle está basado
en nubes enfocadas en aportar valor, a la empresa que las contrate, facilitando el trabajo
de sus trabajadores, estableciendo tareas automáticas e incluso permitiendo obtener
información de sistemas externos.
Nube de ventas
Esta nube de Oracle está enfocada a la automatización de procesos de ventas que realizan
diariamente el departamento comercial de cualquier empresa. Con las funcionalidades
estándar que aporta esta nube, la empresa consigue un mayor rendimiento del área
comercial, una mayor relación con los clientes y a los altos cargos, les permite tener una
mayor visibilidad del funcionamiento del área comercial a través de análisis avanzados.
Otra de las funcionalidades que aporta esta nube es que facilita la realización de un
pronóstico de ventas estandarizado.
5
Journey: Funcionalidad que permite construir relaciones estrechas con el cliente respondiendo a la
actividad de un cliente durante su ciclo de vida.
19
Nube de Servicio
Nube de Marketing
Con esta nube, la empresa puede explotar de una manera más eficiente la relación entre
la misma y el cliente. Para ello, la nube de Marketing permite el envío de campañas
publicitarias, por ejemplo, lo cuál hace que la relación entre empresa y cliente sea más
continua. Además, se puede tener una visión más directa de los intereses de los clientes o
los posibles clientes potenciales de una empresa. Esto facilita la tarea del departamento
de ventas, ya que los comerciales pueden enfocarse en los clientes que muestran algún
tipo de interés.
En resumen, la nube de marketing da una visión más exacta de los intereses de los clientes
y clientes potenciales, por lo que el departamento de ventas puede trazar estrategias de
ventas con un mejor rendimiento.
2.4.1 Licenciamiento
El licenciamiento de Oracle es muy similar al de Salesforce. Tiene las mismas divisiones
por nubes para que el usuario únicamente contrate lo que va a utilizar. Cada uno de los
usuarios que utilicen el sistema y desee tener acceso a las funcionalidades de una de las
nubes de Oracle, deberá tener la licencia.
20
Oracle Voice6 ✖ ✖ ✖ ✔
Enterprise Contracts7 ✖ ✖ ✖ ✔
Tabla 3: Licencias Oracle Sales Cloud
2.5 SAP
Esta empresa fue fundada por cinco ingenieros trabajadores de IBM en el año 1972 (SAP
CRM, 1972). Al igual que la empresa Oracle, SAP no solo se dedicó al desarrollo de
productos en la nube sino que también proporciona programas de software que, como
empresa, le permite abrirse mercado en muchos sectores. El éxito de SAP es
completamente su software ERP. Este software esta completamente orientado a facilitar
la labor de los trabajadores de cualquier empresa aportando una solución enfocada en las
funciones que realiza cada uno de los deparmentos de la misma.
6
Oracle Voice: Sistema de chat a través del cual el cliente puede comunicarse con la empresa.
7
Enterprise contracts: Funcionalidad que permite mejorar el proceso de contratación estándar aportando
rapidez en las búsquedas, renovaciones y visibilidad de los contratos dentro del CRM.
21
y queriendo hacer competencia a Salesforce, SAP CRM comenzó a migrar su CRM a la
nube y así poder seguir siendo líder del mercado. En este aspecto, SAP continúa migrando
sus sistemas a la nube y asegura que no se va a retirar el producto CRM on premise, dado
que muchos de sus clientes lo continúan utilizando e incluso sus nuevos clientes lo
compran.
Nube de ventas
Es la nube que facilita las labores comerciales aportando funcionalidades orientadas al
sector de las ventas y la captación de clientes potenciales.
Al igual que en Oracle y Salesforce, esta nube permite obtener funcionalidades de ventas
que facilitan a los comerciales las labor que realizan a diario. Además, con la
funcionalidad estándar que aporta, se puede explotar de una manera más productiva las
relaciones con los clientes e incluso saber cuales son las oportunidades de venta más
calientes.
Nube de Servicios
Es la nube destinada a la atención al cliente, solución de incidencias e incluso la nube que
permite medir la satisfacción que un cliente tiene con respecto a una empresa.
Esta nube permite a los usuarios que la utilicen tener una visión completa de todas las
incidencias que están gestionando así como una vista 360º de las incidencias abiertas por
el cliente. Dicho esto, se puede deducir que los tiempos de gestión de incidencias de una
empresa bajan y por consiguiente, la satisfacción del cliente, en este ámbito, aumenta.
Nube de Marketing
Esta es la nube encargada de la gestión de la comunicación entre cliente y empresa,
haciendo que sea más fluida y continua mediante las funcionalidades que aporta.
22
Figura 18: Logo de la nube de martketing de SAP [18]
Con esta nube la empresa obtendrá funcionalidades que permita que el departamento
comercial mejore las relaciones con los clientes. Dado que está orientada a la mejora de
la comunicación permite que el comercial que la utilice obtenga más información de los
intereses del cliente y pueda trazar un plan de ventas acorde a dicha información. Además,
también permite el envío de campañas, lo cual hace que la conversación empresa-cliente
sea más fluida y constante.
2.5.2 Licenciamiento
A diferencia de las otras empresas, el licenciamiendo de la empresa SAP es privado y
únicamente lo habilitan para clientes potenciales de la compañía. Es por esto que no es
posible detallar un informe de precios con las funcionalidades incluidas por cada una de
las nubes mencionadas en el apartado anterior.
Costes
En primera instancia, el coste de esta herramienta es mínimo. En función del tipo de
licencia que se obtenga se tendrá acceso a más o menos funcionalidades. Por defecto,
además, este tipo de herramientas vienen preparadas para su utilización aportando un
modelo de datos estándar de negocio y además algunas automatizaciones, como puede
ser, recordatorios de las fechas de vencimiento de contratos.
Es por lo explicado anteriormente, que, en primera instancia, la empresa solo pagaría las
licencias requeridas en función del número de usuarios que utilicen la plataforma. Es
durante su uso, cuando las empresas contratan a especialistas en Salesforce que sean
capaces de aportar más funcionalidad que la que viene dentro de la plataforma.
Customización
Estas herramientas permiten tener una gran personalización, tanto a nivel de visualización
corporativa como a nivel de automatizaciones y desarrollos personalizados.
Su uso permite personalizar totalmente en cuanto a las automatizaciones que necesita el
cliente, como pueden ser envíos de correo, integraciones con otros sistemas o incluso
gestionar la visibilidad en función de la jerarquía que tenga la empresa.
23
Salesforce es una de las herramientas más versátiles en este punto, en cuanto a CRM en
la nube se refiere, del momento.
Rendimiento
Permiten explotar el rendimiento de los trabajadores de la empresa, ya que, como se
comenta en la ventaja anterior, muchas de las tareas que habitualmente una persona
realiza de manera manual, como puede ser el envío de un email, se puede automatizar sin
necesidad de que el usuario haga un click en la pantalla.
Facilidad de uso
Tal y como se indica en la ventaja de customización, la interfaz de usuario es intuitiva y
fácil de manejar. Además, la posibilidad de adaptación al requerimiento de la empresa y
algunas funcionalidades de ayuda que aportan estas herramientas, son configurables para
guiar al usuario y hacen que la gestión del cambio de las empresas sea menos drástica.
Evolución
Estos sistemas suelen tener varias actualizaciones al año que permiten obtener nuevas
funcionalidades o mejoras en funcionalidades que ya estaban dentro de lo estándar.
Por otro lado, en cuanto a funcionalidades que puedas obtener out of the box8, Salesforce
permite realizar multitud de desarrollos e integraciones que pueden surgir durante el uso
de la plataforma en una empresa. Estas actualizaciones, suelen ser realizadas por personas
especializadas en la herramienta, y pueden realizarse sin que la herramienta sufra ninguna
suspensión de uso.
En este aspecto, Salesforce es una de las herramientas en estudio que más despunta. Al
tener tres actualizaciones al año y ser sugerencias de los propios usuarios que las utilizan,
cubren cada poco tiempo funcionalidades nuevas que se pueden explotar dentro de
cualquier organización
Accesibilidad
En cuanto a la accesibilidad a la plataforma, estas herramientas son accesibles desde
cualquier dispositivo que tenga conexión a internet. Al ser una plataforma en la nube, es
accesible en cualquier momento. En este caso, Salesforce cuenta con una aplicación
móvil, llamada Salesforce, que permite tener una interfaz diferente a la interfaz del
ordenador y, a nivel comercial, es muy útil ya que reciben alertas de eventos programados
8
Out of the box: Funcionalidad no incluida en el paquete contratado y que puede ser desarrollada por un
tercero.
24
en forma de notificaciones y tienen toda la información necesaria sobre los contratos de
los clientes en su dispositivo móvil.
A continuación, al igual que hemos realizado con la parte de CRM, haremos un estudio
de los diferentes asistentes de voz que hay en el mercado contando su historia y las
ventajas que se tiene al utilizar dichos aparatos electrónicos.
La historia de estos dispositivos data del año 1940 cuando surgió el primer software que
permitía un reconocimiento de voz en la empresa AT&T Bell. Esta empresa decidió
apostar por seguir investigando y desarrollando esta tecnología dado que eran conscientes
de que era una tecnología de la que eran pioneros y querían explotar.
Continuando con su desarrollo, en el año 1952, AT&T Bell dio a luz al primer sistema
que era capaz de reconocer números del 0 al 9. Este sistema se denominó Audrey. Dado
el éxito de Audrey, las grandes empresas decidieron apostar por la investigación sobre el
campo del reconocimiento de voz en sistemas automatizados y desarrollar softwares que
fueran capaces de interactuar con el ser humano.
IBM, la empresa desarrolladora más grande de software de esa época, diez años más tarde
(1962) fue la primera en sacar al mercado el primer prototipo de un sistema que era capaz
de reconocer una totalidad de dieciséis palabras y los números del 0 al 9. Además, era
capaz de realizar operaciones simples como sumas y restas. Esta herramienta se le bautizó
como Shoebox.
25
Figura 20: Imagen de (Shoebox) [20]
Los mismos científicos que desarrollaron el sistema Harpy, diez años más tarde
desarrollaron un programa que no solo reconocía palabras sueltas, sino que era capaz de
reconocer enunciados completos. Para ello, utilizaron el modelo de Márkov. Dicho
modelo trata de predecir a través de cálculos estadísticos las palabras que pueden ir a
continuación de una palabra.
Con esto el desarrollo de sistemas de reconocimiento de voz aumentó exponencialmente
dado que su capacidad era infinitamente mayor al poder reconocer frases completas,
siendo los primeros asistentes de voz digitales los contestadores automáticos, por
ejemplo.
Ya en los años 90, las empresas como Microsoft, IBM y Philips dieron el paso de llevar
esta tecnología a una máquina física con la que el usuario puede interaccionar. Fue en
esta misma época cuando el desarrollo de los sistemas de reconocimiento de voz se paró
por completo debido a la crisis de las punto com, que azotó fuertemente a las empresas
tecnológicas.
Pasada la crisis, en el año 2011, sale a la luz a través de la empresa Apple Inc. el primer
asistente virtual digital instalado en un dispositivo móvil, el Iphone 4s. Este asistente de
voz obtuvo el nombre de Siri. Este asistente, cuando Apple decide implantarlo en su
teléfono móvil, ya llevaba tres años desarrollado.
Siri surge de un proyecto CALO del Centro de Inteligencia Artificial de SRI International
como uno de los desarrollos del mayor proyecto de inteligencia hasta la fecha. Como
curiosidad se puede comentar que en un principio, Siri iba a estar disponible en los
terminales de iOS, Android y Blackberry. Esto no sucedió dado que Apple adquirió Siri
en el año 2010 convirtiéndose en la única empresa que podía tener Siri en sus dispositivos.
26
Figura 21: Logo de Siri [21]
Unos meses más tarde del surgimiento de Siri, Google lanzo al mercado su primer
asistente de voz, Google Allo. Este desarrollo de Google se vió completamente opacado
por el surgimiento de Siri, ya que Google Allo no era capaz de mantener una conversación
con una persona sino que simplemente era un asistente de búsqueda por voz. Este no fue
el mejor asistente de voz de google puesto que, años más tarde, en el 2016, surge la nueva
actualización de Google Allo, denominado, Google Assistant.
27
Figura 23: Logo de Alexa [23]
A lo largo de los años, Amazon ha conseguido realizar toda serie de eventos en los que
ha patrocinado el nombre de su dispositivo y obteniendo uno de los asistentes de voz más
reconocidos mundialmente. Algunos de estos eventos son:
• Premio Alexa en el año 2016, el cual estaba completamente orientado a conseguir
continuar con el desarrollo de este tipo de tecnologías
• Conferencias por todo el mundo: La primera conferencia entorno al dispositivo
Alexa se celebró en el año 2017.
• Introducción en vivienda: Alexa se convirtió en el primer dispositivo en ser parte
de una serie de viviendas domóticas en el año 2018.
Todos estos eventos permitieron que la compañía Amazon continuara con su producto
estrella hasta la actualidad, haciéndose con una cifra de más de cien millones de
dispositivos vendidos por todo el mundo.
Como curiosidad, desde el inicio de Alexa, para poder activar el asistente de voz, se le
debe llamar por su nombre. En este aspecto, Amazon reflejó de manera excepcional el
comienzo de una conversación real cuando una persona quiere dialogar con otra y llama
su atención diciendo su nombre. Este detalle, hace que Alexa simule una situación real y
por tanto, el impacto
Dos años más tarde de la aparición de Alexa (2016), la compañía Google, apostó por
sacar al mercado un nuevo asistente de voz llamado Google Assistant. Al igual que el
asistente de voz de amazon, Google decidió invertir en su asistente de voz y crear un
dispositivo físico que únicamente estaría destinado a ser, en sí mismo, un asistente. El
dispositivo que salió junto con Google Assistant se denominó Google Home.
En sus inicios, el asistente de Google, solo podía integrarse con móviles de la marca
Google Pixel, la cúal tenía el sistema operativo de Chrome OS o incluso algunos de ellos
Android. Teniendo en cuenta esta limitación, Google, en el año 2017, anunció que su
28
asistente de voz sería capaz de conectarse a otro tipo de terminales como teléfonos que
utilizaban el sistema operativo Android Marshmallow o Android Nougat.
Se puede observar, por la historia descrita en este apartado, que los dos asistentes de voz
con más repercusión son Alexa y Google Assistant. Es por esto que a continuación se
realizará un análisis de ambos dispositivos y, posteriormente, se explicará porqué se
decidió desarrollar este trabajo de final de grado con el dispositivo Alexa.
2.8 Alexa
Alexa es el asistente de voz de la empresa Amazon que está integrado en sus dispositivos
Echo. Alexa se basa en unas pequeñas funcionalidades que se denominan Skills. En los
siguientes apartados se detallará que es una Skill de Alexa y analizaremos los diferentes
dispositivos Echo especificando sus características.
Por tanto, como comentábamos en el apartado de la historia de Alexa, ésta se activa con
un comando de voz, que, en este caso, es su nombre. Para poder comenzar un dialogo con
Alexa, se debe decir el comando de voz “Alexa” y a continuación pronunciar la frase que
hará que se active la Skill, por ejemplo: “Alexa, pon música jazz”. Por defecto, Alexa
viene con Skills ya instaladas que te permiten utilizar tu asistente de voz desde el primer
momento para cosas como buscar algún dato en internet, poner música o incluso jugar a
algún juego.
Alexa permite que sus propios usuarios puedan desarrollar Skills y de esa manera
personalicen aún más su experiencia de usuario. Los lenguajes de programación de una
Skill de Alexa pueden ser: Java, JSON, C++, JS, Python… Dando así al usuario la
facilidad de poder programar en el lenguaje que más experiencia tenga.
29
• Echo
• Echo Plus
• Echo Dot
• Echo Spot
Echo
Es el primer asistente virtual que sacó al mercado Amazon. Su precio oscila entre los 90
y los 110 euros. Las características del dispositivo son las siguientes:
• Siete micrófonos incorporados con cancelación de ruido, lo que permite que se el
dispositivo tenga una mejor escucha.
• Cuenta con dos altavoces en su interior y tecnología Dolby, la cual permite mayor
calidad de sonido.
• Dada su forma cilíndrica, el sonido es capaz de ser envolvente hasta 360º.
• Conexión Wifi
• Conexión bluetooth: permite conectar Alexa a otros dispositivos.
Echo Plus
Este asistente fue la evolución del asistente Echo. El precio de este dispositivo es
aproximadamente de 150 euros. Tiene exactamente las mismas características que el
primero pero Amazon añadió más funcionalidad y realizó los siguientes cambios:
• En cuanto a lo estético, es muy similar. Tiene forma cilíndrica pero en este caso,
el Echo Plus es más estético.
• Incorpora una integración con Zigbee. Zigbee es una interfaz que se usa en
tecnología domótica que permite a Alexa conectarse con otros dispositivos. En los
otros modelos de Echo, si se quiere conectar el dispositivo, hay una Skill que debe
estar programada para poder hacer esa vinculación.
30
Echo Dot
Este es el asistente virtual más pequeño que tiene Amazon en el mercado y a su vez el
más barato y asequible siendo su precio 60 euros. Las características técnicas de este
dispositivo son:
• Cuatro micrófonos incorporados: Permite que el dispositivo escuche a pesar de
que pueda haber ruido
• Clavija para conectarse a la corriente.
• Conexión Wifi
• Conexión bluetooth: le permite conectarse con otros dispositivos.
Echo Spot
Este asistente es el único hasta la fecha que tiene una pantalla táctil que permite
seleccionar la Skill que se va a utilizar como si fuera una aplicación de un teléfono móvil.
El costo del dispositivo es de 130 euros. Las características de este dispositivo son las
siguientes:
• Cuatro micrófonos incorporados
• Pantalla táctil.
• Cámara en la parte delantera que te permite poder realizar videollamadas por
ejemplo.
• Wifi
• Bluetooth
31
En este trabajo de final de grado se va a utilizar el aparato Echo Dot ya que el
desarrollador es usuario de este dispositivo.
Los lenguajes de programación que soporta Google Assistant para sus acciones son JS,
C/C++, Python o Java… Por lo que el usuario también tendrá la facilidad de poder
programar en el lenguaje que más experiencia tenga.
Google Home
Es el primer dispositivo que salió al mercado cuando apareció el asistente de Google. El
precio de Google Home oscila los 150 euros. Las características técnicas son las que se
detallan a continuación:
• Tiene dos micrófonos que permiten hablar a distancia y que el aparato reconozca
la voz.
• Un altavoz con capacidad de reproducir los graves de manera clara y los graves
sin distorsión.
• Wifi
• Bluetooth
32
Figura 29: Google Home [29]
Una curiosidad sobre este dispositivo es que la estructura del altavoz está hecho con un
70% de material reciclado por lo que lo hace bastante sostenible y favorece al medio
ambiente.
33
Figura 31: Google Nest audio [31]
De este modelo existe una versión mini con prácticamente las mismas características y
con el formato de Google Home mini, denominado Google Nest mini. Este dispotivo está
hecho con un 100% de material reciclado y es el más económico, sorprendentemente
porque tiene las mismas características que el Google Nest audio, y tiene un percio de 39
euros.
34
III. Análisis y diseño
En este apartado, se describirá la selección y utilización de los diferentes
sistemas/dispositivos dentro del proyecto, así como el modelo de datos que se empleará
para el almacenado de la información dentro del CRM.
3.1 Salesforce
En primer lugar, el sistema de almacenado de datos elegido para el desarrollo de este
proyecto de final de grado será el CRM Salesforce. Esta elección se basa en la amplia
experiencia del desarrollador del proyecto en esta herramienta, además de las titulaciones
que tiene certificadas por la compañía Salesforce.
En concreto, este proyecto se basará en la nube de Service, nube de Salesforce orientada
al soporte que proporciona la empresa a su cartera de clientes para la resolución de
incidencias. Nuestra propuesta se basará en proporcionar a cualquier empresa que tenga
un servicio de soporte, un sistema centralizado donde almacenar su información de
clientes e incidencias con varios canales de entrada, entre ellos, Alexa.
A continuación, se definen algunos términos que se utilizarán a lo largo del TFG 9, para
un mejor entendimiento de la propuesta:
• Modelo de datos: El modelo de datos es la arquitectura en la que se almacenarán
los datos de la empresa dentro del sistema de gestión de información (CRM). En
este TFG y, como buena práctica de la propia empresa Salesforce, se tratará de
almacenar la información a través del modelo de datos estándar del CRM.
• Objetos: Los objetos son los módulos donde se almacena la información dentro
de Salesforce. Los diferentes objetos, vinculados entre sí con diferentes relaciones
que se explican a continuación, construyen el modelo de datos. En este apartado
realizaremos una breve descripción de los objetos que se utilizarán para la
construcción del proyecto.
• Registros: Se trata de la información que almacena la empresa categorizada por
cada uno de los objetos. Por ejemplo, en el objeto Cliente la empresa tendrá
almacenados los datos de Alba González. Dentro del objeto cliente, no solo
estarán los datos de Alba González sino de los demás clientes. Cada uno de esos
clientes, incluida Alba González, es un registro.
• Tipos de registro: A la hora de optimizar un sistema CRM, cada uno de los
objetos cuenta con la posibilidad de tener varios tipos de registro. Los tipos de
registro te permiten tener diferentes formatos de página, lo cual es muy útil si se
tiene diferentes procesos de soporte.
• Procesos de soporte: Se define como proceso de soporte al conjunto de estados
por el que tiene que pasar un registro desde su creación hasta su cierre. Cada
proceso de soporte va relacionado a un tipo de registro. Por ejemplo, existe la
posibilidad que el cliente utilice los canales de entrada de soporte para incidencias
o para dudas. Para cada una de las variantes mencionadas anteriormente se tendrá
un proceso de soporte ya que los estados serán diferentes.
• Formatos de página: Permiten configurar como el usuario del CRM visualizará
la información dentro de un registro. Se compone por campos y listas
relacionadas. Los formatos de página además dan la posibilidad de marcar los
campos como obligatorios (no se permite almacenar la información del registro si
9
TFG: Trabajo de final de grado
35
no se rellena el campo obligatorio) o como solo lectura (el valor del campo no lo
puede modificar el usuario, aunque si se puede modificar a través de un
automatismo).
• Campos: Espacios donde se almacena la información dentro de los diferentes
registros. En función de la tipología del campo (numero, texto, fecha, lista de
selección…) se podrán introducir unos valores u otros. Además de en los formatos
de página, los campos también se pueden marcar como obligatorios desde su
creación en la parte de configuración del CRM. Esto no es aconsejable ya que, si
tienes varios procesos de soporte, la obligatoriedad a nivel de campo es trasversal
a cualquier proceso. Es por ello que la buena práctica indica que la obligatoriedad
de campos se realice a través del formato de página.
• Relaciones entre objetos: Son la manera de determinar cómo interactúan los
registros de los diferentes objetos entre ellos. Por ejemplo, Alba Gonzalez puede
tener una o más incidencias abiertas con la empresa y, por tanto, el objeto Cliente
estará directamente relacionado al objeto Incidencias. Cabe destacar los tipos de
relaciones que maneja Salesforce de manera estándar:
o Lookup: Es una relación de 1 a N o de N a 1. Es decir, este tipo de
relaciones se utilizan para buscar dentro de un registro uno o varios
registros que están relacionados. No existe, en este caso, una dependencia
de un objeto principal y otro secundario por lo que es posible que uno de
los registros de un objeto no tenga la necesidad de tener un registro de otro
objeto relacionado. Por ejemplo: el contacto Alba González pertenece a la
empresa Alba Inc. y por tanto está relacionado a ella. Pero es posible que
el cliente Alba González sea un particular y, en ese caso, no estará
relacionado a ningún registro de empresa.
o Master-Detail: Es una relación de 1 a N y existe un objeto que es principal
y otro que es secundario. Este tipo de relaciones se utilizan para constituir
relaciones estrechas de registros. Existe por definición una dependencia
entre el registro padre y el registro hijo, de tal manera que, al crear el
registro hijo, siempre se debe relacionar con el registro padre. Además, en
caso de que el registro padre se elimine, el registro hijo también se
eliminará. Por ejemplo: El contacto Alba González pertenece a la empresa
Alba Inc. y por tanto está relacionado a ella. Al contrario que en el ejemplo
anterior, el servicio que se ofrece no es apto para particulares por lo que
todos los contactos que se tengan estarán relacionados a Alba Inc.
36
A continuación, se mostrará el modelo de datos diseñado para este proyecto, indicando
sus tipos de relaciones y algunos campos relevantes.
Amazon Web Services es una plataforma desarrollada por la empresa Amazon, alojada en
la nube que provee servicios a empresas y clientes que buscan desarrollar su potencial a
nivel de seguridad, almacenamiento de datos, funcionalidad y accesibilidad entre otros.
De todos los sistemas alojados en la nube que proveen servicios a quien lo utiliza, Amazon
Web Services está catalogada como la plataforma más potente del mercado (Holori,
2021).
Para poder utilizar esta herramienta, será necesario crear un usuario. Para ello, será
necesario navegar a la dirección https://aws.amazon.com/es/ y hacer click en Crear una
cuenta de AWS. En este punto, el asistente de creación de cuentas de Amazon solicitará
los siguientes datos:
• Dirección de correo electrónico
• Contraseña
• Nombre de la cuenta AWS
• Selección de uso de AWS
o Profesional : Para el trabajo, escuela u alguna otra organización
o Personal: Para proyectos propios
• Nombre completo
• Número de teléfono
• País o región
37
• Dirección
• Ciudad
• Estado, provincia o región
• Código postal
• Aceptar los términos del contrato del usuario de AWS
Para poder comenzar con la creación de la skill de Alexa, se deberá disponer de una cuenta
de Amazon. Esta cuenta no es la misma que la cuenta creada para AWS. En caso de no
tener una cuenta de Amazon, se navegará a la dirección
https://developer.amazon.com/alexa/console y, haciendo click en Identificarse, se
navegará a la página de login. Dentro de la página de login, existe la opción de crear una
nueva cuenta. Para este registro se solicitará la siguiente información:
• Nombre
• Correo electrónico
• Contraseña
Cuando se hayan introducido estos datos, Amazon proporciona una contraseña de un solo
uso, a través del correo electrónico indicado en el formulario, con el fin de verificar el
correo electrónico introducido.
38
Al introducir esta contraseña de único uso, se redirigirá al siguiente formulario en el cual
se solicitará información personal como:
• Apellidos
• Ciudad
• Nombre de la empresa/desarrollador
• Número de teléfono
• Dirección
• Código postal
• Términos de Amazon Developer Services Agreement
39
IV. Implementación y Desarrollo
El inicio de la implementación de este TFG se basará en la creación y configuración del
entorno CRM que utilizaremos, así como la integración con los diferentes canales de
comunicación que el cliente tendrá disponibles para la gestión de sus incidencias. La
implementación del sistema CRM permite gestionar a los agentes del departamento de
atención al cliente las incidencias en una misma plataforma, teniendo acceso así a una
visión 360º de sus clientes y pudiendo anticipar sus necesidades.
Por otro lado, se realizará la integración de los diferentes canales de contacto por los que
el cliente puede ponerse en contacto con la empresa. Los canales implementados son:
1. Manual por el agente
2. Email
3. Formulario Web
4. Integración con Alexa
Por último, se realizará la integración con la plataforma Amazon Web Services para
ofrecer al cliente un canal de contacto con la empresa adicional a través del dispositivo
Alexa.
40
Figura 36: Proceso de soporte
Una vez introducidos los datos y aceptada la política de privacidad, se genera el entorno
de Salesforce donde comenzaremos a configurar la herramienta.
41
Previo a realizar cualquier configuración del modelo de datos y como se explica en la
sección anterior, hay que enviar una petición a Salesforce para que nos activen la
utilización de Cuentas personales. Previo a realizar esta petición, desde el menú de
configuración de Salesforce, se accede a la sección de Configuración de Cuentas y se
habilita la casilla “Permitir al servicio de atención al cliente activar cuentas personales”.
Tras haber seleccionado esta opción, se realiza la petición a Salesforce a través su propio
equipo de soporte, abriendo una incidencia a través de la página
https://help.salesforce.com/s/. Una vez Salesforce activa la opción, se tiene disponible el
uso de cuentas personales.
Los campos en Salesforce se definen por dos etiquetas, el Nombre del campo; que es lo
que el usuario del CRM visualiza por pantalla; y el nombre API; que es lo que se utiliza
en desarrollo y configuración de la herramienta para identificar un campo de un objeto.
Entre los campos de cada una de los objetos definidos en el modelo de datos
encontraremos:
Cuentas personales
Como en apartados anteriores hemos definido, las cuentas personales las utilizaremos
para almacenar la información de los clientes. Los campos que se utilizarán dentro del
objeto Cuenta personal serán:
42
Cuentas personales
Nombre del campo Nombre API Tipo de dato
Nombre FirstName Texto
Apellido* LastName Texto
Cumpleaños PersonBirthdate Fecha
Número de documento* DocNumber Texto
Tipo de documento* DocType Lista de selección
Código de cliente Number Texto
Teléfono* Phone Telefónico
Móvil PersonMobilePhone Telefónico
Email* PersonEmail Correo electrónico
Dirección de envío ShippingAddress Texto
Dirección de facturación BillingAddress Texto
Valoración Rating Lista de selección
Activo Active Casilla
Acepta política de privacidad PrivatePolicyAccepted Casilla
Acepta el envío de comunicaciones InformationPolicyAccepted Casilla
Tabla 5: Campos del objeto cuenta personal
Los campos marcados con un asterisco rojo están configurados como campos obligatorios
dentro del sistema. Esto quiere decir que, cuando el gestor cree un registro de cuenta
personal o lo edite, siempre le pedirá que esos campos obligatorios estén cumplimentados
antes de guardar.
Para los campos de tipo lista de selección, se configurarán los valores que se detallan a
continuación:
• Tipo de documento
o CIF
o NIE
• Clasificación
o VIP
o Caliente
o Frio
43
Figura 38: Formato de página de cuentas personales
Casos
El objeto Casos se utiliza para almacenar la información referente a las incidencias
abiertas por los diferentes clientes a través de los diferentes canales de contacto.
Los campos que se utilizarán dentro del objeto Casos serán:
Casos
Nombre del campo Nombre API Tipo de dato
Cuenta AccountId Buscar (Cuenta)
Estado Status Lista de selección
Asunto Subject Texto
Descripción Description Texto
Prioridad Priority Lista de selección
Motivo del Caso Case Reason Lista de selección
Comentarios internos InternalComments Texto
Tipo Type Lista de selección
Número del Caso CaseNumber Autonumérico
Origen del Caso CaseOrigin Lista de selección
Correo electrónico de ContactEmail Correo electrónico
contacto
Teléfono de Contacto ContactPhone Teléfono
Fecha y hora de apertura OpenedDate Fecha y hora
Fecha y hora de cierre CloseDate Fecha y hora
Pedido Order__c Buscar (Pedido)
Correo electrónico Web SuppliedEmail Correo electrónico
Teléfono Web SuppliedPhone Texto
Propietario del Caso OwnerId Buscar(Usuario, Cola)
Tabla 6: Campos del objeto Caso
Para los campos de tipo lista de selección, se configurarán los valores que se detallan a
continuación:
• Estado
o Nuevo
o En análisis
44
o Pendiente información cliente
o Pendiente información interna
o Cerrado
• Prioridad
o Alta
o Media
o Baja
• Motivo del Caso
o Queja
o Pedido se retrasa
o Pedido no ha llegado
o Producto equivocado
o Otros
• Tipo
o Incidencia
o Consulta
o Sugerencia
• Origen del Caso
o Teléfono
o Web
o Email
o Manual
o Alexa
45
Pedidos
Para poder utilizar el objeto Pedidos y que quede relacionado a los Casos, dentro de la
configuración de Salesforce, en la sección de “Configuración de pedidos”, marcamos la
casilla de Activar pedidos. De esta manera, Salesforce da acceso al objeto estándar de
pedidos.
Pedido
Nombre del campo Nombre API Tipo de dato
Cuenta AccountId Buscar (Cuenta)
Estado Status Lista de selección
Número de pedido OrderNumber Autonumérico
Fecha inicial del pedido InitialDate Fecha
Fecha de finalización del EndDate Fecha
pedido
Tipo de pedido Type Lista de selección
Descripción Description Texto
Cantidad del pedido Amount Moneda
Dirección de facturación BillingAddress Texto
Dirección de envío ShippingAddress Texto
Gastos de envío ShippingCost Fórmula
Importe total TotalAmount Fórmula
Tabla 7: Campos del objeto Pedido
46
Para los campos de tipo lista de selección, se configurarán los valores que se detallan a
continuación:
• Estado
o Borrador
o En reparto
o Enviado
• Prioridad
o Normal
o Recurrente
Los campos formula, son un tipo de campos que se auto calculan en la creación o edición
de los registros. Para el objeto de Pedidos, se han creado dos campos formulas que
calculan:
• Gastos de envío
o Calcula los gastos de envío del pedido en función de la valoración de la
Cuenta asociada. Si el cliente es un cliente “VIP”, los gastos de envío son
0€; si el cliente es un cliente “Caliente”, los gastos de envío es 1€; y para
cualquier otro cliente, los gastos de envío son 2,50€.
• Importe total
o Calcula el importe total sumando la cantidad del pedido más los gastos de
envío.
En la configuración del formato de página se utilizarán diferentes secciones de tal
manera que la información quede ordenada según el tipo de datos que contengan.
• Información del pedido
• Datos de contacto
• Datos de incidencia
Producto de pedido
El objeto Producto de pedido se utiliza para relacionar los productos
solicitados/contratados por el cliente al pedido. Los campos que se utilizarán dentro del
objeto línea de pedido serán:
47
Producto de pedido
Nombre del campo Nombre API Tipo de dato
Pedido OrderId Buscar (Pedido)
Producto Product2Id Buscar (Producto)
Precio por unidad UnitPrice Moneda
Precio total TotalPrice Moneda
Descripción de la partida Description Texto
Precio de lista ListPrice Moneda
Id externo ExternalId Texto
Descripción Description Texto
Tabla 8: Campos de Línea de pedido
Producto
El objeto Producto se utiliza como objeto maestro de productos, es decir, se almacenan
los datos de los productos y servirá para relacionarlo con las demás entidades que
completan el modelo de datos. Los campos que se utilizarán dentro del objeto producto
serán:
Producto
Nombre del campo Nombre API Tipo de dato
Activo Active Casilla
Código de producto ProductCode Texto
Descripción del producto Description Texto
Id externo ExternalId Texto
Nombre del producto Name Texto
Tabla 9: Campos de producto
48
En la configuración del formato de página se utilizará una única sección denominada
Información del producto.
Catálogo
El objeto Catálogo se utiliza como maestro agrupador de entradas de precios de
productos. Es decir, un catálogo está relacionado con las diferentes entradas de precios
agrupándolas y constituyendo la oferta de productos que el cliente tiene disponibles, así
como sus precios. Para el caso de AGlexa, solo utilizaremos un catálogo que será el que
por defecto nos proporciona la plataforma Salesforce.
Catálogo
Nombre del campo Nombre API Tipo de dato
Nombre Name Texto
Activo IsActive Casilla
Descripción Description Texto
Código de producto ProductCode Auto calculado (Texto)
Tabla 11: Campos de objeto catálogo
49
En la configuración del formato de página se utilizará una única sección denominada
Información.
La tipología del Caso viene definida por el tipo de registro. El tipo de registro en
Salesforce especifica el proceso de negocio que ese registro sigue, personalizando así el
formato de página y los valores de selección de los campos de tipo lista de selección.
En el escenario de la empresa AGlexa, se tendrán tres tipos de Casos como ya se ha
comentado en apartados anteriores: Incidencias, Consultas y Sugerencias; aunque, se
tendrán dos tipos de registro: Incidencias/Consultas, Sugerencias y Casos genéricos.
La decisión de tener esos tipos de registro se basa en que, tanto las incidencias como las
consultas, tendrán disponibles los mismos estados del proceso de soporte y las
Sugerencias, seguirán otro proceso. El tipo de registro Casos genéricos, aplicará para los
Casos que provengan de un canal en el que no se pueda tipificar el Caso desde un inicio,
sino que haga falta un gestor que lo realice, por ejemplo, los Casos creados a través del
correo electrónico.
Para configurar los dos procesos de soporte que se han definido, dentro de la
configuración de Salesforce en el apartado Servicio > Procesos de soporte, al hacer click
en el botón Nuevo, se navegará a una pantalla donde se establecerá únicamente el nombre
del proceso de soporte y la descripción.
50
Figura 47: Creación de proceso de soporte de Sugerencias
A continuación, se navegará a una pantalla donde se tendrán que elegir los estados por
los cuales, los Casos que tengan ese proceso de soporte, tendrán la opción de pasar además
de seleccionar el estado predeterminado, en nuestro caso será “Nuevo”.
51
Para configurar los tipos de registro que se definen para los Casos, dentro de la
configuración de Salesforce, en la sección Gestor de Objetos > Caso, crearemos los dos
tipos de registro: Incidencias/Consultas y Sugerencias. Al hacer click en Nuevo, aparece
una pantalla donde se rellena:
• Nombre del tipo de registro
• Proceso de soporte al que pertenece
• Descripción
• Activo
• Acceso a esta tipología de registro por los diferentes usuarios del sistema.
En cuanto a la selección del tipo de registro, en la creación del Caso, el usuario tendrá
que decidir que tipo de Caso quiere crear, una incidencia/consulta o una sugerencia. En
cambio, para las creaciones automáticas de Casos, esta selección de tipo de registro
deberá ser automática y se basará en el campo Tipo de Caso.
52
Para esta selección automática, se ha desarrollado un Flujo de Salesforce. Un Flujo en
Salesforce permite realizar operaciones de creación, actualización, eliminación de
registros, presentar pantallas para introducir valores… Entre los tipos de flujos que hay
disponibles en la plataforma, los más utilizados son los siguientes:
• Flujo de pantalla: Permite realizar un proceso automático incorporando pantallas
que guíen al usuario a través de dicho proceso.
• Flujo desencadenado por un registro: La acción de creación o modificación de un
registro hace que se dispare este tipo de flujos que realizan un proceso.
• Flujo desencadenado por programación: Se programa el proceso el cual se va a
desencadenar.
Para la asignación del tipo de registro en los Casos automático, se utilizará un flujo de
tipo desencadenado por un registro ya que será en la creación del Caso donde se ejecute
este proceso. El Flujo se denominará Asignación Tipo de Registro y se configurará de la
siguiente forma:
1. Se establece que el objeto donde se va a aplicar el automatismo es en el objeto
Caso, así como que el momento de desencadenar la acción de actualizar el tipo de
registro es en la creación de un Caso. Además, se selecciona que esta acción
únicamente ocurra siempre y cuando el campo Tipo del objeto Caso, no esté vacío.
53
Figura 53: Pantalla de configuración de decisión en el flow
3. Buscar el id único del tipo de registro de Caso que se requiere. Para ello se hará
una búsqueda en el objeto que almacena todos los Ids de tipo de registro de
Salesforce y filtrando por el Objeto Caso y el Nombre del tipo de registro, se
obtiene la Id. Esta búsqueda se podría ahorrar si se cumplimenta el Id del tipo de
registro directamente en el flujo y se realiza la actualización, pero, siguiendo las
buenas prácticas, no es aconsejable tener ningún Id escrito dentro de un flujo. El
Id del Tipo de registro se almacena en la variable que se ha denomina “RTId”.
4. Actualización del Caso con el tipo de registro que corresponda. Se selecciona que
el campo Tipo de registro del Caso, se actualice con el valor de la variable “RTId”.
54
Figura 55: Pantalla de modificación de registros
Una vez se ha configurado el flujo entero, para que comience a ser funcional, se activa
haciendo click en el botón activar.
55
conjuntos de permisos y, para la configuración de “qué puedo ver” existen lo que se
denomina roles y reglas de colaboración.
Un perfil determina que es lo que dentro de Salesforce puede hacer un usuario. El perfil
gestiona desde las acciones que puedes hacer dentro de un registro, las aplicaciones a las
que puedes acceder, hasta los permisos por cada uno de los campos de los diferentes
objetos (si puedes únicamente verlo o editarlo también). Además, es la manera de común
de agrupar permisos para un grupo de usuarios dentro de la organización. En caso de que
se quiera dar permisos extras a uno o varios usuarios en concreto, se utilizarán los
conjuntos de permisos.
Los conjuntos de permisos son complementarios al perfil, es decir, no quitan permisos,
sino que otorgan más. Es un complemento ya que, se puede dar el caso, que una persona
tenga permisos especiales dentro de una empresa, y como buena práctica, no se configura
un perfil único para dicha persona, sino que se añade ese usuario al perfil que más se
asemeje y se establece el conjunto de permisos que necesite.
Salesforce determina la visibilidad a partir del campo propietario del registro. Siempre
que un usuario sea propietario de un registro, puede visualizar dicho registro. Si el
propietario del registro es una Cola, cualquier usuario que esté en la Cola tendrá los
mismos permisos de visualización o edición (si tiene acceso a nivel de perfil para editar).
Para configurar la visibilidad de los registros de un objeto, se tiene la configuración de
colaboración. Esta configuración permite establecer si un objeto es:
• Privado: Únicamente puede visualizar los registros de ese objeto el propietario.
Es decir, una cuenta cuyo propietario sea Alba González, si el objeto es privado,
solo la podrá ver Alba González.
• Solo lectura pública: Independientemente de quién sea el propietario del registro,
cualquier usuario puede verlo. Es decir, una cuenta cuyo propietario sea Alba
González, si el objeto es público en lectura, lo podrá ver cualquier otro usuario.
• Lectura/Escritura publica: Independientemente de quién sea el propietario del
registro, cualquier usuario puede verlo/editarlo (en caso de que por perfil tenga
permisos de edición del objeto). Es decir, una cuenta cuyo propietario sea Alba
González, si el objeto es público en lectura y escritura, lo podrá ver/editar
cualquier otro usuario.
• Controlado por principal: Si el objeto tiene una relación de tipo Principal detalle,
tal y como se explicaba en apartados anteriores, la visibilidad de los registros de
56
este objeto queda sujetas a la visibilidad del padre. Por ejemplo, si el Pedido está
ligado a la Cuenta con una relación principal detalle y la Cuenta tiene la visibilidad
privada, el Pedido también será privado.
Objeto Visibilidad
Cuentas Privado
Casos Privado
Pedido Controlado por padre
Línea de pedido Controlado por padre
Producto Público
Catálogo Público
Entrada de lista de precios Público
Tabla 12: Tabla de visibilidad de Objetos de Salesforce
57
Figura 57: Jerarquía de roles en Salesforce
58
• Pedidos: La visibilidad de los pedidos estará gestionada por la visibilidad de la
Cuenta a la que están relacionada. Por tanto, la visibilidad de los Pedidos será la
siguiente:
o Si el campo Ciudad o Provincia de la Cuenta asociada al Caso contiene el
término “Madrid” se comparte con el rol Supervisor Madrid con acceso a
lectura y escritura.
o Si el campo Ciudad o Provincia de la Cuenta asociada al Caso contiene el
término “Madrid” se comparte con el rol Agente Madrid con acceso a
lectura.
o Si el campo Ciudad o Provincia de la Cuenta asociada al Caso contiene el
término “Barcelona” se comparte con el rol Supervisor Barcelona con
acceso a lectura y escritura.
o Si el campo Ciudad o Provincia de la Cuenta asociada al Caso contiene el
término “Barcelona” se comparte con el rol Agente Barcelona con acceso
a lectura.
o El director del departamento de atención al cliente verá todos los Casos.
o El director general verá todos los Casos.
• Productos
o Tanto el director del departamento de atención al cliente como sus
subordinados tendrán acceso a visualizar la información.
o El director general tendrá acceso a ver y editar cualquier producto.
4.1.3.1 Consola
Para navegar a través de los diferentes registros y objetos, Salesforce proporciona las
denominadas aplicaciones. Las aplicaciones son un agrupador de funciones y objetos que
permiten al usuario realizar su trabajo diario. A nivel de aplicación se define el logo, los
objetos a los que se tiene acceso, qué perfiles de la organización tiene acceso a que
aplicación y las funciones estándar.
La navegación estándar permite tener una barra de navegación con acceso a cada uno de
los objetos configurados en la aplicación. La navegación de cualquier objeto o registro
implica recargar la página, por lo que, si el usuario necesita consultar información de
varios registros a la vez, debería tener varias pestañas del navegador abiertas. Esto, desde
el punto de vista de atención al cliente, ralentizaría los tiempos y disminuiría la
satisfacción del cliente.
59
Figura 58: Pantalla de inicio en consola de Salesforce
La navegación por consola tiene una barra de navegación colapsada a través de la cual
puedes acceder a todos los objetos que tenga configurada la aplicación. Este tipo de
navegación, por el contrario de la estándar, permite tener varias pestañas abiertas dentro
de Salesforce, reduciendo tiempos para los usuarios que la utilizan. Es por ello, por lo que
en este TFG se configurará la navegación por consola.
60
En la segunda pantalla, se establece las funciones que estarán disponibles en la barra de
pie de pantalla o footer. En el escenario de una consola utilizada para atención al cliente,
se configurarán las siguientes funcionalidades:
• Omni-channel: Es el enrutador de Casos a los diferentes agentes que estén
disponible y a través de cualquier canal de entrada (email, web…). Más adelante
en este TFG se explicará su configuración.
• Macros: Sirven para configurar de manera automáticas tareas repetitivas que
realizan los agentes como enviar un email, comunicarse con otro departamento o
crear una tarea.
• Histórico: Proporciona al usuario una lista de los últimos elementos a los que ha
accedido recientemente.
61
En la cuarta pantalla, se configuran las reglas de navegación. En estas reglas de
navegación se establece que registro es la pestaña principal y cuáles son las subpestañas.
Debido a que la consola está enfocada a la atención al cliente, configuraremos los
registros del objeto Caso como la pestaña principal y el resto derivarán de ellos.
Una vez configurada la consola, cada uno de los objetos del modelo de datos, tendrá una
configuración de su propia página con los componentes necesarios para que el gestor
tenga una vista 360º de los clientes, sus productos e incidencias.
Cada uno de los objetos tendrá una página de registro diferente y cuya configuración se
adecuará a la utilidad del objeto.
62
Cuentas personales
Para la configuración de la página de registro de cuentas se tendrá en cuenta que es el
registro donde se almacena toda la información de la persona. Es por ello que de un solo
vistazo, el usuario debe disponer de toda la información posible relacionada a dicha
persona.
La página quedará configurada de tal manera que la información se distribuya en tres
columnas:
• En la columna de la izquierda se visualizarán los Casos y Pedidos relacionados a
la cuenta.
• En la columna central se encontrará la información propia de la cuenta distribuida
acorde al formato de página configurado.
• En la columna de la derecha se podrán visualizar las actividades, así como
llamadas, envío de correo electrónicos, citas que se hayan realizado con esta
cuenta. Además, también quedará disponible en esta columna Chatter. Chatter es
la herramienta de comunicación interna de Salesforce. Permite mencionar
usuarios, poner hashtags10 o realizar publicaciones relacionadas a cualquier objeto
que lo tenga disponible.
Casos
En este TFG, este es el objeto sobre el que trabajarán los gestores de incidencias por lo
que, la distribución del formato de página de este objeto es uno de los puntos importantes
a tener en cuenta para facilitar el trabajo y obtener una mayor productividad de los
usuarios.
La página quedará configurada de tal manera que la información se distribuya en tres
columnas:
• En la columna de la izquierda se visualizará la información de la cuenta a la que
está relacionada el Caso.
• En la columna central se encontrará la información propia de la cuenta distribuida
acorde al formato de página configurado.
• En la columna de la derecha se podrán visualizar las actividades, así como
llamadas, envío de correo electrónicos, citas que se hayan realizado con esta
cuenta. Además, también quedará disponible en esta columna Chatter. Chatter es
10
Hashtags: Define una palabra que es clave y lo convierte en vínculo, permitiendo así exportar toda la
información referente a dicha palabra.
63
la herramienta de comunicación interna de Salesforce. Permite mencionar
usuarios, poner hashtags o realizar publicaciones relacionadas a cualquier objeto
que lo tenga disponible.
Para la configuración de Omnichannel, se van a definir las diferentes colas en la que los
agentes estarán trabajando. Una cola en Salesforce es un conjunto de agentes.
• Casos Email: Cola destinada a agentes que gestionen Casos con origen Email.
• Casos Web: Cola destinada a agentes que gestionen Casos con origen Web.
• Casos Alexa: Cola destinada a agentes que gestionen Casos con origen Alexa.
• Casos genéricos: Cola destinada a agentes que gestionen Casos que no sea con
ninguno de los orígenes anteriores.
64
Canales de servicio
Para iniciar la configuración de Omnichannel, se ha de definir el canal de servicio. Un
canal de servicio es lo que proporciona que se enrute trabajo a los agentes en base a un
objeto de Salesforce; en nuestro escenario, los Casos. Por tanto, si se quisieran tener
varios objetos enrutados por Omnichannel, se deberían configurar varios canales de
servicio.
Una vez guardado, ya se tendrá definido el canal de servicio a través del que se enrutarán
los Casos en el sistema desarrollado para la empresa AGlexa.
Estados de presencia
Dentro de la configuración de Salesforce, navengado a la pestaña de Estados de presencia,
se definirán los estados a través de los cuales los agentes indican que están disponibles o
no para recibir carga de trabajo desde Omnichannel, es decir, el agente tiene la potestad
de decidir si está o no está en línea para gestionar los Casos que le entren desde
Omnichannel. Entre los estados de presencia, para este TFG se definirán dos:
• En línea: El agente está disponible para recibir Casos. Este estado se relaciona al
canal de servicio que se ha configurado antes de Casos para que sea el estado que,
cuando los agentes lo seleccionen, les enrute los diferentes Casos que se vayan
generando.
• Ocupado: El agente no está disponible para recibir Casos. Este estado se ha de
marcar como ocupado para que, cuando el agente lo seleccione, no reciba ningún
Caso. Este estado no se relaciona a ningún canal de servicio.
65
Figura 67: Configuración de estado de servicio En línea
Configuración de presencia
En esta configuración se define la capacidad que tiene el agente en cuanto a la cantidad
de trabajos que realiza a la vez. En el escenario de AGlexa, los trabajos que entrarán por
Omnichannel únicamente serán Casos. Adicionalmente en esta configuración se definen
las acciones que pueden realizar los agentes en Omnichannel, como por ejemplo si pueden
o no rechazar trabajos entrantes.
66
los usuarios, se seleccionan cada uno de los usuarios que requieren tener acceso
al canal de servicio de Casos y a la configuración que se ha realizado para la
capacidad.
Configuraciones de enrutamiento
Esta configuración define las reglas a través de las cuales se enrutan los diferentes trabajos
a través de Omnichannel. Desde la empresa AGlexa, se detecta la necesidad de establecer
la siguiente prioridad de enrutamiento de Casos:
1. Casos registrados a través de email
2. Casos registrados a través de web
3. Casos registrados a través de Alexa
67
• Tamaño de los trabajos: Se pueden establecer diferentes pesos para los diferentes
trabajos que se enruten a través de Omnichannel. Por ejemplo, los Casos de email
pueden tener un peso igual a tres, de tal manera que el agente solo pueda gestionar
un Caso de email a la vez ya que llenaría la capacidad definida en la configuración
de presencia. Para la empresa AGlexa, todos los Casos tendrá el tamaño uno
asignado.
A continuación de crear cada una de las configuraciones, se relacionan cada una de las
colas creadas con anterioridad a la configuración de enrutamiento. Dentro de cada una de
las colas, se establece la configuración de enrutamiento correspondiente. Para ello,
navegando a la pestaña de Colas dentro de la configuración de Salesforce y accediendo a
la cola que corresponda, haciendo click en el botón Modificar, se especifica la
configuración de enrutamiento que aplique.
• Cola Email con Configuración de enrutamiento Casos email
• Cola Web con Configuración de enrutamiento Casos Web
• Cola Alexa con Configuración de enrutamiento Casos Alexa
68
De esta manera, la configuración para el enrutamiento entre cada uno de los canales que
se definen a continuación quedaría finalizada.
Los parámetros de asignación de los Casos a las colas que correspondan siempre se ha de
hacer en base a los campos del objeto Casos o de registros relacionados directamente al
mismo. Es decir, no se puede asignar en base a criterios de otros objetos que no estén
relacionados al Caso.
69
4.1.6.1 Email-to-Case
En la configuración del canal de contacto por email, la empresa para la que se está
desarrollando este TFG, tendrá que disponer de un buzón específico para la entrada de
incidencias. En el caso de la empresa AGlexa, no dispone de ese buzón por lo que se ha
de crear dicho buzón.
Para crear la cuenta de correo electrónico, navegaremos a https://www.gmail.com y
haremos click en nueva cuenta y se introducen los datos.
Una vez introducidos los datos y aceptada la política de privacidad de Gmail, la cuenta
se habrá creado.
Configuración en Salesforce
Dentro del módulo de configuración de Salesforce, se accede a la ruta Servicio>Correo
electrónico para registro de Casos. La configuración de este canal tiene las siguientes
opciones que pueden ser marcadas:
• Activar el correo electrónico para el registro de Casos: Esta opción permite activar
la funcionalidad.
• Notificar a los propietarios del Caso sobre los nuevos correos electrónicos: Envía
una notificación por correo electrónico a la persona que ha sido asignada al Caso.
• Establecer origen de Casos como correo electrónico: El campo Origen del Caso
se cumplimentará con el valor correo electrónico si esta opción está marcada.
• Guardar archivos adjuntos del correo en Salesforce Files: En el escenario en que
un Caso tenga un archivo adjunto, éste quedaría relacionado al Caso en la sección
70
de archivos adjuntos. Para marcar esta opción es importante tener en cuenta que
el espacio de almacenamiento de archivos en Salesforce es limitado y por tanto,
se desaconseja marcarla.
En nuestro escenario, marcaremos todas las opciones exceptuando la de almacenar los
archivos adjuntos al Caso automáticamente. Si el usuario quisiera realizar esta tarea,
podrá hacerlo de manera manual.
71
Figura 75: Correo de verificación de creación de email-to-case
Configuración en Gmail
Con el fin de que cada uno de los emails que se envíen al correo de
atencionalclienteaglexa@gmail.com generen la creación automática de Casos en
Salesforce, desde el propio Gmail, se ha de configurar la redirección de la URL que
Salesforce proporciona al configurar el Email-to-Case.
72
Una vez añadida esta URL como dirección de Gmail te solicita un código de verificación.
Este código es enviado automáticamente a través de la creación de un Caso en Salesforce,
que, en su descripción, contiene dicho código de verificación necesario para vincular
ambos sistemas.
73
4.1.6.2 Web-to-Case
El objetivo de la configuración de este canal es que, en la página web de la compañía
AGlexa, se introduzca un formulario que permita a los usuarios de dicha página un Caso
en Salesforce. En este TFG no se realizará el desarrollo de la página web aunque si se
realizará la configuración del formulario web.
Para la empresa AGlexa, la plantilla a utilizar será una plantilla de texto plano. Para ello,
dentro de la sección Plantillas de correo electrónico, al hacer click en Nuevo, se
selecciona la opción Texto.
74
• Asunto: Su Caso {!Case.CaseNumber} se ha generado con éxito
• Cuerpo del mensaje:
Estimado cliente,
- Asunto: {!Case.Subject}
- Descripción: {!Case.Description}
- Email de contacto: {!Account.PersonEmail}
- Tipo: {!Case.Type}
75
Figura 82: Configuración de casos web con plantilla de correo electrónico
76
generado se copiaría y pegaría dentro del código de la página web para que apareciese.
Para la empresa AGlexa, copiaremos este formulario y lo almacenaremos en un fichero
HTML para poder utilizarlo en la generación de Casos de tipo web.
El campo Origen del Caso, se establecerá a través del código del formulario sin que el
cliente lo visualice cuando introduzca los datos. De esta manera, se podrá detectar desde
donde se produce la creación del Caso.
Alexa Skill Kit (ASK) es una colección de APIs11 y herramientas que permiten crear y
diseñar nuevas capacidades para el dispositivo de Alexa.
Cada usuario que tenga un dispositivo Echo, en el caso de este TFG será el Echo Dot,
puede acceder a cualquier skill de Alexa invocándola con un comando de voz específico
como por ejemplo “Alexa, dime qué tiempo hace hoy”. El modelo de reconocimiento de
voz y de los comandos que el usuario le traslada a Alexa es el siguiente:
11
API: Es la interfaz de programación de aplicaciones que se usa para integrar softwares de diferentes
aplicaciones.
77
Figura 86: Modelo de reconocimiento de voz de Alexa
Alexa tiene una serie de desarrollos que le permite obtener una traducción de la frase que
transmite el usuario a realizar una acción. Dentro de este TFG, se tratará de realizar el
desarrollo tanto la lógica de la skill como la API para que Alexa pueda reconocer el
comando y ejecutar la acción de creación de un registro en Salesforce.
La traducción del lenguaje de la skill que se desarrollará en este TFG para que Alexa
entienda cual es la acción que realizar, se desarrollará utilizando Alexa Skill Kit. En
cambio, la lógica de la skill será desarrollada con AWS Lambda.
Lambda es un servicio que permite ejecutar código sin la necesidad de tener ningún
servidor específico en el que hacerlo. El motivo por el cuál se decide utilizar AWS Lambda
es porque cuando se ejecuta la skill no hay que revisar asignación de recursos de CPU ni
comprobar conectividad, sino que este servicio te lo proporciona directamente.
Para poder realizar el desarrollo de la skill, hay que darse de alta en la página de
desarrolladores de Amazon. Navegando a la página https://developer.amazon.com/login
y haciendo click en el botón “Crea tu cuenta de”, se establecen los datos para poder
generar la cuenta. Este registro es completamente gratuito, al igual que toda la
funcionalidad de Alexa que se va a utilizar en este TFG.
78
Una vez dentro, Alexa Skill Kit proporciona una consola para desarrolladores a través de
la cual pueden manejar las diferentes skills que tengan hechas, probarlas o modificarlas
en caso de que sea necesario.
Para comenzar la configuración de la skill se seguirán los pasos siguiendo el menú que
aparece a la derecha de la pantalla en la siguiente imagen:
79
Para cada uno de los cambios que se realizarán a continuación, antes de continuar, se ha
de hacer click en el botón Save model ya que sino se perderán los cambios realizados.
En segundo lugar, se realizará la configuración de los Intents y Slots. Un intent para Alexa
será el equivalente a la acción que el usuario quiera realizar. Por ejemplo, si quisiéramos
pedir ayuda a Alexa, diciendo la frase “Alexa, necesito tu ayuda”, ésta ejecutaría el intent
help que viene configurado por defecto.
De entre los intents que Alexa proporciona por defecto, se encuentran los siguientes como
los más utilizados por los usuarios que desarrollan skills de Alexa:
• Cancel Intent: Es el intent que permite parar la ejecución de la skill. Además,
también permite parar la ejecución de alguna de las interacciones que están en
curso.
• Help Intent: Es el intent a través del cuál se le puede pedir ayuda a Alexa con
respecto a la skill que está ejecutando.
• Stop Intent: Es el intent que, aunque Alexa esté hablando, te permite parar la
ejecución completa de la skill.
Los tres intents descritos anteriormente, son de uso obligatorio en todas las skills, aunque
a la hora de desarrollar una skill personalizada, como es el caso de AGlexa, no sería
necesario implementarlos.
Los intents como se puede deducir, se ejecutan una vez se le envía un comando de voz
concreto a Alexa. Estos comandos de voz que hacen que los intents se ejecuten se
denominan Utterances. Los utterances son las frases que el usuario puede decir a la hora
de solicitar a Alexa que realice alguna acción. Siguiendo con el ejemplo anterior de
solicitar ayuda a Alexa, el intent sería el HelpIntent y algunos de los utterance podrían
ser: “necesito ayuda”, “ayúdame”, “por favor, sácame del apuro” …
Adicionalmente, dentro de algunas de estas frases (utterance) que sean más concretas
como por ejemplo “ayúdame con la comida”, podemos decirle a Alexa algunos
parámetros a través de los cuales ella pueda realizar alguna búsqueda. A la hora de definir
este tipo de frases, se ha de pensar como un usuario puede realizar cierto tipo de peticiones
y, cuantas más maneras se tengan de realizar la petición, más exacto será que se ejecute
el intent correcto.
En el ejemplo anterior de solicitar ayuda con la comida, Alexa detectará que estamos
solicitándole información sobre comida y a eso es lo que se define como slot. El slot es
una variable que proporciona el usuario a Alexa, de tal manera que pueda realizar alguna
acción sobre ese slot en concreto.
Haciendo una síntesis de los párrafos anteriores, podemos definir los siguientes términos
con los cuales trabajaremos a lo largo de este TFG:
• Intent: Es una petición de un usuario a Alexa.
• Utterance: Conjunto de frases que puede decir un usuario a Alexa y relacionadas
a los intents.
• Slots: Argumentos que los usuarios utilizan en frases y que proporciona
información a Alexa para ejecutar los Intents. Los slots están contenidos en los
utterance.
80
Para crear el intent dentro del apartado del menú “Intents, Samples y Slots”, se hace click
y se navega a la siguiente pantalla.
Haciendo click en el botón Add intent, se genera el nuevo intent con nombre NewCase.
Una vez generado el intent se procederá a definir tanto los slots como los dialogs que el
usuario podrá mantener con Alexa para la generación del Caso.
Dentro de la pantalla del intent se definirán las frases que el usuario le dirá a Alexa para
que comience la conversación de creación de Caso. Estas frases deben escribirse en un
uso coloquial del mensaje ya que, será la frase que desencadene la recogida de datos de
la skill. Estas frases se denominan Utterance y se han definido las siguientes para
desencadenar la conversación:
• “Tengo una incidencia”
• “Tengo una consulta”
• “Tengo un problema”
• “Quiero contactar con la empresa”
81
que el cliente quiere crear. Navegando a través del menú lateral a la sección Slot Types y
haciendo click en el botón Add Slot Type, se establece el nombre “Text” para denominar
a la nueva tipología de slots y, haciendo click en Siguiente, se establecen los valores que
tendrá está tipología de slot. Para este TFG, se definieron los valores: “Incidencia”,
“Consulta”, “Sugerencia” y “Otros”.
Una vez definido la nueva tipología de slot, se procede a crear los slots. Los slots
definidos serán:
82
Figura 93: Pantalla de resumen de slots asociados al intent
Para cumplimentar el diálogo que Alexa mantendrá con el usuario durante la ejecución
de la skill, se estable por cada uno de los slots que se han definido, el diálogo que Alexa
y el usuario mantendrán para poder abrir el Caso en Salesforce.
En primer lugar, para el slot de DNI, el diálogo que se ha definido para la interacción
entre Alexa y el usuario es el siguiente:
En el diálogo del usuario, se puede ver como se utiliza el slot definido como DNI para
que Alexa identifique que las palabras que el usuario diga se corresponden con el slot
DNI. De esa manera, Alexa, almacena el valor para luego utilizarlo en la creación del
Caso.
83
En segundo lugar, para el slot de Type, el diálogo que se ha definido para la interacción
entre Alexa y el usuario es el siguiente:
En el diálogo del usuario, se puede ver como se utiliza el slot definido como Type para
que Alexa identifique que las palabras que el usuario diga se corresponden con el slot
Type. De esa manera, Alexa, almacena el valor para luego utilizarlo en la creación del
Caso.
Por último, para el slot de Subject, el diálogo que se ha definido para la interacción entre
Alexa y el usuario es el siguiente:
En el diálogo del usuario, se puede ver como se utiliza el slot definido como Subject para
que Alexa identifique que las palabras que el usuario diga se corresponden con el slot
Subject. De esa manera, Alexa, almacena el valor para luego utilizarlo en la creación del
Caso.
84
Figura 96: Configuración del diálogo para obtener el Subject
Una vez se ha configurado la skill, se comienza con la realización del código para
conectarlo con el servidor de AWS Lambda y así poder conectar con Salesforce.
Para la realización del código, se ha de crear una cuenta de AWS a través de la página
https://signin.aws.amazon.com/ y haciendo click en el botón Crear una cuenta de AWS.
A continuación, se establecerá el email y el nombre de la cuenta y llegará un código de
verificación para que, una vez que se haya verificado la identidad, se establezca la
contraseña. Al establecer la contraseña, directamente se navegará a la pantalla principal
de la consola de AWS.
85
Dentro de la consola de Lambda, se puede visualizar el menú lateral izquierdo donde se
encuentra la sección de Functions. En esa sección será donde se desarrolle el código
correspondiente a la ejecución de la skill. Para ello, se encuentra una vía rápida de crear
una función y es, desde la pantalla de la consola de AWS Lambda, haciendo click en el
botón Create function.
Para este TFG, se seleccionará la creación a través de Author from scratch y se establecen
los siguientes valores para la generación de la función.
• Nombre de la función: “AlexaSkill”
• Runtime: Es el lenguaje con el cual se va a escribir el código de la función. Para
este TFG se utilizará “Node.js 16.x”
• Se creará automática un rol de ejecución con los permisos básicos de ejecución de
lambda.
86
o A través del comando de la consola “npm install nforce”
o A través del GitHub donde se encuentra el repositorio de la librería
completa. En este TFG se ha realizado la descarga a través de este método
ya que se descarga directamente el fichero comprimido. Navegando a la
página https://github.com/kevinohara80/nforce dentro del botón Code se
selecciona la acción Download ZIP y con ello se descarga el fichero.
• La librería de aws-sdk proporciona la API para los servicios de AWS de tal manera
que permite conectar la skill y ejecutarla utilizando métodos en la función de
lambda. Para descargar esta librería, navegando a la página
https://github.com/awsdocs/aws-javascript-developer-guide-v2 y haciendo click
en el botón Code se selecciona la acción Download ZIP y con ello se descarga el
fichero.
Una vez se tienen ambas librerías descargadas como fichero comprimido, se añadirán
como layers dentro de la consola de lambda. Un layer te permite añadir parte del código
de tal manera que no se tenga una sobrecarga de archivos en la ruta de la función lambda
que se crea dentro de la consola de desarrollo.
Para ello crear las layers, en el menú de navegación de la consola de lambda aparece la
opción Layers y, navegando a esa opción y haciendo click en Create layer se establecerán
los siguientes valores:
• Librería de aws-sdk
o Name: AWSSDK
o Description: Librería de aws-sdk
o Upload a .zip file: Se selecciona el fichero comprimido de la librería de
aws-sdk.
o Compatible runtimes: Se seleccionan los valores de lenguajes utilizados
en la función lambda con los que la librería ha de ser compatible. En este
caso, se selecciona el valor Node.js 16.x indicando la versión del código
con la que se desarrollarán los ficheros de la skill.
• Librería de nforce
o Name: nforce
o Description: Librería de nforce
o Upload a .zip file: Se selecciona el fichero comprimido de la librería de
nforce.
o Compatible runtimes: Se seleccionan los valores de lenguajes utilizados
en la función lambda con los que la librería ha de ser compatible. En este
caso, se selecciona el valor Node.js 16.x indicando la versión del código
con la que se desarrollarán los ficheros de la skill.
87
Figura 99: Configuración de layer
Cuando ya se han generado las capas, se procede a añadirlas a la función de lambda que
vamos a desarrollar. Para ello, se navega de nuevo a la consola de desarrollo de lambda
navegando a la sección de layers, haciendo click en el botón Add a layer se selecciona la
layer a añadir. Este paso se repetirá hasta que ambas layers estén añadidas en la función.
88
Figura 101: Configuración de endpoint
89
Figura 103: Configuración de endpoint
Para configurar esta connectep app, dentro de Salesforce siguiendo la ruta Configuración
> Apps > App Manager, haciendo click en el botón New connected app, se establecerán
los siguientes datos para crear la aplicación:
• Connected App Name: AGlexa
• Api Name: AGlexa
• Contact email: alba.ggines@gmail.com
• Enable Oauth Settings: Habilitado para permitir la autenticación con las claves
que proporcione la aplicación.
90
Figura 104: Pantalla de configuración de connected app de Salesforce
En primer lugar, se definen cada una de las variables que se utilizarán en el código:
• CLIENT_ID: Variable que almacena el identificador único de la connected app
creada en Salesforce
• CLIENT_SECRET: Variable que almacena el número secreto único de la
connected app creada en Salesforce.
• USR: Usuario de Salesforce con el que se realizará la integración.
• PASS: Contraseña del usuario de Salesforce con el que se realizará la integración.
• APP: Identificador único de la skill de Alexa. Este identificador único es el que se
encuentra en la consola de desarrollo de skills de Alexa.
A continuación, se deberán referir las librerías de tal manera que, dentro de las funciones
desarrolladas, permita la utilización de los métodos y funciones que contengan. Esto se
realizará a través de la función require.
Una vez añadidas las librerías al código, se definirá el objeto de conexión con Salesforce
a través de uno de los métodos proporcionados por nforce.
91
La función createConnection de nforce se utiliza para poder crear el objeto con los
parámetros necesarios para poder realizar la conexión con el servicio que proporciona
Salesforce a través de la connected app que se creó en el apartado anterior. Esta conexión
se realizará en la función del intent de NewCase que se explicará más adelante en este
apartado.
92
El método de la librería de nforce createSObject permite definir los valores de los
diferentes campos del registro que se creará en Salesforce. Una vez definido, el método
authenticate autentica al usuario en base a los parámetros que se establecen y retorna la
creación del registro en Salesforce a través del método insert.
El resto de los métodos utilizados como intents se han configurado como los que Alexa
proporciona por defecto en cualquier skill, modificando las frases a través de las cuales
Alexa contestará a cada uno de ellos. Por ejemplo: En el método de ayuda, Alexa
interpreta este método cuando le dices “Alexa necesito ayuda”. Cuando el usuario diga
esa frase o similar, Alexa contestará “Para utilizar la skill por favor di la frase: Alexa,
tengo un problema”.
Por último, el método exports.handler es el controlador que hace que se ejecute alguno
de los intents desarrollados por código cuando desde Alexa se invoca la función lambda.
que el realiza la función de constructor de la skill ya que es donde se indican los handlers
que se han desarrollado y exporta la función.
93
• Privacy policy: Dado que la skill de Alexa desarrollada recoge datos personales
del usuario que la utiliza, se ha de establecer la URL a través de la cuál los usuarios
pueden acceder a las políticas de privacidad establecidas en España. Para ello, se
establece la página web de https://www.aepd.es/es/politica-de-privacidad-y-
aviso-legal. Esta página web es página de la agencia española de protección de
datos.
94
Al hacer click en Save and continue, se navega automáticamente a la sección de
Certification. En esta sección se valida la skill previo de publicarla y, una vez validada,
se certifica y se publica. La certificación de la skill es una revisión que se hace desde el
departamento de desarrolladores de skills de Alexa y certifican si la skill puede ser
distribuida o no. La revisión de la skill puede tardar unos minutos y una vez está validada,
se publica automáticamente.
Para finalizar, cuando la skill esté publicada, se comenzarán las pruebas con usuarios y
se detallará la instalación de la skill.
95
V. EVALUACIÓN
Una vez se ha realizado el desarrollo del CRM, se comienza la fase de carga de datos en
la nueva organización. El cliente AGlexa proporciona los datos necesarios para la
realización de la carga y, desde la parte de desarrollo de este TFG, se realiza la carga
masiva a través de la herramienta de importación de datos de Salesforce. Se adjuntará
como anexo de este TFG la plantilla de carga de datos con la que se realiza la carga.
96
Agente Desde la pestaña de Selecciona la vista de Visualiza los
Casos Casos Alexa Casos con
entrada Alexa
Agente El cliente registra Se pone como Salta la alerta en
un Caso a través de disponible en Omnichannel
Alexa Omnichannel del Caso que ha
abierto el cliente
Agente Salta la alerta en Acepta el Caso de El Caso queda
Omnichannel de un Omnichannel asignado al
nuevo Caso agente
Agente Tiene un Caso Gestiona el Caso Se cierra el
asignado cambiando el estado Caso.
hasta su cierre
Casos Agente El agente ha Navega a la pestaña Tiene acceso a
manuales iniciado sesión en de Casos en la visualizar los
Salesforce Consola de AGlexa Casos
Agente Desde la pestaña de Selecciona la vista de Visualiza todos
Casos Todos los Casos los Casos
abiertos creados
Agente Se ha recibido un Hace click en el botón Se crea un Caso
Caso a través de nuevo y cumplimenta asignado al
otro canal los campos agente
Tabla 14: Casos de uso de usuarios finales
97
Figura 112: Envío de correo electrónico al buzón de email-to-case
98
Figura 114: Formulario web cumplimentado por el usuario de pruebas
99
Figura 116: Pantalla de simulación de conversación con Alexa
100
• Caso de uso: El usuario realiza la prueba de que su capacidad de trabajo sea tres
Casos atendiéndose o en la cola para atenderse a la vez. Para ello, los clientes
abren Casos y el agente visualiza en pantalla a la vez únicamente tres Casos entre
los Casos de Omnichannel y en los que actualmente esté trabajando.
Finalmente, la mayoría de las pruebas que han realizado los usuarios han sido exitosas,
exceptuando las pruebas de la integración con Alexa.
Por último, quiero comentar que, de cara al histórico de los casos abiertos de cada uno de
nuestros clientes, se le puede dar una atención más personalizada. Además, si un cliente
contacta con uno de nosotros por un problema en concreto, cuando otro cliente contacte
por el mismo problema, podremos actuar con un mejor tiempo de resolución del caso. El
sistema permite realizar estas métricas y examinar ciertos índices como el de volumen de
casos por canal, volumen de casos atendidos por agente… De tal manera que se pueden
tomar acciones en el departamento de manera más ágil.”
101
VI. CONCLUSIONES
El principal objetivo del proyecto que era proveer al cliente de una herramienta de gestión
centralizada de datos con diferentes canales de entrada de Casos se ha cumplido de
manera satisfactoria. En cuanto a la satisfacción general del cliente, por los comentarios
tras realizar las pruebas, ha sido positiva ya que ha visto una mejora de su sistema de
gestión actual.
Dado que no es una implementación de una empresa real, sino que es una empresa ficticia
simulada para este TFG, las principales ventajas que se obtiene en un corto medio plazo
de la utilización de Salesforce son las siguientes:
• Reducción de los tiempos de gestión de Casos
• Centralización de los datos de los clientes
• Aumentar la satisfacción del cliente
• Distribución de la carga de trabajo en el departamento de atención al cliente.
• Aumento de la satisfacción de los trabajadores del departamento
Este sistema, en un medio largo plazo, debido a la reducción de tiempos de los gestores
que trabajan en el departamento de atención al cliente, permitirá que la empresa pueda
aumentar dicho departamento, teniendo una mayor capacidad de resolución de Casos y
así seguir aumentando la satisfacción del cliente.
102
En cuanto a la planificación inicial del proyecto, no se ha podido cumplir debido a que se
ha desarrollado en paralelo con una jornada laboral con una tendencia de horas extras que
impedían dedicar el tiempo necesario a la realización del TFG. Como medida de
mitigación contra el tiempo, se excluyeron algunos de los canales que se tenía planificado
desarrollar como una comunidad pública en la que el cliente pudiera crear sus Casos y la
base de preguntas frecuentes que también estaría incluida en la comunidad pública.
103
VII. BIBLIOGRAFÍA
• https://formatalent.com/formacion-en-oracle-historia-y-caracteristicas/
• https://www.lahistoriadelapublicidad.com/protagonista-1050/philip-kotler
• https://www.oracle.com/index.html
• https://crearsoftware.com/2015/05/18/historia-del-crm/
• https://www.crmparaempresas.es/crm-su-historia/
• https://www.salesforce.com/mx/products/
• https://www.timetoast.com/timelines/historia-de-los-sistemas-de-
reconocimiento-de-voz-d775c41f-7117-40e8-a102-887c8332b84f
• https://www.ibm.com/ibm/history/ibm100/us/en/icons/speechreco/transform/
• https://www.exevi.com/la-batalla-de-los-asistentes-virtuales-ha-comenzado-
cual-es-tu-preferido/
• https://www.alisys.net/es/blog/de-audrey-a-siri-historia-y-uso-de-los-asistentes-
de-virtuales
• https://es.wikipedia.org/wiki/Asistente_virtual#cite_note-6
• https://en.wikipedia.org/wiki/Google_Assistant#cite_note-20
• https://es.wikipedia.org/wiki/Amazon_Alexa
• https://www.droneymas.com/amazon-echo-2a-genaracion/
• https://support.google.com/googlenest/answer/7072284?hl=es-419
• https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-
nodejs/construct-skill-instance.html
• https://github.com/alexa-samples/skill-sample-nodejs-salesforce
• https://www.npmjs.com/package/nforce
• https://www.npmjs.com/package/aws-sdk
• https://www.npmjs.com/package/ask-sdk
• https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-
nodejs/overview.html
• https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-
nodejs/construct-skill-instance.html
• https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-
nodejs/handle-requests.html
• https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-
nodejs/build-responses.html
• https://developer.amazon.com/en-US/docs/alexa/ask-overviews/voice-
interaction-models.html
• https://developer.amazon.com/en-US/docs/alexa/custom-skills/host-a-custom-
skill-as-a-web-service.html
• https://developer.amazon.com/en-US/docs/alexa/custom-skills/create-intents-
utterances-and-slots.html
104
VIII. REFERENCIAS
[1] Figura1: Philip Kotler, catedrático de Marketing Internacional: https://www.reasonwhy.es
[2] Figura 2: Logos de CRM en estudio: https://www.oracle.com, https://www.salesforce.com,
https://www.sap.com
[3] Figura 3: Dispositivo de asistente de voz, Alexa: https://www.amazon.es
[4] Figura 4: Base de datos en la época de los 80: https://crearsoftware.com/2015/05/18/historia-del-crm/
[5] Figura 5: Tarjeteros Rolodex: https://www.julienslive.com/m/lot-details/index/catalog/146/lot/59724/
[6] Figura 6: Mike Munhey y Pat Sullivan, fundadores de ACT: https://www.mikemuhney.com/,
https://www.forbes.com
[7] Figura 7: Cofundadores de Oracle: https://www.businessinsider.com/
[8] Figura 8: Socios fundadores de SAP: https://aancos.com
[9] Figura 9: Thomas Siebel: https://en.wikipedia.org/wiki/Thomas_Siebel
[10] Figura 10: Marc Benioff, fundador de Salesforce: http://x-cellence.com/marc-benioff-the-genius-
behind-customer-relation-management/
[11] Figura 11: Logo oficial de las nubes de Salesforce: https://www.salesforce.com/eu/products/sales-
cloud/why-salesforce/
[12] Figura 12: Logo de la nube de ventas: https://www.salesforce.com
[13] Figura 13: Logo de la nube de Servicios: https://www.salesforce.com
[14] Figura 14: Logo de la nube de Marketing: https://www.salesforce.com
[15] Figura 15: Logo de la nube de Comunicades: https://www.salesforce.com
[16] Figura 16: Logo de la nube de ventas de SAP: https://www.sap.com/spain/products/crm.html
[17] Figura 17: Logo de la nube de Servicios de SAP: https://www.sap.com/spain/products/crm.html
[18] Figura 18: Logo de la nube de Marketing de SA : https://www.sap.com/spain/products/crm.html
[19] Figura 19: Imagen de Audrey: https://www.exevi.com/la-batalla-de-los-asistentes-virtuales-ha-
comenzado-cual-es-tu-preferido/
[20]: Figura 20: Imagen de Shoebox: https://www.ibm.com/
[21] Figura 21: Logo de Siri: https://www.freepng.es/hd-png/siri.html
[22] Figura 22: Logo de Cortana: https://commons.wikimedia.org
[23] Figura 23: Logo de Alexa: https://www.pinterest.es
[24] Figura 24: Logo de Google Assistant: https://es.wikipedia.org/wiki/Asistente_de_Google
[25] Figura 25: Echo de Amazon: https://www.electrowifi.es/es/altavoces/altavoz-amazon-echo-2-
generacion
[26] Figura 26: Echo Plus de Amazon: https://www.amazon.es
[27] Figura 27: Echo Dot de Amazon: https://www.amazon.es
[28] Figura 28: Echo Spot de Amazon: https://www.amazon.es
[29] Figura 29: Google Home: https://www.did.ie
[30] Figura 30: Google Home Mini: https://www.mediamarkt.es
[31] Figura 31: Google Nest: https://store.google.com/es/category/connected_home
[31] Figura 32: Google Nest Hub: https://www.powerplanetonline.com
105
IX. ANEXO
En este apartado se adjuntan las tablas de la carga de datos inicial que se realizó previo
a iniciar las pruebas con los usuarios de la herramienta. La herramienta utilizada es la
extensión de Google Chrome llamada Salesforce Inspector.
Una vez instalada, desde la pantalla de Salesforce, en el lateral aparecerá una pestaña con
una flecha que simula un desplegable. Al hacer click, se visualiza la pantalla de Salesforce
inspector donde te permite realizar las acciones que se explican a continuación.
En el caso de este TFG, se han realizado las siguientes plantillas de Excel que contemplan
los datos que se cargarán en el sistema. El formato de la plantilla de Excel que se ha
desarrollado es cabecera y cuerpo. En la cabecera se encuentra el Nombre de
desarrollador de cada uno de los campos del objeto del que se va a realizar la subida. Cada
106
fila que se muestra a continuación de la cabecera es un registro, es decir, se cargarán
tantos registros como filas haya en el Excel.
Plantilla de Cuentas
Esta plantilla está vinculada al objeto Cuentas personales de Salesforce y contiene la
información de los clientes de AGlexa.
Plantilla de Productos
Esta plantilla está vinculada al objeto Productos de Salesforce y contiene la información
de los Productos del catálogo de AGlexa.
Plantilla de Pedidos
Esta plantilla está vinculada al objeto Pedido de Salesforce y contiene la información de
los pedidos de los clientes de AGlexa.
107
Figura 123: Tabla de inserción de Pedidos
Una vez se han realizado las plantillas de carga de datos, se realizará la importación con
la herramienta desde la sección Data import. Para ello, haciendo click en la opción Data
import se navega a la pantalla de importación de datos.
108
Figura 125: Pantalla de acciones de Salesforce Inspector
109
Cuando se tengan preparados los datos en la pantalla como se muestra en la imagen
anterior, se hace click en Import y los registros quedan almacenados en Salesforce.
110
Universidad de Alcalá
Escuela Politécnica Superior
111