Sync Client V2

Le Sync Client peut être utilisé pour transférer toutes les mises à jour des contacts vers une base de données SQL ou un service web.

Activation

Pour pouvoir utiliser le Sync Client, il faut activer le connecteur correspondant dans les paramètres de la campagne. Après une activation réussie, un jeton s'affiche sous les connecteurs. Il est nécessaire pour utiliser le client. Le jeton n'est visible que par l'utilisateur qui a activé le connecteur.

Alternativtext wenn Bild nicht gefunden

Installation

Téléchargement du binaire depuis bitbucket

Télécharger et compiler le code source

Installer Git

sudo apt-get install git

Installer Google Go

sudo apt-get install golang-go

Pour les étapes suivantes, il est nécessaire que la variable d'environnement GOPATH soit définie. Une description de la manière de définir correctement la variable d'environnement GOPATH peut être trouvée ici.

Cloner le répertoire

go get bitbucket.org/modima/dbsync2

Installer toutes les dépendances

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

Compiler le code source

  • Plate-forme cible Linux

    cd $GOPATH/src/bitbucket.org/modima/dbsync2/ && go build
    
  • Plate-forme cible Windows

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

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

Comment ça marche

Toutes les mises à jour des contacts sont chargées toutes les minutes depuis Dialfire, puis transférées directement vers le service web ou la base de données (voir Usage).

Usage

Base de données SQL

Le client supporte actuellement les systèmes de base de données suivants :

  • MySQL / MariaDB
  • PostgreSQL
  • Microsoft SQL Server

Avant de pouvoir utiliser le client avec une base de données, la base de données correspondante doit être créée.

Le client crée les 4 tables suivantes dans cette base de données :

  • dfire_contacts
    • Contient tous les champs $, ainsi que les 100 premiers champs personnalisés de la campagne.
  • dfire_transactions
    • Contient toutes les transactions et la clé étrangère contact_id sur le contact correspondant.
  • dfire_connections
    • Contient toutes les connexions de la transaction et la clé étrangère transaction_id sur la transaction correspondante.
  • dfire_recordings
    • Contient tous les enregistrements d'appels de la connexion et la clé étrangère connection_id de la connexion correspondante.
  • dfire_inbound_calls
    • Contient tous les appels entrants et la clé étrangère contact_id du contact correspondant.

Alternativtext wenn Bild nicht gefunden

Schéma de l'URL de connexion à la base de données

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

Exemple

Transférez toutes les transactions du 01 février 2018 dans la campagne MON_CAMPAIGN vers une instance locale de Microsoft SQL Server. Seules les mises à jour qui commencent par le préfixe 'fc_' ou 'qc_' dans les étapes de la campagne et qui ont été effectuées par un utilisateur doivent être transférées.

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

Service Web

Comme alternative à une base de données, les transactions peuvent être transférées vers un service web. Le service doit accepter les demandes POST et répondre à la réception des données avec un code d'état compris entre 200 et 299. Dans le cas contraire, les données seront renvoyées (10 tentatives maximum).

Les données utiles envoyées ont le format JSON suivant :

{
    "contact":...,      
    "transaction":...,  
    "state":...,
}
  • contact
    • contient les coordonnées du contact
  • transaction
    • contient la transaction correspondante
  • state
    • new ... pour une nouvelle transaction
    • updated ... lorsque la transaction est mise à jour (par exemple, les données de connexion sont ajoutées ultérieurement).

Exemple

Transférer toutes les futures transactions de la campagne MON_CAMPAIGN vers un Webservice.

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

(Error) Protocole

  • Tous les messages d'erreur sont écrits directement dans la console (stdout).
  • Tous les messages de protocole sont écrits dans /var/log/dbsync/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.
  • Si le répertoire /var/log/ est verrouillé, alors les messages apparaissent dans $HOME/.dbsync/logs/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.

Options de la ligne de commande

Un aperçu de toutes les options peut être obtenu avec la commande suivante

dbsync --help