Evolux Phone - Salesforce

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 => {
	console.log('received from Evolux', event);
});


Eventos:

softphoneCallInvited

Exemplo de payload:

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


{
  "id": "8eb4d68e-722a-11eb-914b-d185dd1424c7",
  "uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "recordingUUID": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "originationLegUuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "direction": "inbound",
  "hangupCause": null,
  "startTime": "2021-02-18T20:47:47.476Z",
  "answerTime": null,
  "endTime": null,
  "from": {
    "name": "Suporte 601",
    "number": "601"
  },
  "to": {
    "name": "700",
    "number": "60916f51-c6f5-a853-3651-a8a456064080"
  },
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "extra": {
    "evolux_cc_member_session_uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
    "evolux_cc_queue_number": "4000",
    "evolux_cc_queue_slug": "suporte"
  },
  "queue": {
    "slug": "suporte",
    "number": "4000"
  }
}

Exemplo com uma chamada de campanha:

{
  "id": "7b684fba-722b-11eb-915c-d185dd1424c7",
  "uuid": "7b685078-722b-11eb-915d-d185dd1424c7",
  "recordingUUID": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "originationLegUuid": "7b685078-722b-11eb-915d-d185dd1424c7",
  "direction": "inbound",
  "hangupCause": null,
  "startTime": "2021-02-18T20:54:30.244Z",
  "answerTime": "2021-02-18T20:54:35.218Z",
  "endTime": null,
  "from": {
    "name": "Campanha de Cobrança Anual",
    "number": "601"
  },
  "to": {
    "name": "Campanha de Cobrança Anual",
    "number": "601"
  },
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "extra": {
    "campaign_id": "1",
    "evolux_cc_agent": "joao",
    "subscriber_id": "1",
    "subscriber_number": "601",
    "subscriber_name": "Maria",
    "campaign_slug": "campanha_de_cobranca_anual",
    "dialer_subscriber_origination_uuid": "7b685078-722b-11eb-915d-d185dd1424c7",
    "subscriber_external_id": "000120"
  },
  "campaign": {
    "id": "1",
    "slug": "campanha_de_cobranca_anual"
  },
  "subscriber": {
    "number": "601",
    "name": "Maria",
    "externalId": "000120"
  }
}


softphoneCallAccepted

Exemplo de payload:

{
  "id": "8eb4d68e-722a-11eb-914b-d185dd1424c7",
  "uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "recordingUUID": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "originationLegUuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "direction": "inbound",
  "hangupCause": null,
  "startTime": "2021-02-18T20:47:47.476Z",
  "answerTime": "2021-02-18T20:47:56.105Z",
  "endTime": null,
  "from": {
    "name": "Suporte 601",
    "number": "601"
  },
  "to": {
    "name": "700",
    "number": "60916f51-c6f5-a853-3651-a8a456064080"
  },
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "extra": {
    "evolux_cc_member_session_uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
    "evolux_cc_queue_number": "4000",
    "evolux_cc_queue_slug": "nordestao"
  },
  "queue": {
    "slug": "suporte",
    "number": "4000"
  }
}

softphoneCallEnded

Exemplo de payload:

{
  "id": "8eb4d68e-722a-11eb-914b-d185dd1424c7",
  "uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "recordingUUID": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "originationLegUuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
  "direction": "inbound",
  "hangupCause": "NORMAL CLEARING",
  "startTime": "2021-02-18T20:47:47.476Z",
  "answerTime": "2021-02-18T20:47:56.105Z",
  "endTime": "2021-02-18T20:47:58.470Z",
  "from": {
    "name": "Suporte 601",
    "number": "601"
  },
  "to": {
    "name": "700",
    "number": "60916f51-c6f5-a853-3651-a8a456064080"
  },
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "extra": {
    "evolux_cc_member_session_uuid": "8dc216ba-722a-11eb-911a-d185dd1424c7",
    "evolux_cc_queue_number": "4000",
    "evolux_cc_queue_slug": "nordestao"
  },
  "queue": {
    "slug": "suporte",
    "number": "4000"
  }
}

agentStartPause

Exemplo de payload:

{
  "agentId": 1,
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "pause": {
    "reason": "Lanche",
    "productive": false,
    "timeStart": "2021-02-18T20:51:54.866913+00:00",
    "timeEnd": null,
    "maxDuration": null
  }
}

agentChangePause

Exemplo de payload:

{
  "agentId": 1,
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "pause": {
    "reason": "Reunião",
    "productive": true,
    "timeStart": "2021-02-18T20:52:35.366557+00:00",
    "timeEnd": null,
    "maxDuration": null
  }
}

agentStopPause

Exemplo de payload:

{
  "agentId": 1,
  "agent": {
    "id": 1,
    "name": "João",
    "extension": 700,
    "login": "joao",
    "email": ""
  },
  "pause": {
    "reason": "Lanche",
    "productive": false,
    "timeStart": "2021-02-18T20:51:54+00:00",
    "timeEnd": "2021-02-18T20:52:09+00:00",
    "maxDuration": null
  }
}

agentLogin

Exemplo de payload:

{
  "agentId": 1,
  "agent": {
    "id": 1,
    "name": "João",
    "extension": "700",
    "login": "joao",
    "email": null
  }
}

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.



 



Evolux Phone - Ambiente de Teste



Para acessar uma página onde é possível utilizar o EvoluxPhone e verificar quais eventos estão sendo disparados em tempo real, basta ir na url 
https://[URL DO CLIENTE]/monitor/agent/evolux_phone_test e fazer o login normalmente: