Sync Client V2

Der Sync Client kann verwendet werden, um alle Updates auf Kontakten an eine SQL Datenbank oder einen Webservice zu übertragen. Die Datenübertragung erfolgt von Dialfire in die Datenbank bzw. den Webservice. Änderungen, die in der Datenbank vorgenommen werden, werden nicht zurück nach Dialfire übertragen.

Aktivierung

Um den Sync Client verwenden zu können, aktivieren Sie den entsprechenden Konnektor in den Kampagneneinstellungen. Nach erfolgreicher Aktivierung wird Ihnen unterhalb der Konnektoren ein Token angezeigt, dass Sie zur Verwendung des Clients benötigen. Das Token ist nur für den Benutzer sichtbar, der den Konnektor aktiviert hat.

Alternativtext wenn Bild nicht gefunden

Installation

Download des Binaries aus Bitbucket

Download und Kompilieren des Quellcodes

Installation von Git

sudo apt-get install git

Installation von Google Go

sudo apt-get install golang-go

Für die weiteren Schritte ist es notwendig, dass die Umgebungsvariable GOPATH gesetzt ist. Eine Beschreibung, wie Sie die Umgebungsvariable korrekt setzen, finden Sie hier.

Klonen des Repositories

go get bitbucket.org/modima/dbsync2

Installation der Abhängigkeiten

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

Kompilieren des Quellcodes

  • Zielplatform Linux

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

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

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

Funktionsweise

Alle Updates auf Kontakten werden minütlich aus Dialfire geladen und anschließend direkt an den Webservice bzw. an die Datenbank übertragen (siehe Verwendung).

Verwendung

SQL Datenbank

Der Client unterstützt derzeit folgende Datenbanksysteme:

  • MySQL / MariaDB
  • PostgreSQL
  • Microsoft SQL Server

Bevor Sie den Client mit einer Datenbank verwenden können, muss die entsprechende Datenbank angelegt werden.

Der Client erzeugt folgende 4 Tabellen innerhalb der Datenbank:

  • df_contacts
    • Enthält alle $-Felder, sowie die ersten 150 benutzerdefinierten Felder der Kampagne
  • df_transactions
    • Enthält alle Transaktionen und den Fremdschlüssel contact_id auf den entsprechenden Kontakt
  • df_connections
    • Enthält alle Verbindungen der Transaktion und den Fremdschlüssel transaction_id auf die entsprechende Transaktion
  • df_recordings
    • Enthält alle Gesprächsaufzeichnungen der Verbindung und den Fremdschlüssel connection_id auf die entsprechende Verbindung
  • df_inbound_calls
    • Enthält alle Inbound Anrufe und den Fremdschlüssel contact_id auf den entsprechenden Kontakt

Alternativtext wenn Bild nicht gefunden

Datenbank URL Schema

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

Beispiel

Übertragen aller Transaktionen, ab dem 01. Februar 2018 in der Kampagne MY_CAMPAIGN an eine lokal laufende Instanz von Microsoft SQL Server. Dabei sollen nur Updates übertragen werden, die in Kampagnenstufen mit dem Präfix 'fc_' oder 'qc_' beginnen und von einem Benutzer durchgeführt wurden.

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

Webservice

Alternativ zu einer Datenbank können die Transaktionen an einen Webservice weitergeleitet werden. Der Service muss POST Anfragen akzeptieren und den erfolgreichen Empfang der Daten mit einem Statuscode zwischen 200 und 299 beantworten. Andernfalls werden die Daten erneut gesendet (maximal 10 Versuche).

Der gesendete Payload hat folgendes JSON-Format:

{
    "contact":...,      
    "transaction":...,  
    "state":...,
}
  • contact
    • enthält die Kontaktdaten
  • transaction
    • enthält die entsprechende Transaktion
  • state
    • new ... bei einer neuen Transaktion
    • updated ... bei einer Aktualisierung der Transaktion (z.B. nachträgliches Hinzufügen der Verbindungsdaten)

Beispiel

Übertragen aller zukünftigen Transaktionen in der Kampagne MY_CAMPAIGN an einen Webservice.

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

(Fehler-) Protokoll

  • Alle Fehlermeldungen werden direkt in die Konsole (stdout) geschrieben.
  • Alle Logmeldungen werden standardmäßig in die Datei /var/log/dbsync/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log geschrieben.
  • Falls das Verzeichnis /var/log/ gesperrt ist, dann erscheinen die Meldungen unter $HOME/.dbsync/logs/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.

weitere Kommandozeilenoptionen

Eine Übersicht aller Optionen erhalten Sie folgendermaßen

dbsync2 --help