Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

O aplicativo do evolux phone vai disparar alguns eventos que podem ser capturados por uma aplicação no SalesForce.

Exemplo de uso:

Exemplo
addEventListener('message', event => {
   if (event.data.eventName === 'softphoneCallInvited') {
        console.log('softphoneCallInvited', event.data.payload);
   }
});


Eventos:

softphoneCallInvited

Exemplo de payload:

Informações adicionais capturadas por URA Inteligentes (ex.: número de CPF) podem ser recuperadas no campo "extra".


{
  agent: {id: 1, name: "Teste", extension: 612},
  answerTime: null,
  direction: "outbound",
  endTime: null,
  extra: {cpf: "09536679433"},
  from: {name: "612", number: "612"},
  hangupCause: null,
  id: "09a4482a-a81b-4a69-6fa1-114327490832",
  originationLegUuid: "09a4482a-a81b-4a69-6fa1-114327490832",
  queue: {slug: "pao2", number: "4002"},
  startTime: "2019-04-11T19:38:41.046Z",
  to: {name: "601", number: "601"},
  uuid: "09a4482a-a81b-4a69-6fa1-114327490832"
}

softphoneCallAccepted

Exemplo de payload:

{
  agent: {id: 1, name: "Teste", extension: 612},
  answerTime: "2019-04-11T19:38:44.101Z",
  direction: "outbound",
  endTime: null,
  extra: {cpf: "09536679433"},
  from: {name: "612", number: "612"},
  hangupCause: null,
  id: "09a4482a-a81b-4a69-6fa1-114327490832",
  originationLegUuid: "09a4482a-a81b-4a69-6fa1-114327490832",
  queue: {slug: "pao2", number: "4002"},
  startTime: "2019-04-11T19:38:41.046Z",
  to: {name: "601", number: "601"},
  uuid: "09a4482a-a81b-4a69-6fa1-114327490832"
}

softphoneCallEnded

Exemplo de payload:

{
  agent: {id: 1, name: "Teste", extension: 612},
  answerTime: "2019-04-11T19:38:44.101Z",
  direction: "outbound",
  endTime: "2019-04-11T19:42:40.357Z",
  extra: {cpf: "09536679433"},
  from: {name: "612", number: "612"},
  hangupCause: "NORMAL CLEARING",
  id: "09a4482a-a81b-4a69-6fa1-114327490832",
  originationLegUuid: "09a4482a-a81b-4a69-6fa1-114327490832",
  queue: {slug: "pao2", number: "4002"},
  startTime: "2019-04-11T19:38:41.046Z",
  to: {name: "601", number: "601"},
  uuid: "09a4482a-a81b-4a69-6fa1-114327490832"
}

agentStartPause

Exemplo de payload:

{
  agentId: 1,
  pause: {
    maxDuration: null,
    productive: true,
    reason: "Backoffice",
    timeStart: "2019-04-03T23:42:01.096056+00:00",
  }
}

agentChangePause

Exemplo de payload:

{
  agentId: 1,
    pause: {
    maxDuration: 5,
    productive: true,
    reason: "10 minutos/NR17",
    timeStart: "2019-04-03T23:42:04.885629+00:00"
  }}

agentStopPause

Exemplo de payload:

{ agentId: 1 }

agentLogin

Exemplo de payload:

{
  agentId: 1,
  extension: "612",
  name: "Teste",
}

Criando uma aplicação de exemplo

Nesta sessão vamos criar uma aplicação de exemplo usando a ferramente de linha de commando sfdx-cli.

Execute o comando abaixo para instalar a ferramenta sfdx-cli

https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm

npm install -g sfdx-cli


Após instalar vamos criar uma app usando o comando 

sfdx force:project:create -n NomeDaApp


Com a app criada vamos criar um aura componente para registrar o callbacks dos eventos que o EvoluxPhone dispara.

cd NomeDaApp/force-app/main/default/aurasfdx force:lightning:component:create -n NomeDoComponente

Após criar o componente que vai escutar os eventos disparados pelo EvoluxPhone é necessário registrar os eventos que desejamos na inicialização, para isso precisamos fazer algumas modifacações nos arquivos NomeDoComponente.cmp NomeDoComponenteController.js.

Exemplo de configuração:

force-app/main/default/aura/NomeDoComponente/NomeDoComponente.cmp

<aura:component implements="lightning:backgroundUtilityItem">
  <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
</aura:component>

force-app/main/default/aura/NomeDoComponente/NomeDoComponenteController.js

({
  doInit: function (component, event, helper) {
    const eventNames = [
      "softphoneCallInvited",
      "softphoneCallAccepted",
      "softphoneCallEnded",
      "agentStartPause",
      "agentChangePause",
      "agentStopPause",
      "agentLogin"
    ];

    const proxyToObject = (proxy) => {
      // TODO: configure the eslint to not raise an error with spread operator
      return JSON.parse(JSON.stringify(proxy));
    };

    addEventListener("message", (event) => {
      const { eventName, payload } = event.data;
      if (eventNames.indexOf(eventName) !== -1) {
        console.log(
          `[EVOLUX_PHONE_EVENT_LISTENER]  eventName: ${eventName}`,
          proxyToObject(payload)
        );
        //  Execute alguma ações de acordo com a sua regra de negócio
      }
    });
  }
});

Após editar estes arquivos você pode fazer upload da app para a sua organização. O sfdx-cli fornece algumas formas de fazer isso, uma delas é:

sfdx force:soruce:deploy -p force-app -u <nome_do_usuário>


Com a aplicação instalada na organização o administrador do sistema pode habilita-lá  em Setup > Apps > App Manager > Edit App (ex: Sales Lightning) > Utility Items.

Após a app ser adicionada na utility bar é necessário dar reload na página da App (ex: Sales) e ao fazer uma ligação será exibido um log  que inicia com EVOLUX_PHONE_EVENT_LISTENER contendo o nome do evento e o seus dados.



 

  • No labels