# Connections

Use the following endpoints to manage connections.

# Quick reference

Type Resource Description
GET /api/connections Lists connections belonging to a user.
POST /api/connections Creates a connection.
PUT /api/connections/:connection_id Updates a connection.
POST /api/connections/:connection_id/disconnect Disconnects a connection.
DELETE /api/connections/:connection_id Deletes a connection.

# List connections

Returns all connections and associated data for the authenticated Workato user.

GET /api/connections

# Query parameters

Name Type Description
folder_id string
optional
Folder ID of the connection.
parent_id string
optional
Parent ID of the connection. Connection must be of the same provider.
external_id string
optional
External identifier usually given to the user who owns the connection.
include_runtime_connections string
optional
When "true" is supplied, all runtime user connections are also returned.
includes[] array of strings
optional
Specifies additional fields to include in the response. Accepts tags as a value. If tags is supplied in the request, the response includes a tags field for each connection. This field contains an array of zero or more tag handles (strings).

# Sample request

curl  -X GET https://www.workato.com/api/connections?includes[]=tags
      -H 'Authorization: Bearer <api_token>'

# Response

[
  {
    "application": "salesforce",
    "id": 36,
    "name": "ACME Production Salesforce connection",
    "description": null,
    "authorized_at": "2015-05-26T22:53:52.528Z",
    "authorization_status": "success",
    "authorization_error": null,
    "created_at": "2015-05-26T22:53:52.532Z",
    "updated_at": "2015-05-26T22:53:52.532Z",
    "external_id": null,
    "folder_id": 4515,
    "connection_lost_at": null,
    "connection_lost_reason": null,
    "parent_id": null,
    "tags": [
      "tag-ANgeffPL-3gxQwA"
    ]
  },
  {
    "application": "google_sheets",
    "id": 37,
    "name": "ACME google sheet account",
    "description": null,
    "authorized_at": "2015-05-26T22:53:52.528Z",
    "authorization_status": "success",
    "authorization_error": null,
    "created_at": "2015-05-26T22:53:52.532Z",
    "updated_at": "2015-05-26T22:53:52.532Z",
    "external_id": null,
    "folder_id": 4515,
    "connection_lost_at": null,
    "connection_lost_reason": null,
    "parent_id": null,
    "tags": null
  }
]

# Create a connection

Create a new connection. This endpoint supports the following actions:

  • Create a shell connection
  • Create and authenticate a connection

FEATURE COMPATIBILITY: OAUTH TYPE CONNECTIONS

This endpoint does not support creating and authenticating a connection for OAuth type connections. However, you can use this endpoint to create a shell connection for your OAuth connections.

POST /api/connections

# Payload

Include the following properties in the request body to filter results:

Name Type Description
name string
optional
Name of the connection. For example: Prod JIRA connection
provider string
optional
The application type of the connection. For example: jira
parent_id string
optional
The ID of the parent connection. The parent connection must be the same provider type. Learn more.
folder_id string
optional
The ID of the project or folder containing the connection.
external_id string
optional
The external ID assigned to the connection, usually given to the user who owns the connection.
input Object
optional
Connection parameters.

For a list of providers and connection parameters, refer to the Platform API connection parameter reference.

# Sample requests

# Shell connection request

This creates a connection in a Disconnected state.

curl  -X POST https://www.workato.com/api/connections \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Prod JIRA connection",
            "provider": "jira",
            "folder_id": 1892,
          }'

# Connection with credentials

This creates and authenticates a connection.

curl  -X POST https://www.workato.com/api/connections \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Prod JIRA connection",
            "provider": "jira",
            "folder_id": 1892,
            "input": {
              "host_name": "acme.atlassian.net",
              "auth_type": "api_token",
              "email": "[email protected]",
              "apitoken": "XXXXXXXX"
            }
          }'

# Response

{
   "id":36,
   "name":"Prod JIRA connection",
   "provider":"jira",
   "authorized_at":"2023-01-26T22:53:52.528Z",
   "authorization_status":"success",
   "authorization_error":null,
   "created_at":"2023-01-26T22:53:52.532Z",
   "updated_at":"2023-01-26T22:53:52.532Z",
   "external_id":null
   "folder_id":1892,
   "parent_id":null
}

# Update a connection

Updates a connection in a non-embedded workspace.

PUT /api/connections/:connection_id

# URL parameters

Name Type Description
connection_id string
required
The ID of the connection.

# Payload

Name Type Description
name string
optional
Name of the connection. For example: Prod Salesforce connection
parent_id string
optional
The ID of the parent connection. Learn more.
folder_id string
optional
The ID of the project or folder containing the connection.
external_id string
optional
An external ID assigned to the connection. This value could reference a record in one of your other applications.
input object
optional
Connection parameters.

For a list of providers and connection parameters, refer to the Platform API connection parameter reference.

# Sample requests

# Update a Jira connection

curl  -X PUT https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "jira_connection_latest",
            "folder_id": 28940,
            "input": {
              "host_name": "acme.atlassian.net",
              "api_token_auth": "true",
              "email": "[email protected]",
              "apitoken": "XXXXXXXX"
            }
          }'

# Response

{
   "id":36,
   "name":"jira_connection",
   "provider":"jira",
   "authorized_at":"2015-05-26T22:53:52.528Z",
   "authorization_status":"success",
   "authorization_error":null,
   "created_at":"2015-05-26T22:53:52.532Z",
   "updated_at":"2015-05-26T22:53:52.532Z",
   "external_id":"U12904",
   "folder_id":4515,
   "parent_id":22318
}

# Update an Outreach connection

curl  -X PUT https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Outreach scope connection",
            "provider": "outreach",
            "input": {
              "advanced_settings": {
                "scopes": "sequences.all phoneNumbers.all"
              }
            }
          }'

# Disconnect a connection

Disconnects an active connection in a non-embedded workspace. If the connection is already disconnected, no action is taken.

POST /api/connections/:connection_id/disconnect

# URL parameters

Name Type Description
connection_id string
required
The ID of the connection.
force boolean
optional
Value must be true to forcefully disconnect an active connection used by active recipes. Defaults to false.

# Payload

No payload is expected.

# Sample request

curl -X POST https://www.workato.com/api/connections/1678/disconnect \
     -H 'Authorization: Bearer <api_token>' \
     -H 'Content-Type: application/json' \
     -d '{ "force": true }'

# Response

  • Successfully disconnected an active connection or connection already disconnected.
{
    "success": true,
    "status": "disconnected"

}
  • Provided connection ID does not exist
{
   "message": "Not found"
}

# Delete a connection

Deletes a connection in a non-embedded workspace. This method deletes active (authenticated) and disconnected connections. If the connection is used by active recipes or as an Audit log streaming destination, this API request fails.

DELETE /api/connections/:connection_id

# URL parameters

Name Type Description
connection_id string
required
The ID of the connection.

# Sample request

curl  -X DELETE https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>'

# Responses

# Successful deletion of an active or disconnected connection

When you successfully delete an active (authenticated) or disconnected connection, this endpoint returns the following response:

{
    "success": true,
    "status": "deleted"
}

# Connection is used in active recipes

When you try to delete a connection used by an active recipe, this request fails, and the endpoint returns the following response:

{
   "success": false,
   "status": "rejected",
   "message": "You can't delete a connection used by active recipes"
}

# Connection is used for Audit log streaming

When you try to delete a connection used as an Audit log streaming destination, this request fails, and the endpoint returns the following response:

{
    "success": false,
    "status": "rejected",
    "message": "You can't delete a connection used by audit log streaming"
}

# Connection ID doesn't exist

If you provide a connection ID that doesn't exist in your workspace, this request fails, and the endpoint returns the following response:

{
   "message": "Not found"
}


Last updated: 10/9/2024, 3:09:56 PM