Sync Client V2

El Sync Client puede utilizarse para transferir todas las actualizaciones de los contactos a una base de datos SQL o a un servicio web.

Activación

Para poder utilizar el Cliente de sincronización, active el conector correspondiente en la configuración de la campaña. Después de la activación exitosa, se muestra un token debajo de los conectores. Es necesario para utilizar el cliente. El token sólo es visible para el usuario que ha activado el conector.

Alternativtext wenn Bild nicht gefunden

Instalación

Descarga del binario desde bitbucket

Descargar y compilar el código fuente

Instalar Git

sudo apt-get install git

Instalar Google Go

sudo apt-get install golang-go

Para los siguientes pasos es necesario que la variable de entorno GOPATH esté configurada. Se puede encontrar una descripción de cómo configurar correctamente la variable de entorno GOPATH aquí.

Clonar el repositorio

go get bitbucket.org/modima/dbsync2

Instalar todas las dependencias

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

Compilar el código fuente

  • Plataforma de destino Linux

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

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

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

Cómo funciona

Todas las actualizaciones de los contactos se cargan cada minuto desde Dialfire y luego se transfieren directamente al servicio web o a la base de datos (ver Uso).

Uso

Base de datos SQL

El cliente soporta actualmente los siguientes sistemas de bases de datos:

  • MySQL / MariaDB
  • PostgreSQL
  • Microsoft SQL Server

Antes de poder utilizar el cliente con una base de datos, es necesario crear la base de datos correspondiente.

El cliente crea las siguientes 4 tablas dentro de esa base de datos:

  • dfire_contacts
    • Contiene todos los campos $, así como los 100 primeros campos personalizados de la campaña.
  • dfire_transactions
    • Contiene todas las transacciones y la clave externa contact_id del contacto correspondiente.
  • dfire_connections
    • Contiene todas las conexiones de la transacción y la clave externa transaction_id de la transacción correspondiente.
  • dfire_recordings
    • Contiene todas las grabaciones de llamadas de la conexión y la clave externa connection_id de la conexión correspondiente.
  • dfire_inbound_calls
    • Contiene todas las llamadas entrantes y la clave externa contact_id del contacto correspondiente.

Alternativtext wenn Bild nicht gefunden

Esquema URL de conexión a la base de datos

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

Ejemplo

Transferir todas las transacciones del 01 de febrero de 2018 en la campaña MY_CAMPAIGN a una instancia local en ejecución de Microsoft SQL Server. Sólo deben transferirse las actualizaciones que comienzan con el prefijo 'fc_' o 'qc_' en las etapas de la campaña y que han sido realizadas por un usuario.

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

Servicio web

Como alternativa a una base de datos, las transacciones pueden ser transferidas a un servicio web. El servicio debe aceptar solicitudes POST y responder a la recepción satisfactoria de los datos con un código de estado entre 200 y 299. En caso contrario, los datos serán reenviados (máximo 10 intentos).

La información enviada tiene el siguiente formato JSON:

{
    "contact":...,      
    "transaction":...,  
    "state":...,
}
  • contact
    • contiene los datos del contacto
  • transaction
    • contiene la transacción correspondiente
  • state
    • new ... para una nueva transacción
    • updated ... cuando la transacción se actualiza (por ejemplo, los datos de conexión se añaden posteriormente).

Ejemplo

Transferir todas las transacciones futuras de la campaña MY_CAMPAIGN a un Webservice.

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

(Error) Protocolo

  • Todos los mensajes de error se escriben directamente en la consola (stdout).
  • Todos los mensajes de registro se escriben en /var/log/dbsync/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.
  • Si el directorio /var/log/ está bloqueado, los mensajes aparecen en $HOME/.dbsync/logs/{MY_CAMPAIGN_ID}_{MODE}_{TIMESTAMP}.log.

Opciones de la línea de comandos

Un resumen de todas las opciones se puede obtener con el siguiente comando.

dbsync --help