---
title: "POST /v1/connect/post-connect"
method: POST
path: "/v1/connect/post-connect"
---

# POST /v1/connect/post-connect

`POST /v1/connect/post-connect`

## Request body

- object
  - `connector_config_id` string, required — Must correspond to data.connector_name. Technically id should imply connector_name already but there is no way to specify a discriminated union with id alone.
  - `options` object, required
    - `integrationExternalId` union
      - string
      - number
    - `connectionExternalId` union
      - string
      - number
    - `syncInBand` boolean, nullable
    - `integrationId` string, nullable — Must start with 'int_'
  - `discriminated_data` union, required
    - ConnectorAcmeApikeyDiscriminatedConnectOutput
      - `connector_name` 'acme-apikey', required
      - `connect_output` object, required
        - `api_key` string, required
    - ConnectorAcmeOauth2DiscriminatedConnectOutput
      - `connector_name` 'acme-oauth2', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorAsanaDiscriminatedConnectOutput
      - `connector_name` 'asana', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorBigqueryDiscriminatedConnectOutput
      - `connector_name` 'bigquery', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorBoxDiscriminatedConnectOutput
      - `connector_name` 'box', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorCalendlyDiscriminatedConnectOutput
      - `connector_name` 'calendly', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorConfluenceDiscriminatedConnectOutput
      - `connector_name` 'confluence', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorDatabricksDiscriminatedConnectOutput
      - `connector_name` 'databricks', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorDiscordDiscriminatedConnectOutput
      - `connector_name` 'discord', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorDropboxDiscriminatedConnectOutput
      - `connector_name` 'dropbox', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorFigmaDiscriminatedConnectOutput
      - `connector_name` 'figma', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGithubDiscriminatedConnectOutput
      - `connector_name` 'github', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGoogleCalendarDiscriminatedConnectOutput
      - `connector_name` 'google-calendar', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGoogleDocsDiscriminatedConnectOutput
      - `connector_name` 'google-docs', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGoogleDriveDiscriminatedConnectOutput
      - `connector_name` 'google-drive', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGoogleMailDiscriminatedConnectOutput
      - `connector_name` 'google-mail', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorGoogleSheetDiscriminatedConnectOutput
      - `connector_name` 'google-sheet', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorHubspotDiscriminatedConnectOutput
      - `connector_name` 'hubspot', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorInstagramDiscriminatedConnectOutput
      - `connector_name` 'instagram', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorJiraDiscriminatedConnectOutput
      - `connector_name` 'jira', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorLinearDiscriminatedConnectOutput
      - `connector_name` 'linear', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorMondayDiscriminatedConnectOutput
      - `connector_name` 'monday', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorNotionDiscriminatedConnectOutput
      - `connector_name` 'notion', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorOnedriveDiscriminatedConnectOutput
      - `connector_name` 'onedrive', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorOutlookDiscriminatedConnectOutput
      - `connector_name` 'outlook', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorResendDiscriminatedConnectOutput
      - `connector_name` 'resend', required
      - `connect_output` object, required
        - `api_key` string, required
    - ConnectorSalesforceDiscriminatedConnectOutput
      - `connector_name` 'salesforce', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorSendgridDiscriminatedConnectOutput
      - `connector_name` 'sendgrid', required
      - `connect_output` object, required
        - `api_key` string, required
    - ConnectorSharepointDiscriminatedConnectOutput
      - `connector_name` 'sharepoint', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorSlackDeployedAgentDiscriminatedConnectOutput
      - `connector_name` 'slack-deployed-agent', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorSlackDiscriminatedConnectOutput
      - `connector_name` 'slack', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorSnowflakeDiscriminatedConnectOutput
      - `connector_name` 'snowflake', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorSpotifyDiscriminatedConnectOutput
      - `connector_name` 'spotify', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorYoutubeDiscriminatedConnectOutput
      - `connector_name` 'youtube', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorZendeskDiscriminatedConnectOutput
      - `connector_name` 'zendesk', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorZoomDiscriminatedConnectOutput
      - `connector_name` 'zoom', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorApolloDiscriminatedConnectOutput
      - `connector_name` 'apollo', required
      - `connect_output` object, required
        - `api_key` string, required
    - ConnectorPlaidDiscriminatedConnectOutput
      - `connector_name` 'plaid', required
      - `connect_output` object, required
        - `public_token` string, required
        - `meta` unknown
    - ConnectorPostgresDiscriminatedConnectOutput
      - `connector_name` 'postgres', required
      - `connect_output` object, required
        - `database_url` string
    - ConnectorSlackAgentDiscriminatedConnectOutput
      - `connector_name` 'slack-agent', required
      - `connect_output` object, required
        - `access_token` string, required — Bot OAuth token - xoxb-...
    - ConnectorSlackAgentBuilderDiscriminatedConnectOutput
      - `connector_name` 'slack-agent-builder', required
      - `connect_output` object, required
        - `code_verifier` string — Code verifier for PKCE from the connect input
        - `code` string, required — OAuth2 authorization code used for token exchange
        - `state` string, required — OAuth2 state
        - `client_id` string — Custom client ID to use for token exchange
        - `client_secret` string — Custom client secret to use for token exchange
    - ConnectorStripeDiscriminatedConnectOutput
      - `connector_name` 'stripe', required
      - `connect_output` object, required
        - `secret` string, required — Stripe secret key for production
        - `publishable` string, required — Stripe publishable key for production
        - `mcp` string, required — MCP access token
    - ConnectorStripeAgentSandboxDiscriminatedConnectOutput
      - `connector_name` 'stripe-agent-sandbox', required
      - `connect_output` object, required
        - `secret` string, required — Stripe secret key for the sandbox
        - `publishable` string, required — Stripe publishable key for the sandbox
        - `mcp` string, required — MCP access token
        - `claim_url` string, uri, required — URL to claim/access the Stripe sandbox
    - ConnectorTwilioDiscriminatedConnectOutput
      - `connector_name` 'twilio', required
      - `connect_output` object, required
        - `account_sid` string, required
        - `api_key` string, required
        - `api_key_secret` string, required
    - ConnectorWorkatoDiscriminatedConnectOutput
      - `connector_name` 'workato', required
      - `connect_output` object, required
        - `workato_api_host` string, required
        - `workato_api_token` string, required
        - `workato_account_id` string

## Response `200`

Successful response

- union
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'acme-apikey', required
    - `settings` object
      - `api_key` string, required
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'acme-oauth2', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'asana', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'bigquery', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'box', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'calendly', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'confluence', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'databricks', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
      - `databricks_instance` string, required — The Databricks workspace instance name (e.g., "your-workspace" for your-workspace.cloud.databricks.com)
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'discord', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'dropbox', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'figma', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'github', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'google-calendar', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'google-docs', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'google-drive', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'google-mail', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'google-sheet', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'hubspot', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'instagram', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'jira', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'linear', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'monday', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'notion', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'onedrive', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'outlook', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'resend', required
    - `settings` object
      - `api_key` string, required
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'salesforce', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
      - `instance_url` string, required — The instance URL of your Salesforce account (e.g., example)
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'sendgrid', required
    - `settings` object
      - `api_key` string, required
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'sharepoint', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'slack-deployed-agent', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'slack', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'snowflake', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
      - `snowflake_account_url` string, required — The domain of your Snowflake account (e.g., https://example-subdomain)
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'spotify', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'youtube', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'zendesk', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
      - `subdomain` string, required — The subdomain of your Zendesk account (e.g., https://domain.zendesk.com)
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'zoom', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'apollo', required
    - `settings` object
      - `api_key` string, required
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'plaid', required
    - `settings` object
      - `itemId` string, nullable
      - `accessToken` string, required
      - `institution` unknown
      - `item` unknown
      - `status` unknown
      - `webhookItemError` unknown
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'postgres', required
    - `settings` object
      - `database_url` string
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'slack-agent', required
    - `settings` object
      - `access_token` string, required — Bot OAuth token - xoxb-...
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'slack-agent-builder', required
    - `settings` object
      - `oauth` object, required
        - `credentials` object — Output of the postConnect hook for oauth2 connectors
          - `access_token` string, required
          - `client_id` string — Client ID used for the connection
          - `scope` string
          - `refresh_token` string
          - `expires_in` number
          - `expires_at` string
          - `token_type` string
          - `raw` object
        - `created_at` string
        - `updated_at` string
        - `last_fetched_at` string
        - `metadata` object, nullable
      - `access_token` string — Same as oauth.credentials.access_token, but more convenient to access. Optional for backward compatibility until we remove the oauth field
      - `agent_builder` object
        - `oauth` object, required
          - `credentials` object — Output of the postConnect hook for oauth2 connectors
            - `access_token` string, required
            - `client_id` string — Client ID used for the connection
            - `scope` string
            - `refresh_token` string
            - `expires_in` number
            - `expires_at` string
            - `token_type` string
            - `raw` object
          - `created_at` string
          - `updated_at` string
          - `last_fetched_at` string
          - `metadata` object, nullable
        - `app` object — Slack app configuration created by the agent builder
          - `app_id` string, required — The Slack app ID
          - `client_id` string, required — The client ID for the app
          - `client_secret` string, required — The client secret for the app
          - `verification_token` string, required — The verification token for the app
          - `signing_secret` string, required — The signing secret for the app
          - `oauth_url` string, required — The OAuth authorization URL for the app
      - `event_subscription_url` string, uri — URL for Slack event subscriptions
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'stripe', required
    - `settings` object
      - `secret` string, required — Stripe secret key for production
      - `publishable` string, required — Stripe publishable key for production
      - `mcp` string, required — MCP access token
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'stripe-agent-sandbox', required
    - `settings` object
      - `secret` string, required — Stripe secret key for the sandbox
      - `publishable` string, required — Stripe publishable key for the sandbox
      - `mcp` string, required — MCP access token
      - `claim_url` string, uri, required — URL to claim/access the Stripe sandbox
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'twilio', required
    - `settings` object
      - `account_sid` string, required
      - `api_key` string, required
      - `api_key_secret` string, required
  - object
    - `id` string, required
    - `customer_id` string, nullable, required
    - `connector_config_id` string, nullable, required
    - `integration_id` string, nullable, required
    - `status_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `display_name` string, nullable, required
    - `disabled` boolean, nullable, required
    - `status` 'healthy' | 'disconnected' | 'error' | 'manual' | 'unknown' | 'null', nullable
    - `metadata` object, nullable — JSON object can can be used to associate arbitrary metadata to avoid needing a separate 1-1 table just for simple key values in your application. During updates this object will be shallowly merged
    - `connector_name` 'workato', required
    - `settings` object
      - `workato_api_host` string, required
      - `workato_api_token` string, required
      - `workato_account_id` string

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `500` — Internal server error

---

[API](https://skmtc.net/openintegrations/apis/openint-api.md) · [All operations](https://skmtc.net/openintegrations/apis/openint-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openintegrations/openint-api/versions/1b84cd7f5c05/schema)
