Sync Client V2

O Sync Client pode ser utilizado para transferir todas as atualizações de contatos para uma base de dados SQL ou um serviço web.

Ativação

Para poder utilizar o Sync Client, ative o mesmo nas definições da campanha. Após a ativação bem sucedida, um token é exibido abaixo dos conectores. É necessário para poder utilizar o Sync Client. O token só estará visível para os utilizadores que ativam o conetor.

Alternativtext wenn Bild nicht gefunden

Instalação

Download do binário do bitbucket

Descarregar e compilar o código fonte

Instalar Git

sudo apt-get install git

Instalar Google Go

sudo apt-get install golang-go

Para os passos seguintes é necessário que a variável ambiental GOPATH* esteja definida. Uma descrição de como definir corretamente a variável de ambiente GOPATH* pode ser encontrada aqui.

Clonar o repositório

go get bitbucket.org/modima/dbsync2

Instalar todas as dependências

cd $GOPATH/src/bitbucket.org/modima/dbsync && godep restore

Compilar o código fonte

  • Plataforma alvo Linux

    cd $GOPATH/src/bitbucket.org/modima/dbsync2/ && go build
    
  • Plataforma alvo Windows

    cd $GOPATH/src/bitbucket.org/modima/dbsync2/ && GOOS=windows GOARCH=amd64 go build -o dbsync2.exe
    
  • Plataforma alvo Mac

    cd $GOPATH/src/bitbucket.org/modima/dbsync2/ && GOOS=darwin GOARCH=amd64 go build -o dbsync2_mac
    

Como funciona

Todas as atualizações dos contactos são carregadas a cada minuto a partir do Dialfire e depois transferidas diretamente para o serviço web ou base de dados (ver Utilização).

Utilização

Base de dados SQL

O client suporta atualmente os seguintes sistemas de bases de dados:

  • MySQL / MariaDB
  • PostgreSQL
  • Microsoft SQL Server

Antes de se poder utilizar o client com uma base de dados, deve ser criada a base de dados correspondente.

O client cria as seguintes 4 tabelas dentro dessa base de dados:

  • dfire_contacts
    • Contém todos os campos $, bem como os primeiros 100 campos personalizados da campanha.
  • dfire_transactions
    • Contém todas as transações e a chave estrangeira contact_id* no contato correspondente.
  • dfire_connections
    • Contém todas as ligações da transação e a chave estrangeira transaction_id* relativa à transação correspondente.
  • dfire_recordings
    • Contém todas as gravações de chamadas e a chave estrangeira connection_id* para a ligação correspondente.
  • dfire_inbound_calls
    • Contém todas as chamadas recebidas e a chave estrangeira contact_id* para o contato correspondente.

Alternativtext wenn Bild nicht gefunden

Esquema URL de ligação à base de dados

MySQL / MariaDB:

mysql://username:password@localhost:3306/database?useSSL=false

PostgreSQL:

postgres://username:password@localhost:5432/database?sslmode=disable

Microsoft SQL Server:

sqlserver://username:password@localhost:1433/instance/database

Exemplo

Transferir todas as transações de 01 de Fevereiro de 2018* para a campanha MY_CAMPAIGN* para uma instância local de Microsoft SQL Server*. Apenas as atualizações que comecem com o prefixo 'fc_' ou 'qc_' em fases de campanha e que tenham sido efetuadas por um utilizador* devem ser transferidas.

dbsync2 --a db_sync --fm hi_updates_only --fp 'fc_,qc_' --c MY_CAMPAIGN_ID --ct MY_CAMPAIGN_SYNC_CLIENT_TOKEN \
        --s 2018-02-01 --url sqlserver://my_user:my_password@localhost:1433/my_database

Serviço Web

Como alternativa a uma base de dados, as transações podem ser encaminhadas para um serviço web. O serviço deve aceitar pedidos POST e responder à receção bem sucedida dos dados com um código de estado entre 200 e 299. Caso contrário, os dados serão reenviados (máximo 10 tentativas).

A carga útil enviada tem o seguinte formato JSON:

{
    "contact":...,      
    "transaction":...,  
    "state":...,
}
  • contact
    • contém os dados de contato
  • transaction
    • contém a transação correspondente
  • state
    • new ... para uma nova transação
    • updated ... quando a transação é atualizada (por exemplo, os dados de ligação são adicionados mais tarde).

Exemplo

Transferir todas as futuras transações da campanha MY_CAMPAIGN para um Webservice.

./dbsync --a webhook --c MY_CAMPAIGN_ID --ct MY_CAMPAIGN_SYNC_CLIENT_TOKEN --url 'https://example.com/api/transactions/'

(Error) Protocolo

  • Todas as mensagens de erro são escritas diretamente para a consola (stdout).
  • Todas as mensagens de registo são escritas para /var/log/dbsync/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.
  • Se o directório /var/log/* estiver bloqueado, então as mensagens aparecem em $HOME/.dbsync/logs/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.

Opções de linha de comando

Uma visão geral de todas as opções pode ser obtida com o seguinte comando.

dbsync --help