Replicate Multiple Talkdesk Accounts via the CData Sync CLI
CData Sync for Talkdesk is a stand-alone application that provides solutions for a variety of replication scenarios such as replicating sandbox and production instances into your database. Both Sync for Windows and Sync for Java include a command-line interface (CLI) that makes it easy to manage multiple Talkdesk connections. In this article we show how to use the CLI to replicate multiple Talkdesk accounts.
Configure Talkdesk Connections
You can save connection and email notification settings in an XML configuration file. To replicate multiple Talkdesk accounts, use multiple configuration files. Below is an example configuration to replicate Talkdesk to SQLite:
Windows
<?xml version="1.0" encoding="UTF-8" ?>
<CDataSync>
<DatabaseType>SQLite</DatabaseType>
<DatabaseProvider>System.Data.SQLite</DatabaseProvider>
<ConnectionString>AccountName=myAccount;Region=US;OAuthClientId=myClientId;OAuthClientSecret=myClientSecret;</ConnectionString>
<ReplicateAll>False</ReplicateAll>
<NotificationUserName></NotificationUserName>
<DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString>
<TaskSchedulerStartTime>09:51</TaskSchedulerStartTime>
<TaskSchedulerInterval>Never</TaskSchedulerInterval>
</CDataSync>
Java
<?xml version="1.0" encoding="UTF-8" ?>
<CDataSync>
<DatabaseType>SQLite</DatabaseType>
<DatabaseProvider>org.sqlite.JDBC</DatabaseProvider>
<ConnectionString>AccountName=myAccount;Region=US;OAuthClientId=myClientId;OAuthClientSecret=myClientSecret;</ConnectionString>
<ReplicateAll>False</ReplicateAll>
<NotificationUserName></NotificationUserName>
<DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString>
</CDataSync>
Talkdesk uses the OAuth 2.0 Client Credentials grant. There is no browser-based authorization step and no callback URL.
Set the following connection properties:
- AccountName: The name of your Talkdesk account.
- Region: The region where your Talkdesk instance is deployed. Supported values are US (default), EU, CA, AU, UK, and FedRamp.
- OAuthClientId: The Client Id assigned when you registered your custom OAuth application.
- OAuthClientSecret: The Client Secret assigned to your custom OAuth application.
Creating a Custom OAuth Application
- Log in to your Talkdesk account and select OAuth Clients from the navigation menu.
- Click Create OAuth Client and give the client a descriptive name.
- Set Grant Type to Client Credentials.
- Click Add scopes and select the scopes for the data you want to access.
- Click Create and copy the Client Id and Client Secret.
When you connect, the driver automatically requests an access token from Talkdesk, caches it, and refreshes it when it expires. Make sure the scopes selected for the application match the views you plan to query, or the token request can fail.
Configure Queries for Each Talkdesk Instance
Sync enables you to control replication with standard SQL. The REPLICATE statement is a high-level command that caches and maintains a table in your database. You can define any SELECT query supported by the Talkdesk API. The statement below caches and incrementally updates a table of Talkdesk data:
REPLICATE Users;
You can specify a file containing the replication queries you want to use to update a particular database. Separate replication statements with semicolons. The following options are useful if you are replicating multiple Talkdesk accounts into the same database:
You can use a different table prefix in the REPLICATE SELECT statement:
REPLICATE PROD_Users SELECT * FROM Users
Alternatively, you can use a different schema:
REPLICATE PROD.Users SELECT * FROM Users
Run Sync
After you have configured the connection strings and replication queries, you can run Sync with the following command-line options:
Windows
TalkdeskSync.exe -g MyProductionTalkdeskConfig.xml -f MyProductionTalkdeskSync.sql
Java
java -Xbootclasspath/p:c:\sqlitejdbc.jar -jar TalkdeskSync.jar -g MyProductionTalkdeskConfig.xml -f MyProductionTalkdeskSync.sql