Skip to content

Integrations

Discover connected channels, fetch each provider's settings schema, and trigger allow-listed provider tools.

2 min read

Connect your agent today

Draft from chat, review in your calendar, and publish only what you approve.

Start for $0

Overview

The integrations:* wraps the Integrations APIs. Use it to enumerate the connected channels, inspect what each provider supports, and dispatch one-off tool calls (e.g. fetch followers, list boards).

List connected channels

openquok integrations:list

Filter to one channel group (customer):

openquok integrations:groups
openquok integrations:list --group <customer-group-id>

Pipe through jq to extract just the identifying fields:

openquok integrations:list | jq '.[] | {id, identifier, name}'

Find a specific provider by identifier:

openquok integrations:list | jq '.[] | select(.identifier=="threads")'
openquok integrations:list | jq '.[] | select(.identifier | startswith("instagram"))'

Capture an integration id into a shell variable for later commands:

INTEGRATION_ID=$(openquok integrations:list 
  | jq -r '.[] | select(.identifier=="threads") | .id')

Inspect a channel’s settings

The integrations:settings returns the rules, max post length, settings schema, and the list of allow-listed tools the channel exposes.

openquok integrations:settings <integration-id>

Show only the tool list (the input for integrations:trigger):

openquok integrations:settings <integration-id> 
  | jq .output.tools

Show the maximum content length the provider accepts:

openquok integrations:settings <integration-id> 
  | jq '.output.maxLength'

Trigger a provider tool

The integrations:trigger dispatches a single allow-listed provider method on a connected channel. Pass JSON input with -d (alias --data). Dev.to exposes tags and organizations (no input). LinkedIn exposes company with a company URL in -d.

openquok integrations:trigger <integration-id> tags
openquok integrations:trigger <integration-id> organizations
openquok integrations:trigger <integration-id> company 
  -d '{"url":"https://www.linkedin.com/company/example"}'

The response shape is provider-specific. Most tools return a top-level output array of entries that expose id, value, and name fields you can feed back into posts:create --providerSettingsByIntegrationId.

Discovery workflow

When working with a channel for the first time:

INTEGRATION_ID=$(openquok integrations:list 
  | jq -r '.[] | select(.identifier=="devto") | .id')

openquok integrations:settings "$INTEGRATION_ID" | jq '{maxLength: .output.maxLength, tools: [.output.tools[].methodName]}'

openquok integrations:trigger "$INTEGRATION_ID" tags | jq '.output[0:3]'
openquok integrations:trigger "$INTEGRATION_ID" organizations

openquok posts:create 
  -s "2026-01-15T12:00:00Z" 
  -c "Hello from a scheduled markdown article." 
  --settings '{"title":"Hello from OpenQuok","tags":["webdev"]}' 
  -i "$INTEGRATION_ID"

Disconnecting a channel

The CLI does not currently expose an integrations:delete due to accidental delete by AI. Disconnect a channel from the web UI, or call the underlying DELETE /public/integrations/{id} endpoint via the SDK — see Delete Channel.

Search documentation
Find a docs page
Discord Support