BR112021011877A2 - Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, e, tag de script - Google Patents

Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, e, tag de script Download PDF

Info

Publication number
BR112021011877A2
BR112021011877A2 BR112021011877-2A BR112021011877A BR112021011877A2 BR 112021011877 A2 BR112021011877 A2 BR 112021011877A2 BR 112021011877 A BR112021011877 A BR 112021011877A BR 112021011877 A2 BR112021011877 A2 BR 112021011877A2
Authority
BR
Brazil
Prior art keywords
widget
location
user
cloud
server
Prior art date
Application number
BR112021011877-2A
Other languages
English (en)
Inventor
Christopher Carl Highman
Kyle Duke
Guysung Kim
Armando Luja
Michael J. Weldy
Kevin Wiegand
Original Assignee
Greeneden U.S. Holdings Ii, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Greeneden U.S. Holdings Ii, Llc filed Critical Greeneden U.S. Holdings Ii, Llc
Publication of BR112021011877A2 publication Critical patent/BR112021011877A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/01Customer relationship services
    • G06Q30/015Providing customer assistance, e.g. assisting a customer within a business location or via helpdesk
    • G06Q30/016After-sales
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0859Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
    • H04L41/0863Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0869Validating the configuration within one network element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5048Automatic or semi-automatic definitions, e.g. definition templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5061Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the interaction between service providers and their network customers, e.g. customer relationship management
    • H04L41/5067Customer-centric QoS measurements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local. a presente invenção se refere a um sistema e um método para entrega de ferramentas modulares através de um ambiente de computação remoto baseado em nuvem. os usuários podem criar e personalizar extensões às ferramentas modulares para integração ao sistema de produto, sem exigir alterações no produto. com o uso de uma tag de script adicionada a um site web, um usuário pode instalar a ferramenta modular em um site web. as extensões de ferramenta modular são capazes de se comunicar diretamente com manipuladores e sites web, e são capazes de se tornarem diretamente integradas a um produto baseado em local. isso pode ser feito através de uma api multiplexada exposta às extensões de ferramenta modular que as acopla diretamente ao produto baseado em local. as ferramentas modulares são capazes de serem configuradas no produto baseado em local, porém são hospedadas na nuvem e, dessa forma, o produto baseado em local é capaz de receber integração e implantação contínuas provenientes da nuvem.

Description

1 / 33 MÉTODO PARA ENTREGAR WIDGETS, ATRAVÉS DE UM AMBIENTE DE COMPUTAÇÃO REMOTO BASEADO EM NUVEM, A
UM PRODUTO DE PLATAFORMA DE EXPERIÊNCIA DE CLIENTE BASEADO EM LOCAL, E, TAG DE SCRIPT ANTECEDENTES
[001] A presente invenção se refere genericamente a sistemas e métodos de telecomunicações, bem como a componentes web modulares. Mais particularmente, a presente invenção refere-se ao fornecimento de componentes web modulares em um centro de contato ou centro empresarial de negócios através de um ambiente de computação remoto baseado em nuvem.
REFERÊNCIA REMISSIVA A PEDIDO CORRELATO
[002] Este pedido está relacionado ao, e reivindica o benefício do, pedido de patente US n° 16/229.027, intitulado "SYSTEM AND METHOD FOR DELIVERING MODULAR TOOLS", depositado no United States Patent and Trademark Office (USPTO - Departamento de Marcas e Patentes dos EUA) em 21 de dezembro de 2018, cujo conteúdo está aqui incorporado.
SUMÁRIO
[003] A presente invenção se refere a um sistema e um método para entrega de ferramentas modulares através de um ambiente de computação remoto baseado em nuvem. Os usuários podem criar e personalizar extensões às ferramentas modulares para integração ao sistema de produto, sem exigir alterações no produto. Com o uso de uma tag de script adicionada a um site web, um usuário pode instalar a ferramenta modular em um site web. As extensões de ferramenta modular são capazes de se comunicar diretamente com manipuladores e sites web, e são capazes de se tornarem diretamente integradas a um produto baseado em local. Isso pode ser feito através de uma API multiplexada exposta às extensões de ferramenta modular que as acopla diretamente ao produto baseado em local. As ferramentas modulares são
2 / 33 capazes de serem configuradas no produto baseado em local, porém são hospedadas na nuvem e, dessa forma, o produto baseado em local é capaz de receber integração e implantação contínuas provenientes da nuvem.
[004] Em uma modalidade, é apresentado um método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, sendo que o método compreende: criar e salvar um widget por um usuário através de uma interface de usuário fornecida em um dispositivo conectado ao produto de plataforma de experiência de cliente baseado em local; gerar um ID exclusivo e armazenar uma configuração do widget como um objeto JSON plano dentro de um subsistema do produto de plataforma de experiência de cliente baseado em local; gerar um trecho de código JavaScript associado ao widget como uma tag de script HTML ("Hypertext Markup Language" - linguagem de marcação de hipertexto); aplicar, a uma página em um site web, o trecho de código associado ao widget; carregar a implementação do widget, onde uma solicitação de registro não autenticada é enviada a um servidor especificado no trecho de código; e converter um objeto de configuração em um objeto de configuração JSON, do qual se espera que forneça contexto ao widget e preencha o widget com o contexto.
[005] A tag de script pode compreender um ID exclusivo e atributos de servidor para o widget. A tag de script pode também compreender um script estático comum.
[006] Onde o widget compreende uma extensão, a conversão de um objeto de configuração em um objeto de configuração JSON, do qual se espera que forneça contexto ao widget e preencha o widget com o contexto, compreende usar uma API de multiplexação com um ponto final REST, onde quaisquer campos de entrada para preenchimento são usados como entrada de JSON para um manipulador. A invocação da entrada JSON faz com que uma solicitação de REST seja enviada ao servidor. O manipulador serve como
3 / 33 ponto de integração.
[007] Em uma outra modalidade, é apresentado um método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, sendo que o método compreende: criar e salvar uma pluralidade de instâncias de widget por um usuário através de uma interface de usuário fornecida em um dispositivo conectado ao produto de plataforma de experiência de cliente baseado em local; selecionar uma primeira instância dentre a pluralidade de instâncias de widget pelo usuário; gerar um ID exclusivo e armazenar uma configuração da primeira instância como um objeto JSON plano dentro de um subsistema do produto de plataforma de experiência de cliente baseado em local; gerar uma tag de script para a primeira instância através da interface de usuário; instalar a tag de script gerada em uma página de um site web do usuário; carregar a implementação da primeira instância de widget, onde uma solicitação de registro não autenticada é enviada a um servidor especificado na tag de script; converter, por meio da arquitetura de widgets dentro do produto de plataforma de experiência de cliente baseado em local, um objeto de configuração em um objeto de configuração JSON do qual se espera que forneça contexto à instância de widgets do usuário; e preencher com contexto a primeira instância.
[008] Onde cada uma dentre a pluralidade de instâncias de widget tiver extensões associadas, as extensões podem ser personalizadas ou integradas. Extensões personalizadas podem ser hospedadas pelo usuário e referenciadas por uma instância de configuração. As extensões e as configurações associadas podem ser baseadas em nuvem e aparecer dinamicamente para o produto de plataforma de experiência de cliente baseado em local.
[009] A interface de usuário compreende campos que atuam como
4 / 33 itens de alternância de recurso para recursos e funcionalidades. Os campos estão disponíveis com base nas permissões do usuário.
[0010] Uma tag de script compreende um script estático comum. A tag de script pode ser codificada e decodificada ao ocorrer o carregamento. A tag de script compreende um ID exclusivo e atributos de servidor para o widget.
[0011] Quaisquer alterações nos widgets são executadas de modo dinâmico e contínuo por meio da nuvem ao produto de plataforma de experiência de cliente baseado em local.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A Figura 1 é um diagrama ilustrando uma modalidade de uma infraestrutura de comunicação.
[0013] A Figura 2 é um diagrama que ilustra uma modalidade de uma arquitetura de widgets.
[0014] A Figura 3 é um fluxograma que ilustra uma modalidade de um processo de configuração e implantação para widgets.
[0015] A Figura 4A é um diagrama que ilustra uma modalidade de um dispositivo de computação.
[0016] A Figura 4B é um diagrama que ilustra uma modalidade de um dispositivo de computação.
DESCRIÇÃO DETALHADA
[0017] Com o propósito de promover um entendimento dos princípios da invenção, agora será feita referência à modalidade ilustrada nos desenhos, e linguagem específica será usada para descrever a mesma. Será entendido, todavia, que não se pretende com isso qualquer limitação do escopo da invenção. Quaisquer alterações e modificações adicionais nas modalidades descritas, e quaisquer aplicações adicionais dos princípios da invenção conforme aqui descritos, são contempladas como normalmente ocorreria ao versado na técnica à qual está relacionada a presente invenção.
5 / 33
[0018] Um widget, no sentido de computação, compreende um aplicativo, ou um componente de uma interface, que possibilita que um usuário execute uma função ou acesse um serviço. Tradicionalmente, os widgets podem ser configurados em um site web. Um usuário precisa fazer upload de um arquivo JavaScript compreendendo suas próprias permissões, e trata-se de um processo muito manual. Caso um centro de contatos ou uma grande empresa que usa widgets em seus centros de contatos ou plataforma empresarial precisem fazer alterações, é necessária a presença de um desenvolvedor ou administrador de TI. Isso é impraticável se uma mudança rápida for necessária, como um período de volume alto, para citar um exemplo não limitador. Em uma modalidade, um administrador de centro de contato ou plataforma empresarial é capaz de designar pessoas (como um supervisor) no piso do centro de contato para fazer alterações nos widgets instantaneamente. Por exemplo, o supervisor pode alterar atribuições de manuseio de grupos de trabalho sem precisar envolver um administrador de TI e, assim, aliviar o acúmulo em um grupo de trabalho. De modo geral, direitos administrativos podem ser delegados.
[0019] Em uma modalidade, os widgets (ou, alternativamente, as ferramentas modulares) podem ser hospedados em uma plataforma baseada em nuvem (por exemplo, a plataforma PureCloud® da Genesys Telecommunications Laboratories, Inc., Amazon Web Services, Microsoft® Azure, uma nuvem privada etc.) e comunicar-se de modo ininterrupto com uma plataforma baseada em local. Essa plataforma baseada em local pode ser executada em um centro de contatos ou em um ambiente empresarial. Em uma modalidade, a plataforma baseada em local compreende uma solução de comunicação multicanais "tudo-em-um", como a plataforma PureConnect da Genesys Telecommunications Laboratories, Inc., para citar um exemplo não limitador. Em uma modalidade, a comunicação entre nuvem e local ocorre através de um método de multiplexação que é aplicado ao contexto de
6 / 33 ferramentas modulares baseadas em web, a fim de permitir uma pluralidade de ações. Essas ferramentas modulares têm a extensibilidade para acionar a automação no nível de servidor da plataforma baseada em local sem exigir quaisquer mudanças de produto. Pode-se usar o Interaction Designer (designer de interações), ou qualquer aplicativo no lado do cliente que permita a um usuário modelar novos processos de interação e personalizar processos de interação existentes. Esses modelos são representados dentro dos manipuladores de ad do designer, programas de software que descrevem o que o processador precisa fazer quando um evento específico ocorre na rede. O Interaction Designer é um gerador de aplicativos gráfico. Com o uso de um programa como Interaction Designer, podem ser escritos programas (ou manipuladores) que controlam vários comportamentos de processamento de interação dentro da plataforma baseada em local. Os métodos de uma modalidade do sistema para widgets aqui descritos buscam se comunicar de uma maneira especificada de modo que um usuário possa usar uma interface web que permita que tanto os widgets como o servidor falem continuamente um com o outro. Como resultado, os usuários (aqueles que executam o centro de contatos ou a plataforma empresarial de negócios) não precisam se preocupar em atualizar os arquivos de widgets.
[0020] Em uma modalidade, os widgets compreendem componentes modulares da web que podem ser implantados diretamente em sites web. Esses componentes modulares da web permitem serviços como chat ao vivo, chamadas de retorno, ajuda contextual, etc., para citar alguns exemplos não limitadores. Os widgets podem também compreender extensões para uma interface de programação de aplicativo (API - "Application Programming Interface") que permitem funcionalidades como bate-papo na web, chamadas de retorno e conavegação. As extensões podem compreender suplementos ("add-ins") criados e adicionados a um widget. As extensões também podem ser hospedadas na nuvem ou onde quer que o usuário decida. As extensões
7 / 33 podem ser construídas pelos usuários do sistema para suportar qualquer número de funções exclusivas para as quais seja ideal ter uma interface de widget. Por exemplo, em uma modalidade, os widgets podem ser elementos aperfeiçoados e leves que podem ser adicionados a um site web empresarial para dar suporte a atividades como chat com um agente. Extensões para widgets oferecem a capacidade de aproveitar as ferramentas de automação da plataforma baseada em local. Em outra modalidade, os widgets podem compreender extensões baseadas em JavaScript hospedadas e configuradas em nuvem, que implementam uma API específica sob um modelo de liberação continuamente integrado e implantado em um produto de plataforma de experiência de cliente baseado em local (como a plataforma PureConnect da Genesys Telecommunications Laboratories, Inc.). Em uma outra modalidade, isso poderia também se aplicar a um produto de plataforma baseado em nuvem. Sistemas de central de contatos
[0021] A Figura 1 é um diagrama ilustrando uma modalidade de uma infraestrutura de comunicação, indicada de modo geral em 100. Por exemplo, a Figura 1 ilustra um sistema para dar suporte a uma central de contatos no fornecimento de serviços de central de contatos. A central de contatos pode ser uma instalação interna a um negócio ou empresa para servir à empresa no desempenho das funções de vendas e serviço relacionados aos produtos e serviços disponíveis através da empresa. Em um outro aspecto, a central de contatos pode ser operada por um fornecedor de serviços terceirizado. Em uma modalidade, a central de contatos pode operar como um sistema híbrido, no qual alguns componentes do sistema de central de contatos são hospedados no local da central de contatos e outros componentes são hospedados remotamente (por exemplo, em um ambiente baseado em nuvem). A central de contatos pode ser implantada em equipamento dedicado à empresa ou ao fornecedor de serviços terceirizado, e/ou implantada em um ambiente de
8 / 33 computação remoto como, por exemplo, um ambiente de nuvem privado ou público com infraestrutura para dar suporte a múltiplas centrais de contatos para múltiplas empresas. Os vários componentes do sistema de central de contatos podem também ser distribuídos por várias localizações geográficas e ambientes de computação, e não necessariamente contidos em um único local, ambiente de computação ou mesmo dispositivo de computação.
[0022] Os componentes da infraestrutura de comunicação indicados de modo geral em 100 incluem: uma pluralidade de dispositivos de usuário final 105A, 105B, 105C; uma rede de comunicações 110; um comutador/gateway de mídia 115; um controlador de chamadas 120; um servidor de IMR 125; um servidor de roteamento 130; um dispositivo de armazenamento 135; um servidor de estatísticas 140; uma pluralidade de dispositivos de agente 145A, 145B, 145C compreendendo os workbins 146A, 146B, 146C; um dispositivo de administrador/supervisor 145D; um servidor de multimídia/mídias sociais 150; servidores web 155; um servidor de iXn 160; um UCS 165; um servidor de emissão de relatórios 170; e serviços de mídia 175.
[0023] Em uma modalidade, o sistema de central de contatos gerencia recursos (por exemplo, equipes, computadores, equipamentos de telecomunicação etc.) para possibilitar a prestação de serviços via telefone ou outros mecanismos de comunicação. Esses serviços podem variar dependendo do tipo de central de contatos, e podem se estender do atendimento ao cliente a help desk, resposta a emergências, telemarketing, registro de pedidos etc.
[0024] Clientes, potenciais clientes ou outros usuários finais (coletivamente chamados de clientes ou usuários finais) que desejem receber serviços da central de contatos podem iniciar comunicações de entrada (por exemplo, chamadas de telefonia, mensagens de e-mail, chats etc.) com a central de contatos por meio de dispositivos de usuário final 105A, 105B e 105C (coletivamente citados como 105). Cada um dos dispositivos de usuário
9 / 33 final 105 pode ser um dispositivo de comunicação convencional na técnica, como um telefone, telefone sem fio, smartphone, computador pessoal, tablete eletrônico, computador portátil etc., para citar alguns exemplos não limitadores. Os usuários operando os dispositivos de usuário final 105 podem iniciar, gerenciar e responder a chamadas telefônicas, mensagens de e-mail, chats, mensagens de texto, sessões de navegação na web e outras transações multimídia. Embora três dispositivos de usuário final 105 sejam ilustrados em 100 por uma questão de simplicidade, qualquer número pode estar presente.
[0025] Comunicações de entrada e saída de e para os dispositivos de usuário final 105 podem percorrer uma rede 110, dependendo do tipo de dispositivo que estiver sendo usado. A rede 110 pode compreender uma rede de comunicação de serviços de telefone, celular e/ou dados, e pode também compreender uma rede de telefonia comutada privada ou pública (PSTN - "Private or Public Switched Telephone Network"), uma rede de área local (LAN - "Local Area Network"), uma rede de longa distância (WAN - "Wide Area Network") privada e/ou uma WAN pública, como a Internet, para citar um exemplo não limitador. A rede 110 pode também incluir uma rede de operadora sem fio, inclusive uma rede de acesso múltiplo por divisão de código (CDMA - "Code Division Multiple Access"), uma rede de sistema global para comunicações móveis (GSM - "Global System for Mobile Communications"), ou qualquer rede/tecnologia sem fio convencional na técnica, incluindo, mas não se limitando a, 3G, 4G, LTE etc.
[0026] Em uma modalidade, o sistema de central de contatos inclui um comutador/gateway de mídia 115 acoplado à rede 110 para receber e transmitir chamadas de telefonia entre os usuários finais e a central de contatos. O comutador/gateway de mídia 115 pode incluir um comutador de telefonia ou um comutador de comunicação configurado para funcionar como um comutador central para roteamento em nível de agente dentro da central. O comutador pode ser um sistema de comutação por hardware ou um
10 / 33 comutador implementado via software. Por exemplo, o comutador 115 pode incluir um distribuidor automático de chamadas, uma central de comunicação de ramal privado (PBX - "Private Branch Exchange"), um comutador de software baseado em IP e/ou qualquer outro comutador com hardware e software especializados, configurado para receber interações oriundas da Internet e/ou interações oriundas da rede telefônica provenientes de um cliente, e rotear essas interações para, por exemplo, um dispositivo de telefonia ou comunicação de um agente. Neste exemplo, o comutador/gateway de mídia estabelece uma trajetória/conexão de voz (não mostrada) entre o cliente fazendo a chamada e o dispositivo de telefonia do agente, mediante o estabelecimento, por exemplo, de uma conexão entre o dispositivo de telefonia do cliente e o dispositivo de telefonia do agente.
[0027] Em uma modalidade, o comutador é acoplado a um controlador de chamadas 120 que pode, por exemplo, servir como um adaptador ou uma interface entre o comutador e o restante dos componentes de roteamento, monitoramento e outros componentes de manejo de comunicação da central de contatos. O controlador de chamada 120 pode ser configurado para processar chamadas PSTN, chamadas VoIP, etc. Por exemplo, o controlador de chamada 120 pode ser configurado com software de integração de telefonia por computador (CTI) para fazer interface com o comutador/gateway de mídia e o equipamento de central de contato. Em uma modalidade, o controlador de chamadas 120 pode incluir um servidor de protocolo de início de sessão (SIP - "Session Initiation Protocol") para processar chamadas de SIP. O controlador de chamadas 120 pode também extrair dados sobre a interação do cliente, como o número de telefone de quem fez a chamada (por exemplo, o número da identificação automática de número (ANI - "Automatic Number Identification")), o endereço de protocolo da internet (IP - "Internet Protocol"), ou o endereço de e-mail do cliente, e comunicar-se com outros componentes do sistema 100 no processamento da
11 / 33 interação.
[0028] Em uma modalidade, o sistema 100 inclui adicionalmente um servidor de resposta interativa por mídia (IMR - "Interactive Media Response") 125. O servidor IMR 125 pode também ser chamado de um sistema de autoajuda, um assistente virtual, etc. O servidor IMR 125 pode ser similar a um servidor de resposta de voz interativa (IVR - "Interactive Voice Response"), exceto pelo fato de que o servidor IMR 125 não está restrito a voz e, adicionalmente, pode cobrir uma variedade de canais de mídia. Em um exemplo ilustrando a voz, o servidor de IMR 125 pode estar configurado com um roteiro de IMR para perguntar a clientes sobre suas necessidades. Por exemplo, uma central de contatos para um banco pode dizer aos clientes por meio do roteiro de IMR para ‘pressionar 1’ se desejarem obter o saldo de sua conta. Por meio de interação continuada com o servidor de IMR 125, os clientes podem ser capazes de concluir o serviço sem precisar falar com um agente. O servidor de IMR 125 pode também fazer uma pergunta em aberto, como "Como posso ajudar?" e o cliente pode dizer ou, de outro modo, inserir uma razão para entrar em contato com a central de contatos. A resposta do cliente pode ser usada por um servidor de roteamento 130 para rotear a chamada ou a comunicação a um recurso adequado da central de contatos.
[0029] Se a comunicação se destina a ser roteada para um agente, o controlador de chamadas 120 interage com o servidor de roteamento (também chamado de servidor de orquestração) 130 para encontrar um agente adequado para o processamento da interação. A seleção de um agente adequado para roteamento de uma interação de entrada pode ser baseada, por exemplo, em uma estratégia de roteamento empregada pelo servidor de roteamento 130, e adicionalmente baseada em informações sobre disponibilidade do agente, habilidades e outros parâmetros de roteamento fornecidos, por exemplo, por um servidor de estatísticas 140.
[0030] Em uma modalidade, o servidor de roteamento 130 pode
12 / 33 consultar uma base de dados de clientes que armazena informações sobre clientes existentes, como informações de contato, requisitos do acordo de nível de serviço (SLA - "Service Level Agreement"), natureza dos contatos anteriores do cliente e ações executadas pela central de contatos para resolver quaisquer questões do cliente, etc. A base de dados pode ser, por exemplo, Cassandra ou qualquer base de dados NoSQL, e pode ser armazenada em um dispositivo de armazenamento em massa 135. A base de dados pode também ser uma base de dados SQL e pode ser gerenciada por qualquer sistema de gerenciamento de base de dados como, por exemplo, Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, PostgreSQL, etc., para citar alguns exemplos não limitadores. O servidor de roteamento 130 pode consultar as informações do cliente provenientes da base de dados de clientes por meio de um ANI ou qualquer outra informação coletada pelo servidor de IMR 125.
[0031] Uma vez que um agente adequado seja identificado como estando disponível para lidar com uma comunicação, pode ser feita uma conexão entre o cliente e um dispositivo de agente 145A, 145B e/ou 145C (coletivamente citados como 145) do agente identificado. Embora três dispositivos de agente sejam ilustrados na Figura 1 por uma questão de simplicidade, qualquer número de dispositivos pode estar presente. Um dispositivo de administrador/supervisor 145D pode também estar presente. O dispositivo de administrador/supervisor 145D pode ser controlado por um administrador ou supervisor no centro de contato, o qual gerencia os agentes. Adicionalmente, o administrador ou supervisor pode configurar ajustes dentro da plataforma de software do centro de contato a partir de seu dispositivo 145D. Embora apenas um seja ilustrado na Figura 1, por uma questão de simplicidade, qualquer número de dispositivos de administrador/supervisor 145D pode estar presente dentro de um centro de contatos ou ambiente empresarial. As informações coletadas sobre o cliente e/ou as informações de histórico do cliente podem também ser fornecidas ao dispositivo de agente
13 / 33 para auxiliar o agente a melhorar a comunicação e, adicionalmente, fornecidas ao dispositivo de administrador/supervisor da central de contatos para gerenciar a central de contatos. Nesse sentido, cada dispositivo 145 pode incluir um telefone adaptado para chamadas telefônicas regulares, chamadas VoIP, etc. O dispositivo 145 pode incluir também um computador para se comunicar com um ou mais servidores da central de contatos e realizar o processamento de dados associado a operações de central de contatos, e para fazer interface com clientes por meio de voz e outros mecanismos de comunicação multimídia.
[0032] O sistema de central de contatos 100 pode também incluir um servidor de multimídia/mídias sociais 150 para participar em interações de mídia diferentes de interações de voz com os dispositivos de usuário final 105 e/ou os servidores web 155. As interações de mídia podem estar relacionadas, por exemplo, a mensagens de e-mail, v-mail (correio de voz através de e- mail), chat, vídeo, mensagens de texto, web, mídias sociais, conavegação etc. O servidor de multimídia/mídias sociais 150 pode assumir a forma de qualquer roteador IP convencional na técnica, com hardware e software especializados para receber, processar e encaminhar eventos multimídia.
[0033] Os servidores web 155 podem incluir, por exemplo, hosts de sites de interação social para vários sites de interação social conhecidos, nos quais um usuário final pode se inscrever, como Facebook, Twitter, Instagram etc., para citar alguns exemplos não limitadores. Em uma modalidade, embora os servidores web 155 sejam representados como parte do sistema da central de contatos 100, os servidores web podem também ser fornecidos por terceiros e/ou mantidos fora do local da central de contatos. Os servidores web 155 podem também fornecer páginas web à empresa que está sendo apoiada pelo sistema de central de contatos 100. Os usuários finais podem navegar as páginas web e obter informações sobre os produtos e serviços da empresa. As páginas web podem também fornecer um mecanismo para entrar
14 / 33 em contato com a central de contatos através, por exemplo, de chat via web, chamada de voz, mensagem de e-mail, comunicação em tempo real via web (WebRTC - "Web Real-Time Communication"), etc. Widgets podem ser empregados nos sites da web hospedados nos servidores web 155.
[0034] Em uma modalidade, interações/atividades adiáveis podem também ser roteadas para os agentes da central de contatos, em adição às interações em tempo real. As interações/atividades adiáveis podem compreender trabalho de retaguarda ou trabalho que pode ser executado offline, como responder a e-mails, cartas, comparecer a treinamento ou outras atividades que não envolvam comunicação em tempo real com um cliente. Um servidor de interação (iXn) 160 interage com o servidor de roteamento 130 para selecionar um agente adequado para lidar com a atividade. Uma vez atribuída a um agente, uma atividade pode ser passada ao agente, ou pode aparecer no workbin 146A, 146B, 146C (coletivamente 146) do agente sob a forma de uma tarefa a ser concluída pelo agente. O workbin do agente pode ser implementado através de qualquer estrutura de dados convencional na técnica, como, por exemplo, uma lista vinculada, matriz, etc. Em uma modalidade, um workbin 146 pode ser mantido, por exemplo, na memória buffer de cada dispositivo de agente 145.
[0035] Em uma modalidade, os um ou mais dispositivos de armazenamento em massa 135 podem armazenar uma ou mais bases de dados relacionadas aos dados do agente (por exemplo, perfis de agente, cronogramas etc.), dados do cliente (por exemplo, perfis de cliente), dados de interação (por exemplo, detalhes de cada interação com um cliente incluindo, mas não se limitando a: motivo para a interação, dados de disposição, tempo de espera, tempo de manejo, etc.) e similares. Em uma outra modalidade, alguns dos dados (por exemplo, dados de perfil do cliente) podem ser mantidos em uma base de dados de gerenciamento de relações com o cliente (CRM - "Customer Relations Management") hospedada no dispositivo de armazenamento em
15 / 33 massa 135 ou em outro lugar. O dispositivo de armazenamento em massa 135 pode estar sob a forma de um disco rígido ou conjunto de discos, conforme é convencional na técnica.
[0036] Em uma modalidade, o sistema de central de contatos pode incluir um servidor de contato universal (UCS - "Universal Contact Server") 165, configurado para recuperar informações armazenadas na base de dados de CRM e direcionar informações a serem armazenadas na base de dados de CRM. O UCS 165 pode também estar configurado para facilitar a manutenção de um histórico das preferências interações dos clientes, e para capturar e armazenar dados referentes a comentários de agentes, histórico de comunicação do cliente etc.
[0037] O sistema de central de contatos pode também incluir um servidor de emissão de relatórios 170 configurado para gerar relatórios a partir de dados agregados pelo servidor de estatísticas 140. Tais relatórios podem incluir relatórios em tempo quase real ou relatórios históricos relacionados ao estado de recursos, como, por exemplo, tempo de espera médio, taxa de abandono, ocupação de agente, etc. Os relatórios podem ser gerados automaticamente ou em resposta a solicitações específicas de um solicitante (por exemplo, agente/administrador, aplicativo de central de contatos, etc.).
[0038] Cada um dentre os vários servidores da Figura 1 pode incluir um ou mais processadores executando instruções de programa de computador e interagindo com outros componentes do sistema para executar as várias funcionalidades aqui descritas. As instruções de programa de computador são armazenadas em uma memória implementada com o uso de um dispositivo de memória padrão como, por exemplo, uma memória de acesso aleatório (RAM - "Random-Access Memory"). As instruções de programa podem também ser armazenadas em outra mídia legível por computador não transitória, tais como, por exemplo, um CD-ROM, uma unidade flash, etc. Embora a
16 / 33 funcionalidade de cada um dos servidores seja descrita como sendo fornecida pelo servidor específico, o versado na técnica reconhecerá que a funcionalidade de vários servidores pode ser combinada ou integrada em um único servidor, ou a funcionalidade de um servidor específico pode ser distribuída entre um ou mais outros servidores sem que se afaste do escopo das modalidades da presente invenção.
[0039] Em uma modalidade, os termos "interação" e "comunicação" são usados de forma intercambiável, e se referem, de modo geral, a qualquer interação, em tempo real ou não, que use qualquer canal de comunicação incluindo, sem limitação, chamadas de telefone (chamadas por PSTN ou VoIP), e-mails, v-mails, vídeo, chat, compartilhamento de tela, mensagens de texto, mensagens de mídias sociais, chamadas por WebRTC, etc.
[0040] Os serviços de mídia 175 podem fornecer serviços de áudio e/ou vídeo para dar apoio às características da central de contatos, como solicitações por um sistema de IVR ou IMR (por exemplo, reprodução de arquivos de áudio), conter músicas, mensagens de voz/gravações com um único participante, gravações com múltiplos participantes (por exemplo, de chamadas de áudio e/ou de vídeo), reconhecimento de fala, reconhecimento de tons duplos de múltiplas frequências (DTMF - "Dual Tone Multi Frequency"), fax, transcodificação de áudio e vídeo, protocolo de transporte seguro em tempo real (SRTP - "Secure Real-Time Transport Protocol"), audioconferência, videoconferência, treinamento (por exemplo, suporte para que um treinador possa acompanhar ouvindo uma interação entre um cliente e um agente, e para que o treinador forneça comentários ao agente sem que o cliente ouça os comentários), análise de chamada e detecção de palavra- chave.
[0041] Em uma modalidade, o produto de plataforma baseado em instalações pode fornecer acesso a e controle de componentes do sistema 100 através de interfaces de usuário (IUs) presentes nos dispositivos de agente
17 / 33 145A a 145C e no Dispositivo de administrador/supervisor 145D. Dentro do produto de plataforma baseado em local, o programa gerador de aplicativo gráfico pode ser integrado, o que permite que um usuário escreva os programas (manipuladores) que controlam vários comportamentos de processamento de interação dentro do produto de plataforma baseado em local.
[0042] Conforme observado acima, a central de contatos pode operar como um sistema híbrido no qual alguns ou todos os componentes são hospedados remotamente, como em um ambiente baseado em nuvem. Por uma questão de conveniência, serão descritos a seguir aspectos das modalidades da presente invenção relativos ao fornecimento de ferramentas modulares de um ambiente baseado em nuvem para componentes alojados no local. Widgets
[0043] A Figura 2 é um diagrama que ilustra uma modalidade de uma arquitetura de widgets, indicada de modo geral em 200. Os componentes da arquitetura de widgets indicados de modo geral em 200 incluem: o servidor de plataforma baseado em local 205, que pode compreender Serviços de diretório 206, um Gerenciador de sessão 207 e um HttpPluginHost 208; uma estação de trabalho de agente 145A a 145C, uma estação de trabalho de administrador/supervisor 145D, Ferramentas modulares 210 e um Navegador 215.
[0044] Em uma modalidade, as estações de trabalho de agente 145A a 145C executam a plataforma de software de central de contato em seus dispositivos, através dos quais recebem interações direcionadas a eles para manuseio. Neste exemplo, os agentes estão usando uma plataforma baseada em local. O cliente de plataforma baseado em local se comunica com um HttpPluginHost 208 localizado no Servidor 205 por meio de Serviços web do centro de interações (ICWS - "Interaction Center Web Services"). De modo
18 / 33 geral, o ICWS gerencia conexões com o servidor 205, especifica as configurações de autenticação e estação, mantém observação quanto a eventos de mudança de estado de conexão e executa ações relativas ao usuário de Sessão conectado. O ICWS compreende uma API RESTful para aplicativos- cliente de web, dispositivos móveis e desktop. O Servidor 205 compreende adicionalmente Serviços de diretório 206 e um Gerenciador de sessão 207, os quais se comunicam entre si. Os Serviços de diretório 206 armazenam a configuração de widgets. O Gerenciador de sessão 207 se comunica adicionalmente com o HttpPluginHost 208. O HttpPluginHost 208 se comunica com a estação de trabalho de administrador/supervisor 145D via ICWS. A estação de trabalho de administrador/supervisor 145D é capaz de lidar com vários aspectos dos widgets 210 a partir de seu dispositivo. Em uma modalidade, os Supervisores são capazes de configurar roteamento e lidar com o gerenciamento de registro de widget. Os administradores podem configurar a IU do widget. Os Widgets 210 compreendem código JavaScript minificado hospedado em um serviço de nuvem, como Amazon Web Services, por exemplo, possibilitando a integração e a implantação contínuas. Os widgets 210 de JavaScript são adicionados ao site web 210 com um ID de widget e um servidor definidos. O site do navegador 210 pode ser hospedado nos servidores web 155 do sistema 100 na Figura 1.
[0045] A Figura 3 é um fluxograma que ilustra uma modalidade de um processo de configuração e implantação, indicada de modo geral em 300. Em uma modalidade, as ferramentas modulares são configuradas e implantadas por meio de trechos de código incluídos no site web. Usando um modelo de nuvem distribuído, os usuários podem fazer referência a um único script estático para um widget em uma rede de entrega. O contexto e a configuração ocorrem dinamicamente com base na arquitetura de widget 200 dentro do produto de plataforma baseado em local.
[0046] Na operação 305, um administrador cria e salva um widget.
19 / 33 Uma IU (interface de usuário) é fornecida para administradores em seu dispositivo de administrador 145D, a fim de adicionar e configurar novas instâncias de widgets, inclusive aquelas que têm suas próprias extensões. Fatores como temas, idiomas e dispositivos móveis podem ser configurados dentro de um widget, para citar alguns exemplos limitadores. Também podem ser configurados outros fatores exclusivos à plataforma, como o nome do servidor, proxy reverso e se deve usar HTTP ou HTTPS para comunicações entre o servidor web e o servidor de plataforma. Adicionalmente, o idioma usado no widget pode ser baseado na preferência do navegador. Em outra modalidade, se o widget não puder usar qualquer dos idiomas preferenciais do navegador, então o widget usará um idioma selecionado pelo usuário.
[0047] O widget também pode ser configurado para diferentes modos. Por exemplo, modo móvel para dispositivos, modo desktop, ou ambos. O código do widget pode detectar se o visitante do site está usando um navegador desktop ou um navegador móvel. Os plugins também podem ser controlados através da configuração. Por exemplo, a lista de nomes de plugin disponíveis pode ser alterada dinamicamente, de modo que diferentes configurações de widget acessem diferentes plugins. Adicionalmente, objetos personalizados de Notação de objeto JavaScript (JSON - "JavaScript Object Notation") também podem ser injetados na configuração para estender a configuração além de sua estrutura atual.
[0048] Em uma modalidade, extensões embutidas, como chat ou chamada de retorno, para citar alguns exemplos não limitadores, podem estar disponíveis para uma dada configuração de widgets. Essas extensões e sua configuração podem habitar na nuvem (como em um servidor web 155 ou um serviço de hospedagem em nuvem) e aparecer dinamicamente para usuários de plataforma baseada em local.
[0049] Adicionalmente, os campos que podem estar disponíveis para configuração a qualquer dado usuário dependem das permissões concedidas
20 / 33 ao usuário atual. A granularidade de permissões é fornecida em um nível de administrador/supervisor. Outras partes, como equipes de desenvolvimento no ambiente do centro de contatos, podem também ser capazes de adicionar extensões. As extensões personalizadas podem ser hospedadas pelo criador e simplesmente referenciadas pela instância de configuração.
[0050] Em uma outra modalidade, a IU fornecida é fornecida no nível baseado em local, proveniente da nuvem. As opções podem ser lidas a partir de um arquivo JSON na nuvem, o qual pode ser usado para fazer atualizações no nível local. Isso permite que as atualizações sejam feitas dinamicamente, continuamente e em tempo real. As alterações podem ser expostas a um usuário de maneira contínua através da nuvem, ao contrário de atualizações programadas fornecidas periodicamente. O controle é passado para a operação 310 e o processo 300 continua.
[0051] Na operação 310, uma identificação (ID) é gerada e a configuração é armazenada. Em uma modalidade, uma vez que um widget tenha sido criado e salvo, um ID exclusivo pode ser gerado e a configuração pode ser armazenada como um objeto JSON plano dentro do subsistema Serviços de diretório 206 da plataforma baseada em local. O controle é passado à operação 315 e o processo 300 continua.
[0052] Na operação 315, a tag de script é gerada. Em uma modalidade, a geração da tag de script pode ser feita através da geração de um trecho de código JavaScript sob a forma de uma tag de script HTML. Os atributos de servidor e de ID do widget estão incluídos no script, por exemplo <script src="widgets.min.js" server="x" widget-id="y">. A tag de script compreende, em geral, uma localização de onde as ferramentas habitam e identificadores cuja configuração dá contexto ao widget. Além disso, a tag de script compreende informações quanto a quais um ou mais serviços baseados em local os widgets devem se conectar. Em uma modalidade onde os serviços são baseados em nuvem, apenas o identificador pode estar presente. Em uma
21 / 33 modalidade, a tag de script compreende um script estático que é comum a todos os usuários da plataforma. Em outra modalidade, a tag de script compreende o script codificado que é decodificado ao ocorrer o carregamento. O controle é passado à operação 320 e o processo 300 continua.
[0053] Na operação 320, a tag de script é aplicada a uma página em um site web. Isso representa uma única etapa de instalação para as ferramentas modulares. Em uma modalidade, o trecho de código gerado na operação 310 é copiado para o widget selecionado por um usuário e é colado em um arquivo de texto que é, então, adicionado à página adequada no site
215. Em uma modalidade, qualquer número de widgets pode ser exibido em um painel na IU para que um administrador selecione. Exemplos de widgets podem compreender: chat, chamada de retorno, conavegação, ofertas (por exemplo, quando pop-ups fazem proativamente ofertas aos clientes), centros de conhecimento (como Perguntas Frequentes), convites para contato (por exemplo, um link para clicar a fim de fazer uma chamada telefônica), bem como qualquer número de widgets com design personalizado feitos pelo usuário.
[0054] Em uma modalidade, um widget de chat, por exemplo, permite que um cliente fale com um agente de centro de contato usando recursos como mascaramento de dados, notificações de digitação, recibos de leitura e recursos de transferência de arquivos dentro de uma IU otimizada para navegadores tanto de desktop como de dispositivo móvel. O widget de chat pode estar integrado ou ter opções de conexão com um serviço de chat terceirizado. Em outra modalidade, um widget de chat via web pode permitir que um cliente inicie um chat ao vivo com um agente. A interface de chat via web pode aparecer dentro da página e seguir o cliente à medida que este percorre o site. Os clientes também podem iniciar uma sessão de conavegação com o agente diretamente a partir do chat via web. Outros recursos podem
22 / 33 incluir minimizar/maximizar, reconectar automaticamente e convidar.
[0055] Em uma modalidade, o script referenciado pode compreender um script estático que todos os usuários de plataforma baseados em local que usam widgets usarão. Os atributos de servidor e ID do widget são passados para o arquivo estático e fornecem contexto ao script estático. O controle é passado à operação 325 e o processo 300 continua.
[0056] Na operação 325, a implementação de widgets é carregada. Ao ocorrer o carregamento, a implementação de widgets envia uma solicitação de registro de ICWS não autenticada ao servidor especificado, usando a API. O ICWS compreende uma API RESTful para aplicativos-cliente de web, dispositivos móveis e desktop. A solicitação de registro contém o ID e é usada para consultar Serviços de diretório. O controle é passado à operação 330 e o processo 300 continua.
[0057] Na operação 330, o objeto de configuração é convertido e o contexto é preenchido. O objeto de configuração de widgets é convertido (pela arquitetura de widgets 200) no objeto de configuração JSON, do qual se espera que forneça contexto à instância de widgets do usuário. Isso permite que os widgets sejam dinamicamente configurados exclusivamente para cada usuário com uma única versão de widgets. Isso está alinhado a um modelo distribuído em nuvem. Os widgets são agora preenchidos com contexto.
[0058] Em uma modalidade, muitas extensões podem estar nativamente disponíveis através do produto de widgets. Cada uma dessas extensões exige alterações de API em nível de produto para permitir que widgets se comuniquem com o servidor de plataforma baseado em local 205. Extensões personalizadas têm valor proveniente da capacidade de carregar como uma extensão, porém menos valor através de sua capacidade de se integrar ao servidor de plataforma. Como resultado, a plataforma baseada em local tem uma API de multiplexação para extensões personalizadas. Qualquer um dos campos de entrada poderia ser usado como entrada de JSON para um
23 / 33 manipulador. Poderia ser criada uma extensão personalizada que não contenha IU visível e simplesmente monitore os ganchos da web (ou um dado evento) e forneça essas informações para uma integração de manipulador de plataforma baseada em local.
[0059] Em uma modalidade, a API de widgets compreende um ponto final de transferência de estado representational (REST - "Representational State Transfer") que serve como um canal de multiplexação. A API expõe também um método para autores de extensão personalizados criarem sua própria função "customAction" em JavaScript. Quando essa ação personalizada é invocada com um parâmetro possivelmente contendo alguma entrada de JSON, uma solicitação de REST da API de widgets é enviada ao servidor de plataforma baseado em local 205 mediante o uso da API de multiplexação. O destino compreende um manipulador de widgets personalizados que atua como um ponto de integração para widgets.
[0060] Os manipuladores podem ser projetados em um produto como Interaction Designer, ou um aplicativo similar no lado do cliente, que permita a um usuário modelar novos processos de interação e personalizar processos de interação existentes. Várias entradas e diferentes vias de sinalização podem ser implementadas com base na entrada fornecida. A capacidade de um usuário definir uma ação personalizada dentro de JavaScript para uma extensão de widgets personalizados e também para implementar essa ação dentro de um manipulador de widgets personalizado descreve a funcionalidade de multiplexação. O fornecimento da camada de multiplexação entre widgets e manipuladores permite que ações ocorram facilmente e qualquer número de comportamentos pode ser implementado sem exigir mudança de produto.
[0061] Em uma modalidade, uma extensão de widgets pode ser escrita, o que permite que os desenvolvedores da plataforma baseada em local extraiam configurações de servidores que conectam e enviam mensagens para
24 / 33 frente/para trás à plataforma baseada em local. Tradicionalmente, widgets estariam buscando um arquivo JavaScript com todas as opções nesse arquivo em vez de poderem se comunicar diretamente com a plataforma baseada em local sem esse arquivo. O desenvolvedor web e um administrador de TI dentro do centro de contato ou da empresa precisariam ser capazes de entrar no software e fazer essas alterações. A configuração e a implantação das ferramentas modulares simplificam essa abordagem e permitem que um usuário execute o trabalho sem o envolvimento do administrador de TI ou do desenvolvedor web. Adicionalmente, as informações podem ser carregadas diretamente a partir do servidor do usuário, possibilitando que os widgets sejam capazes de conversar para trás/para diante com a plataforma baseada em local ou com uma plataforma baseada em nuvem. Sistemas de computação
[0062] Em uma modalidade, cada um dos vários servidores, controles, comutadores, gateways, motores e/ou módulos (coletivamente chamados de servidores) nas figuras descritas é implementado via hardware ou firmware (por exemplo, ASIC) conforme será entendido pelo versado na técnica. Cada um dos vários servidores pode ser um processo ou thread, sendo executado em um ou mais processadores, em um ou mais dispositivos de computação (por exemplo, Figuras 4A, 4B), executando instruções de programa de computador e interagindo com outros componentes de sistema para executar as várias funcionalidades aqui descritas. As instruções de programa de computador são armazenadas em uma memória, a qual pode ser implementada em um dispositivo de computação com o uso de um dispositivo de memória padrão como, por exemplo, uma memória RAM. As instruções de programa de computador podem também ser armazenadas em outras mídias legíveis por computador não transitórias como, por exemplo, um CD-ROM, um pen drive, etc. Um versado na técnica deve reconhecer que um dispositivo de computação pode ser implementado através de firmware (por exemplo, um
25 / 33 circuito integrado para aplicação específica), hardware ou uma combinação de software, firmware e hardware. O versado na técnica reconhecerá que a funcionalidade de vários dispositivos de computação pode ser combinada ou integrada em um único dispositivo de computação, ou a funcionalidade de um dispositivo de computação específico pode ser distribuída por um ou mais outros dispositivos de computação sem que se afaste do escopo das modalidades exemplificadoras da presente invenção. Um servidor pode ser um módulo de software, o qual pode também ser simplesmente chamado de módulo. O conjunto de módulos na central de contatos pode incluir servidores e outro módulos.
[0063] Os vários servidores podem estar situados em um dispositivo de computação interno à mesma localização física que os agentes da central de contatos, ou podem estar situados externamente (ou na nuvem) em uma localização geograficamente diferente, por exemplo em um centro de dados remoto, conectados à central de contatos por meio de uma rede como a Internet. Além disso, alguns dos servidores podem estar situados em um dispositivo de computação interno à central de contatos, enquanto outros podem estar situados em um dispositivo de computação externo ao local, ou servidores fornecendo funcionalidade redundante podem ser fornecidos via dispositivos de computação tanto internos como externos ao local para fornecer maior tolerância a falhas. Em algumas modalidades, a funcionalidade fornecida pelos servidores situados em dispositivos de computação externos pode ser acessada e fornecida em uma rede privada virtual (VPN - "Virtual Private Network"), como se esses servidores fossem internos, ou a funcionalidade pode ser fornecida com o uso de software como serviço (SaaS - "Software as a Service") para fornecer funcionalidade via internet usando vários protocolos, como fazendo intercâmbio de dados com o uso de codificação em linguagem de marcação extensível (XML - "eXtensible Markup Language") ou notação de objeto em JavaScript (JSON - "JavaScript
26 / 33 Object Notation").
[0064] As Figuras 4A e 4B são diagramas ilustrando uma modalidade de um dispositivo de computação como pode ser empregado em uma modalidade da invenção, indicado de modo geral em 400. Cada dispositivo de computação 400 inclui uma CPU 405 e uma unidade de memória principal
410. Conforme ilustrado na Figura 4A, o dispositivo de computação 400 pode também incluir um dispositivo de armazenamento 415, uma interface de mídia removível 420, uma interface de rede 425, um controlador de entrada/saída (E/S) 430, um ou mais dispositivos de exibição 435A, um teclado 435B e um dispositivo apontador 435C (por exemplo, um mouse). O dispositivo de armazenamento 415 pode incluir, sem limitação, armazenamento para um sistema operacional e software. Conforme mostrado na Figura 4B, cada dispositivo de computação 400 pode também incluir elementos opcionais adicionais, como uma porta de memória 440, uma ponte 445, um ou mais dispositivos adicionais de entrada/saída 435D, 435E, e uma memória cache 450 em comunicação com a CPU 405. Os dispositivos de entrada/saída 435A, 435B, 435C, 435D e 435E podem ser coletivamente citados aqui como 435.
[0065] A CPU 405 é qualquer conjunto de circuitos lógicos que responda a, e processe, instruções trazidas da unidade de memória principal
410. Ela pode ser implementada, por exemplo, em um circuito integrado, sob a forma de um microprocessador, microcontrolador ou unidade de processamento gráfico, ou em uma matriz de portas programável em campo (FPGA - "Field-Programmable Gate Array") ou um circuito integrado de aplicação específica (ASIC). A unidade de memória principal 410 pode ser um ou mais chips de memória capazes de armazenar dados e de permitir que qualquer local de armazenamento seja diretamente acessado pela unidade central de processamento 405. Conforme mostrado na Figura 4A, a unidade central de processamento 405 se comunica com a memória principal 410 por
27 / 33 meio de um barramento de sistema 455. Conforme mostrado na Figura 4B, a unidade central de processamento 405 podem também comunicar-se diretamente com a memória principal 410 por meio de uma porta de memória 440.
[0066] Em uma modalidade, a CPU 405 pode incluir uma pluralidade de processadores e pode fornecer funcionalidade para execução simultânea de instruções, ou para execução simultânea de uma instrução em mais de uma peça de dados. Em uma modalidade, o dispositivo de computação 400 pode incluir um processador paralelo com um ou mais núcleos. Em uma modalidade, o dispositivo de computação 400 compreende um dispositivo paralelo de memória compartilhada, com múltiplos processadores, e/ou múltiplos núcleos processadores, acessando toda a memória disponível como um único espaço global de endereçamento. Em uma outra modalidade, o dispositivo de computação 400 é um dispositivo paralelo de memória distribuída com múltiplos processadores, cada qual acessando apenas a memória local. O dispositivo de computação 400 pode ter tanto alguma memória que é compartilhada, como alguma que só pode ser acessada por processadores ou subconjuntos de processadores específicos. A CPU 405 pode incluir um microprocessador de múltiplos núcleos, o qual combina dois ou mais processadores independentes em um único volume, por exemplo em um único circuito integrado (IC - "Integrated Circuit"). Por exemplo, o dispositivo de computação 400 pode incluir ao menos uma CPU 405 e ao menos uma unidade de processamento gráfico.
[0067] Em uma modalidade, uma CPU 405 fornece funcionalidade de instrução única, múltiplos dados (SIMD - "Single Instruction, Multiple Data"), por exemplo a execução de uma única instrução simultaneamente em múltiplas peças de dados. Em uma outra modalidade, vários processadores na CPU 405 podem fornecer funcionalidade para execução de múltiplas instruções simultaneamente em múltiplas peças de dados (MIMD - "Multiple
28 / 33 Instruction, Multiple Data"). A CPU 405 pode também usar qualquer combinação de núcleos SIMD e MIMD em um único dispositivo.
[0068] A Figura 4B representa uma modalidade na qual a CPU 405 se comunica diretamente com a memória cache 450 por meio de um barramento secundário, às vezes chamado de barramento traseiro. Em outras modalidades, a CPU 405 se comunica com a memória cache 450 usando o barramento de sistema 455. A memória cache 450 tipicamente tem um tempo de resposta mais rápido que o da memória principal 410. Conforme ilustrado na Figura 4A, a CPU 405 se comunica com vários dispositivos de E/S 435 por meio do barramento de sistema local 455. Vários barramentos podem ser usados como o barramento de sistema local 455, incluindo, mas não se limitando a, um barramento local de acordo com a Associação de padrões para eletrônicos com vídeo (VLB - "VESA Local Bus") (VESA - "Video Electronics Standards Association"), um barramento com arquitetura padrão da indústria (ISA - "Industry Standard Architecture"), um barramento com arquitetura padrão da indústria estendido (EISA - "Extended Industry Standard Architecture"), um barramento com arquitetura de microcanais (MCA - "Micro Channel Architecture"), um barramento para interconexão de componentes periféricos (PCI - "Peripheral Component Interconnect"), um barramento PCI estendido (PCI-X - "PCI Extended"), um barramento PCI- Express ou um NuBus. Para modalidades nas quais um dispositivo de E/S é um dispositivo de exibição 435A, a CPU 405 pode se comunicar com o dispositivo de exibição 435A através de uma porta gráfica avançada (AGP - "Advanced Graphics Port"). A Figura 4B representa uma modalidade de um computador 400 no qual a CPU 405 se comunica diretamente com o dispositivo de E/S 435E. A Figura 4B representa também uma modalidade na qual os barramentos locais e a comunicação direta são combinados: a CPU 405 se comunica com o dispositivo de E/S 435D usando um barramento de sistema local 455, enquanto se comunica com o dispositivo de E/S 435E
29 / 33 diretamente.
[0069] Uma ampla variedade de dispositivos de E/S 435 pode estar presente no dispositivo de computação 400. Os dispositivos de entrada incluem um ou mais teclados 435B, mouses, trackpads, trackballs, microfones e mesas de desenho, para citar alguns exemplos não limitadores. Os dispositivos de saída incluem dispositivos de exibição de vídeo 435A, alto-falantes e impressoras. Um controlador de E/S 430, conforme mostrado na Figura 4A, pode controlar os um ou mais dispositivos de E/S, como um teclado 435B e um dispositivo apontador 435C (por exemplo, um mouse ou caneta óptica), por exemplo.
[0070] Novamente com referência à Figura 4A, o dispositivo de computação 400 pode suportar uma ou mais interfaces de mídia removível 420, como uma unidade de disco flexível, uma unidade de CD-ROM, uma unidade de DVD-ROM, unidades de fitas de vários formatos, uma porta USB, uma porta para cartão de memória SD ("Secure Digital") ou COMPACT FLASH™, ou qualquer outro dispositivo adequado para ler dados a partir de mídias somente para leitura, ou para ler dados de, ou gravar dados em, mídias para gravação e leitura. Um dispositivo de E/S 435 pode ser uma ponte entre o barramento de sistema 455 e uma interface de mídia removível 420.
[0071] A interface de mídia removível 420 pode, por exemplo, ser usada para instalar software e programas. O dispositivo de computação 400 pode incluir adicionalmente um dispositivo de armazenamento 415, como uma ou mais unidades de disco rígido ou conjuntos de unidades de disco rígido, para armazenar um sistema operacional e outros softwares relacionados, e para armazenar programas de software aplicativos. Opcionalmente, uma interface de mídia removível 420 pode também ser usada como o dispositivo de armazenamento. Por exemplo, o sistema operacional e o software podem ser executados a partir de uma mídia inicializável, por exemplo um CD inicializável.
30 / 33
[0072] Em uma modalidade, o dispositivo de computação 400 pode incluir ou estar conectado a múltiplos dispositivos de exibição 435A, cada dos quais pode ser de tipos e/ou formas iguais ou diferentes. Assim sendo, qualquer dos dispositivos de E/S 435 e/ou o controlador de E/S 430 pode incluir qualquer tipo e/ou forma de hardware, software, ou combinação de hardware e software adequados para suportar, habilitar ou proporcionar a conexão a, e o uso de, múltiplos dispositivos de exibição 435A pelo dispositivo de computação 400. Por exemplo, o dispositivo de computação 400 pode incluir qualquer tipo e/ou forma de adaptador de vídeo, placa de vídeo, driver e/ou biblioteca para fazer interface, comunicar-se, conectar-se ou, de outro modo, usar os dispositivos de exibição 435A. Em uma modalidade, um adaptador de vídeo pode incluir múltiplos conectores para fazer interface com múltiplos dispositivos de exibição 435A. Em uma outra modalidade, o dispositivo de computação 400 pode incluir múltiplos adaptadores de vídeo, com cada adaptador de vídeo conectado a um ou mais dentre os dispositivos de exibição 435A. Em outras modalidades, um ou mais dentre os dispositivos de exibição 435A pode ser fornecido por um ou mais outros dispositivos de computação conectados, por exemplo, ao dispositivo de computação 400 por meio de uma rede. Essas modalidades podem incluir qualquer tipo de software projetado e construído para usar o dispositivo de exibição de outro dispositivo de computação como um segundo dispositivo de exibição 435A para o dispositivo de computação 400. O versado na técnica reconhecerá e entenderá as várias maneiras e modalidades nas pelas quais um dispositivo de computação 400 pode estar configurado para ter múltiplos dispositivos de exibição 435A.
[0073] Uma modalidade de um dispositivo de computação indicado de modo geral nas Figuras 4A e 4B pode operar sob o controle de um sistema operacional, o qual controla o agendamento de tarefas e o acesso aos recursos do sistema. O dispositivo de computação 400 pode estar executando qualquer
31 / 33 sistema operacional, qualquer sistema operacional integrado, qualquer sistema operacional em tempo real, qualquer sistema operacional de fonte livre, qualquer sistema operacional proprietário, quaisquer sistemas operacionais para dispositivos de computação móvel, ou qualquer outro sistema operacional capaz de ser executado no dispositivo de computação e de executar as operações aqui descritas.
[0074] O dispositivo de computação 400 pode ser qualquer estação de trabalho, computador de mesa, computador portátil ou computador do tipo notebook, máquina servidora, computador de mão, telefone móvel ou outro dispositivo portátil de telecomunicação, dispositivo reprodutor de mídias, sistema para jogos, dispositivo móvel de computação, ou qualquer outro tipo e/ou forma de computação, telecomunicações ou dispositivo de mídia que seja capaz de comunicação e que tenha suficiente poder de processamento e capacidade de memória para executar as operações aqui descritas. Em algumas modalidades, o dispositivo de computação 400 pode ter diferentes processadores, sistemas operacionais e dispositivos de entrada consistentes com o dispositivo.
[0075] Em outras modalidades, o dispositivo de computação 400 é um dispositivo móvel. Os exemplos podem incluir um telefone celular habilitado para Java ou um assistente pessoal digital (PDA - "Personal Digital Assistant"), um smartphone, um reprodutor de áudio digital ou um reprodutor de mídia portátil. Em uma modalidade, o dispositivo de computação 400 inclui uma combinação de dispositivos, como um telefone móvel combinado com um reprodutor de áudio digital ou um reprodutor de mídia portátil.
[0076] Um dispositivo de computação 400 pode ser um dentre uma pluralidade de máquinas conectadas por uma rede, ou pode incluir uma pluralidade de máquinas assim conectadas. Um ambiente de rede pode incluir um ou mais dentre máquinas locais, clientes, nós de cliente, máquinas clientes, computadores clientes, dispositivos clientes, pontos de extremidade
32 / 33 ou nós de ponto de extremidade em comunicação com uma ou mais máquinas remotas (as quais podem também ser genericamente chamadas de máquinas servidoras ou máquinas remotas) por meio de uma ou mais redes. Em uma modalidade, uma máquina local tem a capacidade de funcionar tanto como um nó de cliente buscando acesso a recursos fornecidos por uma máquina servidora, quanto como uma máquina servidora fornecendo a outros clientes acesso a recursos hospedados. A rede pode ser enlaces LAN ou WAN, conexões de banda larga, conexões sem fio ou uma combinação de quaisquer ou todos os supracitados. As conexões podem ser estabelecidas com o uso de vários protocolos de comunicação. Em uma modalidade, o dispositivo de computação 400 se comunica com outros dispositivos de computação 400 por meio de qualquer tipo e/ou forma de gateway ou protocolo de túnel, como camada de soquete seguro (SSL - "Secure Socket Layer") ou segurança de camada de transporte (TLS - "Transport Layer Security"). A interface de rede pode incluir um adaptador de rede integrado, como uma placa de interface de rede, adequada para fazer interface do dispositivo de computação a qualquer tipo de rede capaz de comunicação e execução das operações aqui descritas. Um dispositivo de E/S pode ser uma ponte entre o barramento de sistema e um barramento de comunicação externa.
[0077] Em uma modalidade, um ambiente de rede pode ser um ambiente de rede virtual, onde os vários componentes da rede são virtualizados. Por exemplo, as várias máquinas podem ser máquinas virtuais implementadas como um computador baseado em software sendo executado em uma máquina física. As máquinas virtuais podem compartilhar o mesmo sistema operacional. Em outras modalidades, diferentes sistemas operacionais podem ser executados em cada instância de máquina virtual. Em uma modalidade, uma virtualização de tipo "hipervisor" é implementada onde múltiplas máquinas virtuais são executadas na mesma máquina física hospedeira, cada qual atuando como se tivesse seu próprio gabinete dedicado.
33 / 33 As máquinas virtuais podem também ser executadas em diferentes máquinas físicas hospedeiras.
[0078] Outros tipos de virtualização são também contemplados como, por exemplo, a rede (por exemplo, via comunicação por rede definida por software (SDN - Software Defined Networking)). As funções, como funções de controlador de borda de sessão e outros tipos de funções, podem também ser virtualizados como, por exemplo, via virtualização de funções da rede (NFV - "Network Functions Virtualization").
[0079] Embora a invenção tenha sido ilustrada e descrita com detalhes nos desenhos e na supracitada descrição, esta se destina a ser considerada como tendo caráter ilustrativo e não restritivo, ficando entendido que apenas a modalidade preferencial foi mostrada e descrita, e que se deseja que estejam protegidos todos os equivalentes, alterações e modificações que se enquadrem no espírito da invenção conforme descrita aqui e/ou nas reivindicações a seguir.
[0080] Portanto, o escopo adequado da presente invenção será determinado apenas pela interpretação mais ampla das reivindicações em anexo, de modo a abranger todas essas modificações, bem como todas as relações equivalentes àquelas ilustradas nos desenhos e descritas no relatório descritivo.

Claims (23)

REIVINDICAÇÕES
1. Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, sendo o método caracterizado por compreender: criar e salvar um widget por um usuário através de uma interface de usuário fornecida em um dispositivo conectado ao produto de plataforma de experiência de cliente baseado em local; gerar um ID exclusivo e armazenar uma configuração do widget como um objeto JSON ("JavaScript Object Notation" - notação de objeto JavaScript) plano dentro de um subsistema do produto de plataforma de experiência de cliente baseado em local; gerar um trecho de código JavaScript associado ao widget como uma tag de script HTML ("Hypertext Markup Language" - linguagem de marcação de hipertexto); aplicar, a uma página em um site web, o trecho de código JavaScript associado ao widget; carregar a implementação do widget, onde uma solicitação de registro não autenticada é enviada a um servidor especificado no trecho de código JavaScript; e converter um objeto de configuração em um objeto de configuração JSON, do qual se espera que forneça contexto ao widget e preencha o widget com o contexto.
2. Tag de script de acordo com a reivindicação 1, sendo a tag de script HTML caracterizada por compreender um ID exclusivo e atributos de servidor para o widget.
3. Tag de script de acordo com a reivindicação 1, sendo a tag de script HTML caracterizada por compreender um script estático comum.
4. Método de acordo com a reivindicação 1, caracterizado por o widget compreender adicionalmente uma extensão.
5. Método de acordo com a reivindicação 4, caracterizado por a etapa de converter um objeto de configuração em um objeto de configuração JSON, do qual se espera que forneça contexto ao widget e preencha o widget com o contexto, compreender adicionalmente usar uma API ("Application Programming Interface" - interface de programação de aplicativo) de multiplexação, onde quaisquer campos de entrada para preenchimento são usados como entrada de JSON para um manipulador.
6. Método de acordo com a reivindicação 5, caracterizado por a API de multiplexação compreender um ponto final REST ("Representational State Transfer" - transferência de estado representacional).
7. Método de acordo com a reivindicação 6, caracterizado por a invocação da entrada JSON fazer com que uma solicitação de REST seja enviada ao servidor.
8. Método de acordo com a reivindicação 7, caracterizado por o manipulador servir como um ponto de integração.
9. Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, sendo o método caracterizado por compreender: criar e salvar uma pluralidade de instâncias de widget por um usuário através de uma interface de usuário fornecida em um dispositivo conectado ao produto de plataforma de experiência de cliente baseado em local; selecionar uma primeira instância dentre a pluralidade de instâncias de widget pelo usuário; gerar um ID exclusivo e armazenar uma configuração da primeira instância como um objeto JSON ("JavaScript Object Notation" - notação de objeto JavaScript) plano dentro de um subsistema do produto de plataforma de experiência de cliente baseado em local; gerar uma tag de script para a primeira instância através da interface de usuário; instalar a tag de script gerada em uma página de um site web do usuário; carregar a implementação da primeira instância de widget, onde uma solicitação de registro não autenticada é enviada a um servidor especificado na tag de script; converter, por meio da arquitetura de widgets dentro do produto de plataforma de experiência de cliente baseado em local, um objeto de configuração em um objeto de configuração JSON do qual se espera que forneça contexto à instância de widgets do usuário; e preencher com contexto a primeira instância.
10. Método de acordo com a reivindicação 9, caracterizado por cada uma dentre a pluralidade de instâncias de widget ter extensões associadas.
11. Método de acordo com a reivindicação 10, caracterizado por as extensões serem ao menos uma dentre: personalizadas e integradas.
12. Método de acordo com a reivindicação 11, caracterizado por as extensões personalizadas ou integradas serem hospedadas pelo usuário e referenciadas por uma instância de configuração.
13. Método de acordo com a reivindicação 10, caracterizado por as extensões e as configurações associadas serem baseadas em nuvem e aparecerem dinamicamente para o produto de plataforma de experiência de cliente baseado em local.
14. Método de acordo com a reivindicação 9, caracterizado por a interface de usuário compreender campos que atuam como itens de alternância de recurso para recursos e funcionalidades.
15. Método de acordo com a reivindicação 14, caracterizado por os campos estarem disponíveis com base nas permissões do usuário.
16. Método de acordo com a reivindicação 9, caracterizado por a tag de script compreender um script estático comum.
17. Método de acordo com a reivindicação 9, caracterizado por a etiqueta de script compreender um script codificado que é decodificado ao ocorrer o carregamento.
18. Método de acordo com a reivindicação 9, caracterizado por a tag de script compreender um ID exclusivo e atributos de servidor para o widget.
19. Método de acordo com a reivindicação 9, caracterizado por quaisquer alterações nos widgets serem executadas de modo dinâmico e contínuo por meio da nuvem ao produto de plataforma de experiência de cliente baseado em local.
20. Método de acordo com a reivindicação 9, caracterizado por a etapa de converter, por meio da arquitetura de widgets dentro do produto de plataforma de experiência de cliente baseado em local, um objeto de configuração em um objeto de configuração JSON do qual se espera que forneça contexto à instância de widgets do usuário, compreender adicionalmente usar uma API ("Application Programming Interface" - interface de programação de aplicativo) de multiplexação, onde quaisquer campos de entrada para preenchimento são usados como entrada de JSON para um manipulador.
21. Método de acordo com a reivindicação 20, caracterizado por a API de multiplexação compreender um ponto final REST ("Representation State Transfer" - transferência de estado representacional).
22. Método de acordo com a reivindicação 21, caracterizado por a invocação da entrada JSON fazer com que uma solicitação de REST seja enviada ao servidor mediante o uso da API de multiplexação.
23. Método de acordo com a reivindicação 22, caracterizado por o manipulador servir como um ponto de integração entre o manipulador e a primeira instância.
BR112021011877-2A 2018-12-21 2019-12-19 Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, e, tag de script BR112021011877A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/229,027 2018-12-21
US16/229,027 US10747407B2 (en) 2018-12-21 2018-12-21 System and method for delivering modular tools
PCT/US2019/067552 WO2020132286A1 (en) 2018-12-21 2019-12-19 System and method for delivering modular tools

Publications (1)

Publication Number Publication Date
BR112021011877A2 true BR112021011877A2 (pt) 2021-09-08

Family

ID=71097175

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021011877-2A BR112021011877A2 (pt) 2018-12-21 2019-12-19 Método para entregar widgets, através de um ambiente de computação remoto baseado em nuvem, a um produto de plataforma de experiência de cliente baseado em local, e, tag de script

Country Status (8)

Country Link
US (2) US10747407B2 (pt)
EP (1) EP3899705B1 (pt)
JP (1) JP7291789B2 (pt)
CN (1) CN113196218B (pt)
AU (1) AU2019405930A1 (pt)
BR (1) BR112021011877A2 (pt)
CA (1) CA3157110A1 (pt)
WO (1) WO2020132286A1 (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984259A (zh) * 2020-07-10 2020-11-24 浙江大搜车软件技术有限公司 界面创建方法、装置、设备及存储介质
US11789707B2 (en) * 2021-01-13 2023-10-17 Yulin Yin Tool for creating forms in webpage
US11562092B1 (en) * 2021-12-07 2023-01-24 Cloudflare, Inc. Loading and managing third-party tools on a website

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US20140020068A1 (en) * 2005-10-06 2014-01-16 C-Sam, Inc. Limiting widget access of wallet, device, client applications, and network resources while providing access to issuer-specific and/or widget-specific issuer security domains in a multi-domain ecosystem for secure personalized transactions
US20170070361A1 (en) * 2008-08-11 2017-03-09 Ken Sundermeyer Data model for home automation
KR20100086677A (ko) * 2009-01-23 2010-08-02 삼성전자주식회사 커뮤니티 위젯 제공 방법 및 장치
US8990289B2 (en) * 2009-02-27 2015-03-24 Oracle America, Inc. Server based framework for improving Ajax performance
US20100251143A1 (en) * 2009-03-27 2010-09-30 The Ransom Group, Inc. Method, system and computer program for creating and editing a website
CN101957749A (zh) * 2009-07-20 2011-01-26 华为技术有限公司 一种生成widget的方法及装置
US20110061002A1 (en) * 2009-08-25 2011-03-10 Bethune David System and method for sending various application programming interfaces to a customized user interface
WO2011116248A1 (en) * 2010-03-17 2011-09-22 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
US9183653B2 (en) * 2010-12-14 2015-11-10 Microsoft Technology Licensing, Llc Extensions for modifying a graphical object to display data
US10318941B2 (en) * 2011-12-13 2019-06-11 Visa International Service Association Payment platform interface widget generation apparatuses, methods and systems
US20130096980A1 (en) * 2011-10-18 2013-04-18 Mcafee, Inc. User-defined countermeasures
EP2923254B1 (en) * 2012-11-21 2020-04-08 Greeneden U.S. Holdings II, LLC Graphical user interface for monitoring and visualizing contact center routing strategies
US20140310590A1 (en) * 2013-03-13 2014-10-16 Bby Solutions, Inc. Presentation layer software development kit for creation of dynamic webpages
US11233841B2 (en) * 2013-03-15 2022-01-25 Yottaa, Inc. Systems and methods for configuration-based optimization by an intermediary
US10984175B2 (en) * 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
CN104519096B (zh) * 2013-09-29 2018-02-06 国际商业机器公司 用于在云计算系统中部署服务的方法和系统
US9336209B1 (en) * 2013-11-25 2016-05-10 Google Inc. Collaborative use and management of modular applications
US9397993B1 (en) * 2014-01-14 2016-07-19 Google Inc. System and method for accessing modular applications
US9621428B1 (en) * 2014-04-09 2017-04-11 Cisco Technology, Inc. Multi-tiered cloud application topology modeling tool
US9811250B2 (en) * 2014-05-31 2017-11-07 Apple Inc. Device, method, and graphical user interface for displaying widgets
WO2016022693A1 (en) 2014-08-05 2016-02-11 Moxie Software, Inc. Systems and methods for client-side contextual engagement
US9875121B2 (en) * 2014-09-17 2018-01-23 International Business Machines Corporation API server
EP3278213A4 (en) * 2015-06-05 2019-01-30 C3 IoT, Inc. SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY
WO2017019684A1 (en) * 2015-07-27 2017-02-02 Datagrid Systems, Inc. Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data
US9621418B2 (en) * 2015-09-11 2017-04-11 T-Mobile U.S.A., Inc. Automatic network node relay link configuration tool
WO2017079658A1 (en) * 2015-11-04 2017-05-11 Screening Room Media, Inc. Digital content delivery system
US10985997B2 (en) * 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
US11537272B2 (en) * 2016-12-21 2022-12-27 Aon Global Operations Se, Singapore Branch Content management system extensions
US11080291B2 (en) * 2017-08-02 2021-08-03 Sap Se Downloading visualization data between computer systems
US10977262B2 (en) * 2017-08-02 2021-04-13 Sap Se Data export job engine

Also Published As

Publication number Publication date
JP7291789B2 (ja) 2023-06-15
JP2022515182A (ja) 2022-02-17
US20200201497A1 (en) 2020-06-25
EP3899705A1 (en) 2021-10-27
US10747407B2 (en) 2020-08-18
CN113196218A (zh) 2021-07-30
CN113196218B (zh) 2024-04-12
EP3899705B1 (en) 2024-02-07
AU2019405930A1 (en) 2021-07-01
WO2020132286A1 (en) 2020-06-25
CA3157110A1 (en) 2020-06-25
US11494057B2 (en) 2022-11-08
EP3899705A4 (en) 2022-10-12
US20200341605A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
US10951554B1 (en) Systems and methods facilitating bot communications
US11494057B2 (en) System and method for delivering modular tools
BR112021012439A2 (pt) Método e sistema para gerenciamento de bate-papo em um ambiente de central de contatos
US11218594B1 (en) System and method for creating bots for automating first party touchpoints
US20220038519A1 (en) Perhipheral device sharing over peer-to-peer connection
US11689662B2 (en) System and method for providing personalized context
WO2022246635A1 (en) Shortcut keys for virtual keyboards
US11367029B2 (en) System and method for adaptive skill level assignments
CA3057458C (en) System and method for self-deploying and self-adapting contact center components
US11743381B2 (en) System and method for adding content to contact center interactions
WO2023039697A1 (en) Centralized collection of application files