Automate Workable Integration Tasks from PowerShell

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Are you in search of a quick and easy way to access Workable data from PowerShell? This article demonstrates how to utilize the Workable Cmdlets for tasks like connecting to Workable data, automating operations, downloading data, and more.

The CData API Driver for ADO.NET is a standard ADO.NET Provider that make it easy to accomplish data cleansing, normalization, backup, and other integration tasks by enabling real-time access to Workable.

ADO.NET Provider

The ADO.NET Provider provides a SQL interface for Workable; this tutorial shows how to use the Provider to retrieve Workable data.

Once you have acquired the necessary connection properties, accessing Workable data in PowerShell can be enabled in three steps.

Using API Key Authentication

Workable uses API key authentication to control access to the API. To obtain an API Key:

  1. Log in to your Workable account.
  2. Navigate to Settings > Integrations > API Access Tokens.
  3. Click "Generate API Token".
  4. Copy the generated token.

After obtaining your API Key, set the following connection properties:

  • AuthScheme: Set this to APIKey.
Set the following in the ProfileSettings connection property:
  • APIKey: Set this to your Workable API Key.
  • Subdomain: Set this to your Workable account subdomain. For example, if your Workable URL is acmeinc.workable.com, then the Subdomain is 'acmeinc'.

Example Connection String

Profile=C:\profiles\Workable.apip;ProfileSettings='AuthScheme=APIKey;APIKey=my_api_key;Subdomain=acmeinc';
  1. Load the provider's assembly:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData API Driver for ADO.NET\lib\System.Data.CData.API.dll")
        
  2. Connect to Workable:

     
    $conn= New-Object System.Data.CData.API.APIConnection("Profile=C:\profiles\Workable.apip;ProfileSettings='AuthScheme=APIKey;APIKey=my_api_key;Subdomain=acmeinc';")
    $conn.Open()
    
  3. Instantiate the APIDataAdapter, execute an SQL query, and output the results:

    $sql="SELECT ,  from Accounts"
    
    $da= New-Object System.Data.CData.API.APIDataAdapter($sql, $conn)
    $dt= New-Object System.Data.DataTable
    $da.Fill($dt)
    
    $dt.Rows | foreach {
    	Write-Host $_. $_.
    }
      

Ready to get started?

Connect to live data from Workable with the API Driver

Connect to Workable