eduzz / contact-center-php
Package para utilizacao do Contact Center Eduzz
Installs: 2 007
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 10
Forks: 0
Open Issues: 2
Requires
- guzzlehttp/guzzle: ^6.3 || ^7.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/php-code-coverage: ^6.1
- phpunit/phpunit: ^7.5
- dev-master
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.2.1
- 1.0
- dev-feature-add-provider-name-send-email
- dev-hotfix-fix-readme-example
- dev-hotfix-postback
- dev-feature-postback
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-feature-add-support-guzzle-7
- dev-feature-add-email-type-access
- dev-feature-email-type
- dev-hotfix-t_constant_encapsed_string
- dev-feature-NT-3727-priority
- dev-feature-add-async-api
- dev-hotfix-dockerfile
- dev-improvement-remove-toArray-from-unnecessary-loops
- dev-fix-emptyMessage
- dev-feature-paramsPerson
- dev-feature-postbackUrl
- dev-format-files
- dev-feature-metadatas
- dev-feature-onError
This package is not auto-updated.
Last update: 2024-11-12 18:40:55 UTC
README
Esta lib tem como objetivo integrar os sistemas com o serviço Contact Center de uma forma mais simples e eficaz. Com algumas linhas de código, já será possível enviar e-mail e/ou sms de formas separadas, ou exatamente no mesmo momento.
Instalação (via composer)
Primeiro, vamos adicionar a dependência e o repositório do pacote no nosso arquivo composer.json:
{ "require": { "eduzz/contact-center-php": "~1.0" }, "repositories": [ { "type": "vcs", "url": "git@github.com:eduzz/contact-center-php.git" } ] }
Após configurado o composer, utilize o comando abaixo para instalar os pacotes do projeto.
composer install
Projetos Laravel
Após realizado os passos anteriores, é necessário realizar o seguinte comando no terminal, que gerará o arquivo config/contactcenter.php.
php artisan vendor:publish --tag="config"
No arquivo config/app.php
// ... 'providers' => [ // ... Eduzz\ContactCenter\ContactCenterServiceProvider::class, ],
Projetos Lumen
No Lumen o arquivo config deve ser copiado manualmente. Após a instalação dos pacotes do composer, crie uma pasta config na raíz do projeto, e copie o arquivo vendor/eduzz/contact-center-php/src/config/contactcenter.php para o diretório criado.
No arquivo bootstrap/app.php
// ... $app->configure('contactcenter'); // ... $app->register(Eduzz\ContactCenter\ContactCenterServiceProvider::class); // ...
Configurando o Contact Center
No arquivo config/contactcenter.php, tem duas configurações iniciais a se fazer:
- ApplicationKey => é o hash da aplicação que usará o Contact Center. Necessário entrar em contato com a equipe para adquirir esta chave.
- BaseUrl => Endpoint do contact center fornecido pela equipe.
Usando o Contact Center
Para realizar o envio de email simples utilize a seguinte estrutura:
$contaccenter ->createEmailMessage() //Cria mensagem de email ->to([new Person('email@dominio.com.br', 'Nome do destinatario')]) // Destinatario ->from('no-reply@dominio.com', 'Nome da empresa') // Remetente ->template('HRGJJDIISIW3424') // fornecido pela equipe ->params([ 'saudacao' => 'Olá ContactCenter', 'link_acesso'=> 'http://github.com' ]) // Parametros para montar o email ->metadata([ 'track_id' => '123' ]) // Usado para colocar qualquer informação relevante para rastreio ->onError(function($e) { echo "Envio de email não realizado" . $e->getMessage(); }) // Suprime o erro dentro de uma rotina de fallback ->send();
Agora, tem um novo recurso implementado, em que você também, em uma única requisição (método send() do EmailMessage) é possível mandar, vários emails com parâmetros diferentes para cada usuário.
$contaccenter ->createEmailMessage() //Cria mensagem de email ->to(new Person('email@dominio.com.br', 'Nome do destinatario', ['mensagem'=> 'Olá destinatario'])) // Destinatario com parametros opcionais ->from('no-reply@dominio.com', 'Nome da empresa') // Remetente ->template('HRGJJDIISIW3424') // fornecido pela equipe ->params(['mensagem' => 'Olá fulano']) // será substituido pelo parametro passado no usuário ->metadata([ 'track_id' => '123' ]) // Usado para colocar qualquer informação relevante para rastreio ->onError(function($e) { echo "Envio de email não realizado" . $e->getMessage() }) // Suprime o erro dentro de uma rotina de fallback ->send();
Para realizar o envio de vários e-mails simultaneamente, recomendamos a utilizacao do DeliveryManager
$deliveryManager = $contaccenter->delivery(); for ($i = 1; $i <= 10; $i++) { $emailMessage = $contactCenter->createEmailMessage(); $emailMessage->to(new Person('email@dominio.com.br', 'Nome do destinatario')) ->from('no-reply@dominio.com', 'Nome da empresa') ->templateId('HRGJJDIISIW3424') ->params([ 'saudacao' => 'Olá ContactCenter', 'link_acesso'=> 'http://github.com' ]) ->metadata([ 'track_id' => $i ]); $deliveryManager->add($emailMessage); } $deliveryManager->send();
Com o DeliveryManager, você pode mandar tanto email como SMS ao mesmo tempo
$deliveryManager = $contaccenter->delivery(); $emailMessage = $contactCenter->createEmailMessage(); $smsMessage = $contactCenter->createSMSMessage(); $emailMessage->to(new Person('email@dominio.com.br', 'Nome do destinatario')) ->from('no-reply@dominio.com', 'Nome da empresa') ->templateId('HRGJJDIISIW3424') ->params([ 'saudacao' => 'Olá ContactCenter', 'link_acesso'=> 'http://github.com' ]) ->metadata([ 'track_id' => $i ]); $smsMessage ->to(new Phone('+55', '15', '99999999')) ->templateId('HRGJJDIISIWadsad') ->params([ 'nome' => 'Contact Center' ]); $deliveryManager->add($emailMessage); $deliveryManager->add($smsMessage); $deliveryManager->send();
Políticas para criação de templates
O Contact Center possui todos os templates de e-mails, SMS, push notification e outros. Por se tratar de algumas mensagens diretamente direcionadas aos clientes, entre em contato com a equipe responsável para saber o codigo de template utilizado em determinada situação, e os par6Ametros necessários para envio. Assim garantimos uma comunicação mais uniforme de todos os produtos da empresa.