Introdução
No contexto dos sistemas de informação das Organizações, existem quase sempre vários sistemas especializados ou legados, e a sua integração com CRM enriquece a experiência dos seus utilizadores, seja permitindo o acesso à informação dos vários sistemas, de forma centralizada na mesma interface, ou permitindo funcionalidades adicionais e otimização da usabilidade. O Salesforce CRM não é exceção, sendo disponibilizadas múltiplas formas de integração, tipicamente dependentes das características dos sistemas, e do contexto e funcionalidades a disponibilizar.
Neste artigo exemplificamos uma integração em Salesforce do Qlik Sense recorrendo a connected apps.
Contexto
O Qlik Sense é uma plataforma que, de forma sucinta, tem como objetivo central permitir a análise de dados. Esta plataforma permite a criação de quadros de indicadores específicos, com base em informação consolidada e proveniente de diversas fontes.
O Salesforce é a plataforma de CRM na cloud, líder de mercado, e como a maioria dos sistemas de CRM, muitas vezes o sistema central na frente da transformação e adoção digital das Organizações, permitindo, alem de muitas outras áreas como a gestão comercial e marketing, a gestão de clientes e parceiros e todas as suas interações. Por isso, tem abrangência sobre quase todas as áreas das Organizações. Assim, a integração do CRM com serviços externos é uma forma de dar a utilizadores, acesso a funcionalidades e informação de outros sistemas de forma integrada, otimizando processos, vendas e satisfação de colaboradores, parceiros e clientes.
Neste artigo exemplificamos, a integração dos dois sistemas, que permite que o universo de utilizadores de CRM, enriqueçam a tomada de decisão na interação com clientes, tendo como base, dados analisados pelo Qlik provenientes de variadas fontes.
Implementação
Para esta integração optámos por criar uma Connected App em Salesforce para tornar a ligação entre ambos os sistemas mais segura e automática. Antes de olharmos para o nosso exemplo de integração do Qlik, vejamos no que consistem as Connected Apps e para que são usadas.
Connected Apps
No Salesforce uma Connected App, é uma estrutura que permite que uma aplicação externa se integre com o Salesforce usando APIs e protocolos padrão, como sejam: SAML, OAuth e OpenID Connect.
As Connected Apps usam os protocolos indicados, para autenticar, autorizar e criar uma experiência de login único (SSO) para aplicações externas. As aplicações externas integradas com Salesforce podem ser executados no Salesforce ou em outras plataformas, dispositivos ou assinaturas de SaaS.
Por exemplo, quando se faz login na aplicação móvel Salesforce e se vê dados da Organização Salesforce, estamos a utilizar uma Connected App.
Existem quatro casos de uso principais para implementar uma Connected App:
Acesso a dados Salesforce por uma aplicação externa
Por exemplo, a disponibilização de uma aplicação web que leia dados de estado de encomendas diretamente do Salesforce através da Salesforce API seria integrada com recurso a Connected Apps. Para que uma Connected App solicite acesso, deve ser integrada com a API Salesforce utilizando o protocolo OAuth 2.0. O OAuth 2.0 é um protocolo aberto que autoriza a partilha segura de dados entre aplicações através da troca de tokens.
Para tal as implementações das aplicações estabelecem fluxos de autorização OAuth, que integram com a API Salesforce. Estes fluxos de autorização permitem que um utilizador trabalhe numa aplicação, mas veja os dados de outra.
Integração de Provedores de serviço
O Salesforce pode ser utilizado como fornecedor de identidade. Para tal pode utilizar uma Connected App para integrar o fornecedor de serviços com a Org de Salesforce, através de um dos seguintes métodos:
Utilizar uma aplicação conectada com SAML 2.0 para integrar um prestador de serviços com a Org Salesforce.
A Salesforce suporta o single-sign-on SAML (SSO) quando o prestador de serviços ou o fornecedor de identidade iniciam o fluxo. Por exemplo, imagine-se que queremos construir uma aplicação web personalizada que implementa SAML 2.0 para autenticação do utilizador, e gostaríamos que os seus utilizadores possam iniciar sessão na aplicação com as suas credenciais Salesforce. Para configurar o fluxo SSO, configuramos a nova aplicação como uma Connected App, definimos a Org Salesforce como o fornecedor de identidade SAML para a Connected App, e os utilizadores podem iniciar sessão na aplicação com as suas credenciais Salesforce.
Utilizar uma Connected App com o OpenID Connect para integrar um fornecedor de serviços com a Org Salesforce.
Para utilizar esta opção, o prestador de serviços deve aceitar tokens OpenID Connect. Por exemplo, imagine-se desta vez que pretendemos que os utilizadores passem diretamente (e se autentiquem automaticamente) do Org Salesforce para uma aplicação externa que aceita o OpenID Connect. Para isso, será necessário criar uma Connected App para a aplicação externa. Na Connected App, ativamos as definições de OAuth, selecionamos o âmbito "Permitir o acesso ao seu identificador único (openid)" e configuramos um token de ID. Esta configuração permite o fluxo SSO para a nova aplicação, e desta forma integramos o fornecedor de serviços com a Org Salesforce.
Gerir o acesso as apps de terceiros
Os administradores de Salesforce podem definir políticas de segurança para controlar os dados a que uma aplicação de terceiros pode aceder a partir da Org. Os administradores também podem definir quem pode usar a app de terceiros. Por exemplo, instalada uma aplicação da appExchange que permite aos utilizadores da sua Org fazer reservas de viagem, ao selecionar a opção "Os utilizadores aprovados pelo administrador estão pré-autorizados" para a Connected App, o administrador pode atribuir perfis específicos de utilizador à aplicação. Deste modo apenas os utilizadores com este perfil de utilizador podem aceder à aplicação. O administrador também pode definir uma política de token de atualização para revogar o acesso da app de reservas de viagem aos seus dados Salesforce após um período de tempo definido. Além de definir políticas de segurança para gerir aplicações de terceiros, o administrador pode desinstalar, e, quando necessário, bloquear o acesso a estas aplicações a partir da Org Salesforce.
Fornecer Autorização para Gateways de APIs Externas
O Salesforce pode funcionar como um servidor de autorização OAuth independente para proteger os recursos alojados numa Gateways de APIs Externa. Utilizando o registo dinâmico do cliente OpenID Connect, os servidores de recursos podem criar de forma dinâmica aplicações de clientes como Connected Apps no Salesforce. O Salesforce pode então autorizar estas Connected Apps a aceder a recursos protegidos hospedados pelo serviço terceiro.
Por exemplo, o Salesforce pode funcionar como o servidor de autorização OAuth para gateways API que estão hospedados na plataforma Anypoint da MuleSoft (sistema externo). A plataforma Anypoint da MuleSoft, que é o servidor de recursos, pode criar dinamicamente aplicações de clientes como Connected Apps. Estas Connected Apps podem enviar um pedido à Salesforce e pedir o acesso aos dados protegidos pelos gateways da API. O Salesforce pode então autorizar as Connected Apps, permitindo-lhes o acesso aos dados protegidos pelos gateways da API.
Integração Qlik
No caso concreto do exemplo a que nos propusemos, vamos utilizar a connected app no caso de uso de Integração de Provedores de serviço com SAML, em que o provedor é o Qlik Sense.
A primeira tarefa de preparação da integração a ser efetuada será no lado do Qlik Sense. Esta tarefa consiste em configurar um proxy virtual com dados que serão necessários, posteriormente, na criação da Connected App, nomeadamente o “SAML Host URI” e o “SAML Entity ID”. Além disso, neste preenchimento é necessário ter o certificado do ambiente Salesforce ao qual o sistema será ligado, obtido previamente na secção de Salesforce de “Identity Provider”. Mais pormenores aqui.
Concluída a tarefa anterior, segue-se a configuração na componente do Salesforce. Na criação da Connected App os campos mais importantes e que garantem a ligação ao serviço são: “Entity Id” e “ACS URL”, e, nestes campos, vamos utilizar os valores inseridos nos campos mencionados anteriormente no virtual proxy. Respetivamente associamos o “SAML entity ID” ao “Entity Id” e o “SAML Host URI” ao “ACS URL”.
Caso existam utilizadores que não possam aceder a esse serviço, é preciso criar um “Permission Set” com os utilizadores cujo acesso é autorizado e associá-la à app criada.
Por último, é necessário criar um mecanismo onde se possa ver o conteúdo do Qlik Sense no Salesforce. Para isto, considerámos duas hipóteses:
- Web Tab;
- Página Visualforce.
A página Visualforce é mais recomendada pelo facto de ser mais versátil e poder ser inserida em vários locais, tais como: página de detalhes de um objeto, tab Home, etc. Esta página tem apenas no seu conteúdo a tag “iframe” obtida do quadro que se quer mostrar do Qlik Sense.
Com o processo concluído, obtemos a integração do conteúdo Qlik dentro do Salesforce:
Conclusão
A flexibilidade de integração de sistemas em CRM é fundamental. O Salesforce permite vários mecanismos de integração, incluindo com Connected Apps, que reforçam a otimização de processos junto dos utilizadores, garantindo um ponto central de acesso e uma visão uniforme da informação de vários sistemas dentro do CRM.