Skip to main content
PATCH
/
projects
/
{projectIdOrName}
/
integrations
/
{integrationId}
/
installations
/
{installationId}
Update an installation
curl --request PATCH \
  --url https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId} \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <api-key>' \
  --data '
{
  "updateMask": [
    "config.content.read.objects.contacts"
  ],
  "installation": {
    "config": {
      "content": {
        "read": {
          "objects": {
            "contacts": {
              "objectName": "contacts",
              "schedule": "*/30 * * * *",
              "destination": "contactsWebhook",
              "selectedFields": {
                "email": true,
                "phone": true
              }
            }
          }
        }
      }
    }
  }
}
'
{
  "id": "<string>",
  "projectId": "project-456",
  "integrationId": "<string>",
  "healthStatus": "healthy",
  "connection": {
    "id": "connection-123",
    "projectId": "project-456",
    "provider": "salesforce",
    "group": {
      "groupRef": "group-123",
      "groupName": "Super Customer",
      "projectId": "project-456",
      "createTime": "2023-07-13T21:34:44.816Z",
      "updateTime": "2023-07-13T21:34:44.816Z"
    },
    "consumer": {
      "consumerRef": "consumer-123",
      "consumerName": "Super Customer",
      "projectId": "project-456",
      "createTime": "2023-07-13T21:34:44.816Z",
      "updateTime": "2023-07-13T21:34:44.816Z"
    },
    "createTime": "2023-07-13T21:34:44.816Z",
    "authScheme": "oauth2/authorizationCode",
    "status": "working",
    "providerApp": {
      "id": "provider-app-123",
      "projectId": "project-456",
      "provider": "salesforce",
      "clientId": "client-id-123",
      "createTime": "2023-11-07T05:31:56Z",
      "externalRef": "external-id-123",
      "scopes": [
        [
          "oauth",
          "offline",
          "crm.read"
        ]
      ],
      "updateTime": "2023-11-07T05:31:56Z"
    },
    "providerWorkspaceRef": "provider-workspace-123",
    "providerConsumerRef": "provider-consumer-123",
    "updateTime": "2023-07-13T21:34:44.816Z",
    "oauth2AuthorizationCode": {
      "accessToken": {
        "token": "<string>",
        "issuedAt": "2024-04-22T18:55:28.456076Z",
        "expiresAt": "2024-10-22T18:55:28.456076Z"
      },
      "refreshToken": {
        "token": "<string>",
        "issuedAt": "2024-04-22T18:55:28.456076Z",
        "expiresAt": "2024-10-22T18:55:28.456076Z"
      },
      "scopes": [
        "<string>"
      ]
    },
    "apiKey": "api-key-123",
    "providerMetadata": {}
  },
  "createTime": "2023-11-07T05:31:56Z",
  "createdBy": "consumer:consumer-123",
  "config": {
    "id": "config-123",
    "revisionId": "revision-123",
    "createTime": "2023-11-07T05:31:56Z",
    "createdBy": "builder:builder-123",
    "content": {
      "provider": "hubspot",
      "read": {
        "objects": {}
      },
      "write": {
        "objects": {}
      },
      "proxy": {
        "enabled": true
      },
      "subscribe": {
        "objects": {}
      }
    }
  },
  "group": {
    "groupRef": "group-123",
    "groupName": "Super Customer",
    "projectId": "project-456",
    "createTime": "2023-07-13T21:34:44.816Z",
    "updateTime": "2023-07-13T21:34:44.816Z"
  },
  "lastOperationStatus": "success",
  "updateTime": "2023-11-07T05:31:56Z"
}

Authorizations

X-Api-Key
string
header
required

Path Parameters

projectIdOrName
string
required

The Ampersand project ID or project name.

integrationId
string
required

The ID of the integration that this installation belongs to.

installationId
string
required

The Ampersand installation ID.

Body

application/json
updateMask
string[]
required

Array of field paths specifying which fields to update. Each path must have a corresponding value in the installation object. A field included in installation but not listed here will be ignored. Allowed values:

  • connectionId - switch the SaaS connection tied to this installation.
  • config.createdBy - change the attribution for who created this config.
  • config.content.read.objects.<objectName> - replace the read config for a single object (e.g. config.content.read.objects.contacts).
  • config.content.write.objects.<objectName> - replace the write config for a single object.
  • config.content.write.objects - replace the entire write objects map.
  • config.content.subscribe.objects.<objectName> - replace the subscribe config for a single object.
  • config.content.subscribe.objects - replace the entire subscribe objects map.
  • config.content.proxy.enabled - enable or disable the proxy.

Replace <objectName> with the provider object name (e.g. contacts, leads, accounts).

Example:
[
"config.content.read.objects.contacts",
"config.content.write.objects.leads"
]
installation
object
required

The installation fields to update. Only fields whose paths are listed in updateMask will be applied; all other fields in this object are ignored.

Response

The updated installation.

id
string
required

The installation ID.

projectId
string
required

The Ampersand project ID.

Example:

"project-456"

integrationId
string
required

The integration ID.

healthStatus
string
required

The health status of the installation ("healthy", "unhealthy").

Example:

"healthy"

connection
Connection · object
required
createTime
string<date-time>
required

The time the integration was first installed.

createdBy
string
required

The person who did the installation, in the format of "consumer:{consumer-id}".

Example:

"consumer:consumer-123"

config
Config · object
required
group
Group · object
lastOperationStatus
enum<string>

The status of the latest operation for this installation.

Available options:
success,
failure,
in_progress
Example:

"success"

updateTime
string<date-time>

The time the installation was last updated with a new config.