Skip to main content
An Integration is a saved connection to a third-party account — a Slack workspace, a Postgres database, a Google Drive, a Notion instance. You connect it once, and every other primitive references it by id: an Agent tool, a Pipeline node, or a Knowledge Base source.
Prerequisites: Installed SDK · API key set · Python 3.10+. The vectorshift CLI ships with the SDK — pip install vectorshift installs it.

Mental model

  • An Integration is created once and reused. It carries a stable object_id, a type (e.g. slack), a health status, and — for OAuth types — authorized_scopes.
  • The CLI is the fastest way to connect interactively (it opens the browser and blocks for you); the SDK is for programmatic and server-side flows. Both do the same thing.

Two ways to authenticate

How you connect a service depends entirely on how it authenticates. There are exactly two modes:
OAuthForm
How you connectApprove access on the provider’s site in a browserSupply credentials yourself (host, keys, tokens)
Browser needed?Yes — a consent screenNo
When it’s readyAfter you finish consent (connect().wait() polls until then)Instantly (connect().wait() returns right away)
Count60 services16 services
ExamplesSlack, Gmail, Notion, Google Drive, HubSpot, Salesforce, Jira, GitHubPostgres, MySQL, MongoDB, Snowflake, AWS S3, Pinecone, Elasticsearch, Twilio
Not sure which a service uses? Check the full 76-type catalogue, or ask in code:
from vectorshift import IntegrationType

IntegrationType.SLACK.auth_mode        # -> AuthMode.OAUTH
IntegrationType.POSTGRES.is_form_only  # -> True
Integration.required_fields("postgres")  # -> ('host', 'database', 'username', 'password')

Connect an integration

The quickest path is the CLI. The Python SDK does exactly the same thing when you need it in code — pick the auth mode that matches your service.

Where integrations plug in

An Integration is rarely the endpoint — you connect it, then reference it from another primitive:
SurfaceHow to reference itGuide
Agent toolPass the Integration (static binding) or a ToolInput(DYNAMIC) (caller supplies it) to an IntegrationXToolIntegration tools
Pipeline nodepipeline.add(name="…").integration_slack(integration=integ, …)Integration nodes
Knowledge Base sourceAttach in the dashboard, then integration.resync() or kb.resync_integration(id) to refreshResync integration
The per-service action references — every tool/node action and its parameters, for all 76 integration types — are auto-generated: see Integration tools (Agents) and Integration nodes (Pipelines). This section covers connecting and managing the integrations those actions run against.

Manage what you’ve connected

from vectorshift import Integration

for i in Integration.list():           # optionally filter: list(type="slack")
    print(i.object_id, i.type, i.status, i.name)

integ = Integration.fetch(id="…")
print(integ.get_status())              # "done" | "loading" | "unhealthy"
integ.sync()                           # refresh metadata (revamped types)
integ.reauth().wait()                  # refresh expired/revoked OAuth in place
integ.delete()                         # disconnect

What’s next

CLI reference

Every vectorshift command, flag, and example.

Python reference

Integration, ConnectionRequest, types, credentials, errors.

Use in an Agent

Bind a connected integration to an agent tool.