OXYGENOxygen/ Docs
Providers

Integrations

Connected provider accounts. The auth state behind every tool call.

An integration is a connected provider account scoped to one organization. The provider catalog lists what tools exist; integrations are the credentials that let you actually call them.

Two auth modes

ModeWho paysSetup
managedPay Oxygen credits per call; Oxygen holds the provider keyNone
byokPay the provider directly; you connect your own accountOAuth or API key per provider

Some tools support both. CRMs, outbound sequencers, and most LinkedIn tools are BYOK-only — the data needs to live in your account.

Working with integrations

oxygen integrations list --json
oxygen integrations connect <integration-id> --json
oxygen integrations actions <integration-id> --json
oxygen integrations run <integration-id> <action-slug> --input '{...}' --dry-run --json
oxygen integrations disconnect <integration-id> --json

Some connections open an OAuth approval URL. Others ask for a provider API key in a secure connection flow.

Connection shape

FieldNotes
providerProvider name
auth_modemanaged or byok
statusconnected, disconnected, expired, error
account_labelProvider-side identifier (workspace name, email)
scopesGranted OAuth scopes, if applicable
connected_at, last_verified_atTimestamps
last_errorIf status is error

Provider events

Many integrations emit events when something happens on the provider side (HubSpot contact created, Instantly reply, Attio record updated). Events can fire workflow triggers.

oxygen integrations events list --json
oxygen integrations events enable --source instantly --event email.reply_received --json
oxygen integrations events disable --source instantly --event email.reply_received --json
oxygen integrations events deliveries --json

deliveries shows delivery status for provider events before you debug why a workflow did or did not fire.

Mirroring external state

External writes such as CRM contact create, outbound enrollment, or LinkedIn actions should mirror their useful result back into the originating table through tool/action columns:

Cell fieldHolds
valueProvider record ID (e.g. hubspot_contact_id)
provenance.outputs.sync_statusqueued, synced, failed
provenance.outputs.last_synced_atTimestamp
errorProvider error text on failure

This is what makes the table the audit log — provider state stays inspectable from within Oxygen.

Provider-specific docs

Per-provider quirks, rate limits, and mapping examples live in the Oxygen agent skills. Install them with:

oxygen skills install --agents codex claude-code cursor --skill '*' --json
  • Provider catalog — the tools each integration exposes.
  • Waterfalls — combining multiple integrations for fallback.
  • Columns — wiring row work to provider actions.

On this page