Se você deseja atribuir um desconto automático para pessoas de sua base, utilizar uma autenticação própria ou impedir que a inscrição ocorra por determinadas regras de negócio própria, leia este artigo!
Existem diferentes cenários que necessitam de integração entre a EngagED e a base de dados de nossos clientes. Se você se identifica com algum dos casos abaixo, este artigo é pra você:
- Quero atribuir um desconto automático para pessoas que trabalham em minha empresa, que são ex-alunos, associados, entre outros;
- Quero impedir de que a pessoa prossiga com sua inscrição caso esteja inadimplente em minha base;
- Quero que a pessoa se autentique em minha base, e eu possa reaproveitar alguns dados básicos como nome, e-mail, e telefone para que ela prossiga com a inscrição na EngagED sem precisar criar um cadastro do zero, ou então simplesmente que se autentique em minha base para que eu dê sequência com outros processos internamente;
Se você se identifica com algum dos casos acima, este artigo é para você.
⚠️ Atenção
Se seu caso não se encaixa com as situações acima, talvez este artigo sobre Webhooks possa melhor se aplicar para sua situação! Clique aqui e saiba mais, ou fale com nossa equipe para que possamos te ajudar!
Diferente da abordagem padrão de autenticação que a EngagED costuma utilizar (passwordless), quando nosso cliente decide utilizar uma página de autenticação externa para atender alguma das necessidades pontuadas acima, precisamos passar pelos seguintes passos:
- Redirecionamento para a página para autenticação;
- Processamento dos dados retornados para a EngagED pós autenticação;
Redirecionamento para a página de autenticação
Sempre que o usuário (aluno) clicar em "Inscreva-se" (a partir das Landing Pages da EngagED Sales), a EngagED exibirá uma “modal” com as seguintes opções de autenticação:
- Autenticação externa (autenticação através da página de nosso cliente EngagED, com o nome do botão de acordo com o devido contexto, por exemplo: "Entrar como advogado”, “entrar como Comerciário", "entrar como Associado XYZ", entre outros...);
- Outros (autenticação através do método tradicional da EngagED, para público aberto, permitindo que a pessoa acesse a inscrição através de nosso próprio método de autenticação passwordless);
Autenticação externa
No momento em que o usuário (aluno) deseja realizar a inscrição em uma turma, e optar pela autenticação externa definida pelo cliente EngagED, a EngagED abrirá a página de autenticação externa, enviando o seguinte parâmetro por URL:
Parâmetro enviado pela EngagED, por URL, ao chamar a página de autenticação do cliente EngagED:
Variável | Tipo | Descrição |
---|---|---|
redirect_uri | String | Parâmetro enviado por URL pela EngagED ao chamar a página de autenticação externa do cliente EngagED. Esta URL deverá ser requisitada (GET) pela página de autenticação do cliente EngagED após autenticação pelo usuário (aluno), enviando o parâmetro payload com os atributos pertinentes ao usuário (aluno) recém autenticado (mais informações sobre o payload abaixo). | |
🌐 Exemplo de URL chamada pela EngagED com parâmetros aplicados para autenticação do cliente da EngagED
https://auth.dominioclientedaengaged.com.br/authorize?redirect_uri=https%3A%2F%2Fcursos.dominiodoclientedaengaged.com.br
Após o usuário realizar a autenticação externa no ambiente do cliente EngagED, a página de autenticação deverá redirecionar o usuário (aluno) chamando a URL passada no parâmetro redirect_uri, contendo o parâmetro de URL payload, "encodado" em base64, contendo os atributos esperados pela EngagED para continuidade da jornada do usuário.
Parâmetro que deve ser enviado pelo cliente EngagED para a EngagED, por URL, ao chamar a URL (redirect_uri) informada pela EngagED
Chave | Tipo | Descrição |
---|---|---|
payload | String | String “encodada” em base64, contendo todos os atributos esperados pela EngagED para dar continuidade na jornada do usuário (aluno) no processo de inscrição; |
🌐 Exemplo de URL (redirect_uri) chamada pelo cliente da EngagED, após autenticação externa do usuário (aluno), adicionando o parâmetro payload
https://cursos.dominiodoclientedaengaged.com.br?payload=ewoJIm5hbWUiOiAiSnVjYSBGcmFuYXRvIiwKCSJjcGYiOiAiNjc0MTgwNDQwNDYiLAoJImVtYWlsIjogImp1Y2EuZnJhbmF0b0BnbWFpbC5jb20iLAoJInBob25lIjogIis1NTQxOTk4MzU4MTgwIgoJImFjdGlvbiI6IHsKCQkiY29kZSI6ICJkaXNjb3VudCIsCgkJInR5cGUiOiAiY2VudHMiLAoJCSJhbW91bnQiOiAyNTQwCgl9LAoJImZyZWV6ZV9wcm9wZXJ0aWVzIjogWyJuYW1lIiwgInBob25lIiwgImVtYWlsIiwgImNwZiJdCn0
ℹ️ Base64 é um método para codificação de dados para transferência na Internet (codificação MIME para transferência de conteúdo). É utilizado frequentemente para transmitir dados binários por meios de transmissão que lidam apenas com texto
Exemplo de codificação base64
ewoJIm5hbWUiOiAiSnVjYSBGcmFuYXRvIiwKCSJjcGYiOiAiNjc0MTgwNDQwNDYiLAoJImVtYWlsIjogImp1Y2EuZnJhbmF0b0BnbWFpbC5jb20iLAoJInBob25lIjogIis1NTQxOTk4MzU4MTgwIgoJImFjdGlvbiI6IHsKCQkiY29kZSI6ICJkaXNjb3VudCIsCgkJInR5cGUiOiAiY2VudHMiLAoJCSJhbW91bnQiOiAyNTQwCgl9LAoJImZyZWV6ZV9wcm9wZXJ0aWVzIjogWyJuYW1lIiwgInBob25lIiwgImVtYWlsIiwgImNwZiJdCn0
Processamento dos dados retornados para a EngagED pós autenticação
Após o usuário (aluno) ter realizado a autenticação externa na página do cliente EngagED, a EngagED, agora com posse do payload retornado por parâmetro, irá converter a String recebida em base64 para a interpretação dos atributos retornados.
Exemplo de payload retornado em base64
ewoJIm5hbWUiOiAiSnVjYSBGcmFuYXRvIiwKCSJjcGYiOiAiNjc0MTgwNDQwNDYiLAoJImVtYWlsIjogImp1Y2EuZnJhbmF0b0BnbWFpbC5jb20iLAoJInBob25lIjogIis1NTQxOTk4MzU4MTgwIgoJImFjdGlvbiI6IHsKCQkiY29kZSI6ICJkaXNjb3VudCIsCgkJInR5cGUiOiAiY2VudHMiLAoJCSJhbW91bnQiOiAyNTQwCgl9LAoJImZyZWV6ZV9wcm9wZXJ0aWVzIjogWyJuYW1lIiwgInBob25lIiwgImVtYWlsIiwgImNwZiJdCn0=
Utilizando ferramentas de codificação/decodificação de base64, a String acima resultará em:
{
"name": "Vinícius Mendes",
"cpf": "78734297090",
"email": "vms@engaged.com.br",
"phone": "+5541998358180"
"action": {
"code": "discount",
"type": "cents",
"amount": 2540
},
"freeze_properties": ["name", "phone", "email", "cpf"]
}
ℹ️ Caso queira realizar testes de encode/decode para base64, recomendamos os seguintes sites:
Encode: https://www.base64encode.org/
Decode: https://www.base64decode.org/
O payload deverá conter dados básicos do usuário (aluno), campos que gostaria de que não fossem alterados, bem como eventuais benefícios em desconto que se queira atribuir.
Dados do usuário no payload
Campo | Tipo | Descrição |
---|---|---|
name | String | Nome completo do usuário (aluno) que recém se autenticou. |
cpf | String | CPF do usuário (aluno) que recém se autenticou (sem pontuação e caracteres especiais, exemplo 78734297090 |
String | E-mail do usuário (aluno) que recém se autenticou | |
phone | String | Telefone do usuário (aluno) que recém se autenticou, no formato +5541998358180 |
Objeto de ação a ser tomada após autenticação
O payload deverá conter o atributo action, contendo qual ação (code) a EngagED deverá tomar após o cliente da EngagED ter redirecionado para a página redirect_uri.
Possíveis ações que podem ser tomadas
- none: a EngagED prosseguirá normalmente com o fluxo de inscrição, apenas auto-preenchendo os campos do usuário (aluno) retornados no payload;
- discount: a EngagED prosseguirá com o fluxo de inscrição, auto-preenchendo os campos do usuário (aluno), e adicionando automaticamente o desconto informado no objeto action;
- block: a EngagED irá interromper o fluxo de inscrição, exibindo na interface a mensagem configurada pelo cliente EngagED na variável user_message.
action.none
Para casos onde se deseja continuar com o fluxo de inscrição após a autenticação, apenas auto-preenchendo os campos do usuário.
Exemplo de objeto action
...
"action": {
"code": "none"
}
...
action.discount
Para casos onde se deseja continuar com o fluxo de inscrição após a autenticação, auto-preenchendo os campos do usuário, e adicionando um desconto automaticamente durante o processo de pagamento.
Existem 2 possibilidades de atribuição de desconto:
- percentage: desconto em porcentagem, onde se deseja aplicar uma porcentagem de desconto em cima do valor à ser cobrado. Em casos onde se deseja aplicar, por exemplo, X% de desconto no pagamento para a pessoa autenticada;
- cents: desconto, em centavos, referente ao valor absoluto em desconto que se deseja aplicar. Em casos onde se deseja aplicar, por exemplo, X reais de desconto no pagamento para a pessoa autenticada;
Exemplo de objeto de desconto para porcentagem
...
"action": {
"code": "discount",
"type": "percentage",
"amount": 50
}
...
Exemplo de objeto de desconto para valores absolutos (cents)
...
"action": {
"code": "discount",
"type": "cents",
"amount": 2540
}
...
action.block
Para casos onde se deseja interromper o fluxo de inscrição, por qualquer que seja o motivo, exibindo na interface a mensagem configurada pelo cliente EngagED na variável user_message.
Exemplo de objeto de interrupção de inscrição
...
"action": {
"code": "block",
"user_message": "Infelizmente você não poderá seguir com a inscrição.<br/>Regularize sua situação financeira <a href=\\"<https://meusite.com>\\">clicando aqui</a>."
}
...
ℹ️ Fique a vontade em utilizar tags HTML para enriquecer a mensagem que será exibida para o usuário
Bloqueio de campos para não serem alterados pelo usuário (aluno) durante a inscrição
O payload poderá conter o atributo freeze_properties, contendo os campos que deseja que o usuário (aluno) não altere durante seu fluxo de inscrição.
Campo | Tipo | Descrição |
---|---|---|
freeze_properties | Array de Strings String[] |
Array contendo as opções de campos que deseja bloquear para que o usuário (aluno) não altere durante seu processo de inscrição, podendo ser ”name”, “phone”, “email”, “cpf” |
Exemplo de array freeze_properties preenchido
...
"freeze_properties": ["name", "phone", "email", "cpf"]
}
Entendi! Por agora por onde devo começar?
Aqui vão algumas lições do lado do cliente EngagED para poder operar com autenticação externa:
1 - Prepare uma página própria, que a EngagED irá chamar, no procedimento de autenticação externa, para que assim que alguém demonstrar interesse em se inscrever a partir das Landing Pages da EngagED, possamos redirecionar para esta página;
2 - Prepare esta página para receber por parâmetro o atributo redirect_uri, contendo a URL que deverá ser chamada (GET) (assim que tiver esta página desenvolvida, informe o time da EngagED para que possamos dar sequência na configuração de sua conta com método de autenticação externo);
3 - Em paralelo, após a autenticação do usuário (aluno) em sua página, interprete o que fazer com esta pessoa, para saber qual comportamento direcionar quando for chamar a URL presente em redirect_uri da EngagED;
ℹ️ Nesse processo, fique a vontade para aproveitar de que o usuário (aluno) está realizando uma requisição em seu servidor para que possa trabalhar suas próprias regras de negócio como: gerar um log em sua base informando de que houve uma tentativa de autenticação para aquele usuário, informar o CRM de que houve um lead interessado em um curso/turma, entre outros...
Caso não tenha entendido alguma etapa deste artigo, fique a vontade em consultar nosso time de suporte! Estamos à disposição para te ajudar!
Conte conosco!
Vamos juntos!