O blog da AWS

Pesquise programaticamente usuários usando uma API no Amazon Connect

Por Ramprasad Srirama, Sr Partner SA, Contact Center e
Ayesha Borker, Sr Connect Specialist SA
O gerenciamento de usuários é um componente crítico de um contact center. Os casos de uso típicos incluem a criação e a atualização de perfis de usuário. No entanto, outro caso de uso significativo é pesquisar e filtrar esses usuários com base em características exclusivas, como seus perfis ou tags.

O Amazon Connect fornece uma API na qual os clientes podem pesquisar usuários de contact center com base em seu nome, sobrenome, nome de usuário, perfis de roteamento, perfis de segurança, hierarquia de usuários e tags.

Neste blog, orientaremos você por diferentes cenários e casos de uso que podem ser aproveitados para pesquisar usuários no Amazon Connect por meio de uma API. Você pode usar esses exemplos como uma extensão em suas soluções existentes ou modificá-las com base em suas necessidades específicas. Neste post, na “arte do possível”, um exemplo de interface de usuário web (UI) é usada para acionar as funções e diferentes resultados de pesquisa. Em seu cenário, essa interface de usuário web pode ser facilmente substituída por um aplicativo interno ou utilitários de front-end que precisam invocar a uma API.

 

Visão geral da solução

Essa solução será implantada usando um template do AWS CloudFormation. O template cria um bucket do Amazon S3 e carrega todos os assets no Amazon CloudFront. Como usuário, você utiliza a URL do Amazon CloudFront para visualizar a interface de usuário web mencionada anteriormente. Com base nos filtros que você aplica; essa interface de usuário web acionará a uma API de pesquisa no Amazon Connect para fornecer os resultados apropriados.

Architecture of the web UI and API interface

Este post abordará as seguintes categorias de pesquisa em detalhes:

  1. Nome, sobrenome, nome de usuário dos usuários
  2. Perfis de roteamento, perfis de segurança e hierarquia de agentes dos usuários
  3. Tags atribuídas aos usuários
  4. E/OU (AND/OR) condições entre as categorias
  5. Políticas do AWS Identity and Access Management (IAM) para restringir a saída do perfil do usuário (Resumo vs Completo)

Nota:

Este é um exemplo de projeto desenhado para ser facilmente implementado visando experimentação. As permissões de política do IAM usam privilégios mínimos, no entanto, os recursos do Amazon CloudFront e do Amazon API Gateway implantados serão acessíveis publicamente. Por favor, tome as medidas apropriadas para proteger sua distribuição do Cloudfront e o API Gateway, conforme necessário.

Pré-requisitos

Para este passo a passo, presume-se que você entenda e tenha os seguintes recursos:

  1. Uma conta da AWS
  2. Uma instância existente do Amazon Connect
  3. AWS IAM com acesso para criar políticas e funções
  4. Amazon CloudFront com acesso para criar uma distribuição
  5. Amazon S3 com acesso para criar buckets
  6. AWS CloudFormation para executar o stack
  7. Amazon Cognito para criar usuários para acessar e executar as funções da API de pesquisa do Amazon Connect

 

Implantando a solução

Observação: o modelo do CloudFormation implantará os recursos na região US West (Oregon). Para implantar em outras regiões, faça o download da solução a partir deste repositório do GitHub.

Visão geral das etapas:

  1. Implantar um stack do CloudFormation
  2. Crie usuários dentro da instância do Amazon Connect para teste
  3. Adicionar usuários na Amazon e executar a interface de usuário web do CloudFront
  4. Teste a solução e procure usuários com base nos diferentes cenários

 

Implantação do CloudFormation

  1. Faça login no Console de Gerenciamento da AWS na região US West (Oregon).
  2. Clique no botão Launch Stack para criar uma stack launch stack button
  3. Insira um nome exclusivo para o stack (por exemplo, search-user-api).
  4. Na aba de configuração do Amazon S3 (por exemplo, search-user-api-blog-XXX), insira um nome globalmente exclusivo para um novo bucket do S3 que será criado. Esse bucket armazenará todos os ativos necessários para a interface de usuário web que você acessará por meio da URL do Amazon CloudFront.

Create Stack

  1. Marque a opção “Reconheço que o AWS CloudFormation pode criar recursos do IAM.
  2. Selecione Create Stack.
  3. O modelo do AWS CloudFormation pode levar de 15 a 30 minutos para criar todos os recursos. Uma vez feito, ele mostrará o status como “CREATE_COMPLETE”.
  4. Pode levar ainda de 15 a 20 minutos para que o Amazon CloudFront conclua a implantação dos ativos do site após as alterações de status para “CREATE_COMPLETE”.

 

Crie usuários em sua instância do Amazon Connect

  1. Crie uma agent hierarchy (hierarquia de agentes) com cinco níveis diferentes, como por exemplo Earth/NorthAmerica/EUA/Califórnia, ou você pode usar um exemplo de sua escolha.

User hirerachyUser hirerachy

2. Crie dois perfis de roteamento no Amazon Connect de sua escolha. Você pode usar o ‘Basic routing profile’ (Perfil de roteamento básico) existente e criar outro de sua escolha, como ‘Technical Support’ (Suporte técnico).

Routing profiles

3. Crie quatro usuários de sua escolha, atribuindo a cada um deles um perfil de roteamento diferente entre os dois perfis criados anteriormente e em uma hierarquia de agente diferente também.

4. Certifique-se de que cada usuário tenha um perfil de segurança diferente também, como administrador, agente, etc. Uma figura com um exemplo de configuração está abaixo:

Security profiles

C. Execute a interface de usuário web do CloudFront e adicione usuários ao Amazon Cognito

  1. Faça login no Amazon Cognito e clique no ‘grupo de usuários’ que começa com o {cloudformation-stack-name}-blog-user-pool

Amazon Cognito Userpool

2. Selecione Criar usuário no canto inferior direito.

3. Selecione Enviar um convite por e-mail ou Enviar um convite por SMS ou Enviar convite por e-mail e SMS, dependendo da sua escolha. Em nosso post, escolheremos Enviar um convite por e-mail.

4. Digite o nome de usuário e um endereço de e-mail válido no qual você receberá um e-mail.

5. Selecione Definir uma senha em Senha temporária e insira 8 caracteres ou dígitos ou combinação de ambos.

Create user

6. Selecione Criar usuário no canto inferior esquerdo.

7. Você receberá um e-mail com o nome de usuário e senha temporária que você inseriu com o assunto “Sua senha temporária”. Se você não vir em sua caixa de entrada, verifique sua pasta de lixo eletrônico.

8. Faça login no Console de Gerenciamento da AWS e navegue até o AWS CloudFormation digitando o nome do serviço na barra de pesquisa.

9. Selecione o stack que você acabou de criar.

10. Vá para a secção de Outputs do stack recém-criado. Copie a URL do CloudFrontEndpoint da coluna valor.

Cloudfront output

11. Cole a URL em uma nova guia/janela do navegador web para navegar até a interface de usuário web do CloudFront.

12. Você precisará inserir o nome de usuário e a senha que recebeu via e-mail e clicar no botão de Login

Cognito Credentials

13. Você será solicitado a alterar a senha, pois esta é sua primeira tentativa de login. Digite a nova senha escolhida e clique no botão Alterar senha

Change password

  1. Sua senha será alterada e você será solicitado a inserir seu nome de usuário e senha.

Insira os detalhes e clique no botão Login.

  1. Após um login bem-sucedido, você observará todos os usuários configurados em sua instância de Amazon Connect na interface de usuário web em Detalhes do usuário selecionado

User list summary

Testar a solução e pesquisar usuários com base em diferentes cenários

Vamos agora testar a solução com base em diferentes cenários. No lado esquerdo da interface de usuário web, você verá opções como Pesquisa por Perfil e Pesquisa por Tag.

i. Pesquisando usuários por nome, sobrenome e nome de usuário

  1. Selecione Pesquisa por perfil. Você tem a opção de pesquisar digitando: –
    • primeiro nome (o tipo de comparação será baseado no valor EXACT que você inserir).
    • sobrenome (o tipo de comparação será baseado no valor STARTS_WITH que você inserir).
    • nome de usuário (o tipo de comparação será baseado no valor CONTAINS que você inserir).
  • Search

2. Digite os nomes com base na escolha e configuração e clique em Pesquisar usuário.

3. Ele fornecerá a lista dos usuários com base em correspondências em uma saída JSON. Em nosso exemplo, ele produz 3 usuários em resultados.

Search results

ii.Pesquisa de usuários por perfis de roteamento do Amazon Connect

  1. Selecione Pesquisa de Perfil e escolha o perfil de roteamento de sua escolha na lista suspensa.
  2. Em nosso exemplo, escolhemos ‘Perfil de Roteamento Básico’ na caixa de listagem de Perfis de Roteamento.
  3. Clique em Pesquisar Usuário e você obterá os resultados relevantes (usando a condição: routingProfileId = ‘routing-profile-id-or-arn’)
  4. Em nosso exemplo, ele fornece dois resultados no formato JSON.

Search results

iii. Pesquisa de usuários por perfis de segurança do Amazon Connect

  1. Selecione Pesquisa de Perfil e escolha um perfil de segurança de sua escolha na caixa de listagem de Perfis de Segurança.
  2. Clique em Pesquisar Usuário e você obterá os resultados relevantes (usando a condição :securityProfileId= “security-profile-id-or-arn”)
  3. Em nosso exemplo, obtemos 1 usuário na saída JSON que corresponde à condição selecionada –’Perfil de roteamento básico’

Search results

iv. Pesquisa de usuários por hierarquia de agentes (Agent hierarchy) do Amazon Connect

  1. Selecione Pesquisa de Perfil e escolha uma hierarquia de agente de sua escolha na caixa de listagem Hierarquia de Usuários.
  2. Clique em Pesquisar Usuário e você obterá os resultados relevantes (usando a condição:securityProfileId = “security-profile-id-or-arn”)
  3. Em nosso exemplo, obtemos 1 usuário na saída JSON que corresponde à condição selecionada – San Jose

Search results

v. Pesquisa de usuários por perfil de roteamento do Amazon Connect E (AND) hierarquia de agente E (AND) perfil de segurança

  1. Selecione Pesquisa de Perfil e escolha o perfil de roteamento de sua escolha na caixa de listagem Perfil de Roteamento. (Por exemplo, perfil de roteamento básico)
  2. Selecione o perfil de segurança de sua escolha na caixa de listagem Perfil de Segurança. (Por exemplo, agente).
  3. Selecione a hierarquia de agente de sua escolha na caixa de listagem Hierarquia de Usuário. (Por exemplo, San Jose)
  4. Clique em Pesquisar Usuário e você obterá os resultados relevantes (condição :(routingProfileId = “routing-profile-id-or-arn” E securityProfileId = “security-profile-id-or-arn” E agentGroup = “agent-group-id-or-arn”)
  5. Em nosso exemplo, obtemos 1 usuário na saída JSON.

 

Search results

vi. Pesquisando usuários por nome OU (OR) nome de usuário E (AND) hierarquia de agente E (AND) perfil de segurança E (AND) perfil de roteamento

  1. Selecione Profile Search e insira o primeiro nome (por exemplo, Mike) e o nome de usuário (por exemplo, wbuff) de sua escolha nos respectivos campos.
  2. Selecione o perfil de roteamento de sua escolha (por exemplo, Suporte Técnico) na caixa de listagem Perfil de Roteamento.
  3. Selecione o perfil de segurança de sua escolha (por exemplo, agente) na caixa de listagem Perfil de segurança.
  4. Selecione a hierarquia de agente de sua escolha (por exemplo, Pleasanton) na caixa de listagem Hierarquia de usuário.
  5. Clique em Pesquisar Usuário. A API de pesquisa produzirá uma consulta com a seguinte condição :( primeiro nome = “Mike” OU nome de usuário CONTAIN “wbuff) E (securityProfileId = “security-profile-id-or-arn” E agentGroup = “agent-group-id-or-arn” E routingProfileId = “routing-profile-id-or-arn”)
  6. Em nosso exemplo, obtemos dois usuários na saída JSON.

Search results

vii. Atribuir tags a usuários

O Amazon Connect permite que você use tags nos usuários para facilitar a organização, a identificação e a pesquisa deles. Nesta seção, atribuiremos tags aos nossos usuários usando a  API TagResource.

  1. Selecione um dos usuários no painel seleção de detalhes do usuário da interface de usuário web. No nosso caso, será – ‘admin’. Clique no botão Tag User.
  2. Da mesma forma, escolha outro usuário (no nosso caso ‘jcollins’) e clique no botão Tag User.
  3. Agora escolha os usuários individualmente e você verá que “Location” com “EUA” e “Sensitive ” com “True” é atribuído ao usuário na saída JSON.

Tagged user

viii. Pesquise usuários com base em tags

  1. À esquerda da interface de usuário web, selecione Pesquisa por tags.
  2. Selecione a condição OU (OR) na caixa de listagem Tipo de Condição.
  3. Selecione as opções HAVE, Location e USA na 2ª linha.
  4. Selecione as opções HAVE, Sensitive e True na 3ª linha.
  5. Selecione a opção SUMMARY na caixa de listagem Detalhes do Perfil.
  6. Clique no botão Pesquisar usuário e você verá 2 usuários (com informações de perfil limitadas) listados na saída

Search by Tags

Search results

7. Da mesma forma, vamos repetir as mesmas etapas para uma condição NOT_HAVE.

8. Selecione Pesquisa por tags e escolha a condição E (And) na caixa de listagem Tipo de condição.

9. Selecione as opções NOT_HAVE, Location e EUA na 2ª linha.

10. Selecione as opções NOT_HAVE, Sensitive e true na 3ª linha.

11. Selecione a opção SUMMARY na caixa de listagem Detalhes do Perfil.

12. Clique no usuário de pesquisa e você verá 2 usuários que não possuem ‘Location e Sensitive’ na saída.

13.Search User and you will see 2 users who do not have ‘Location and ‘Sensitive’ in the output.

Search by Tags
Search results

ix. Definir funções do IAM para restringir o acesso do usuário com base em tags

Você também pode criar funções do IAM e restringir o acesso à pesquisa com base em tags. Abaixo está um exemplo de política para a API SearchUser para fornecer resultados para usuários que possuem as tags ‘Location’ com valor ‘USA’ e ‘Sensitive’ com valor ‘True’.


		{
		  "Version": "2012-10-17",
		  "Statement": [
			{
			  "Effect": "Allow",
			  "Action": [
				"connect:SearchUser"
			  ],
			  "Resource": "*",
			  "Condition": {
				"StringEquals": {
				  "connect:SearchTag/Location": "USA",
				  "connect:SearchTag/Sensitive": "True"
				}
			  }
			}
		  ]
		}
	
JSON

Limpando o ambiente

Para evitar incorrer em cobranças futuras, remova todos os recursos criados excluindo o stack do AWS CloudFormation .

Conclusão

Esta postagem demonstrou exemplos de como se pode usar a nova API de pesquisa de usuário do Amazon Connect usando diferentes casos de uso e cenários.

Para saber mais sobre como essa solução foi criada e ver como as APIs foram executadas, consulte o repositório do GitHub.

 

Este artigo foi traduzido do Blog da AWS em Inglês.

 


Sobre os autores

Ramprasad Srirama é Sr Partner SA, Contact Center

 

 

 

 

Ayesha Borker é Senior Connect Specialist SA