Skip to the documentation
CLI

Connectors

Every command for connectors, the apps that can be connected, the actions they offer and the record of what was done, with worked examples.

How it fits together

A connector is an outside app, such as Slack or Notion, connected so the assistant can look things up in it and act there. It belongs to one person or to the workspace, and it lets the assistant only read or also make changes. Reading needs connectors:read, looking up and running actions needs connectors:use, and connecting, changing and disconnecting need connectors:write.

Terminal
openemail connectors list-apps --search slackopenemail connectors connect --app slack --scope workspace --label "Sales Slack" --access readopenemail connectors get cnr_5c1e9a7b3d2f48e6a0b4c7d1openemail connectors list-actions cnr_5c1e9a7b3d2f48e6a0b4c7d1 --search "search messages"openemail connectors run-action cnr_5c1e9a7b3d2f48e6a0b4c7d1 SLACK_SEARCH_MESSAGES --action-input '{"query":"renewal"}'

connect prints a link. Open it in a browser and sign in to the app there, or paste its key, so the secret never passes through the command line. The connector is pending until you have finished, and get shows it turn active. An API key reaches workspace connectors only, and a browser sign-in also reaches your own.

Apps that can be connected

CommandWhat it does
openemail connectors list-appsOne page of the apps that can be connected, most used first. --search and --category narrow it
openemail connectors get-app <slug>One app: what it is, whether it connects by a sign-in or a key, and how many actions it has
openemail connectors list-categoriesThe categories the apps are sorted into, to pass as --category

Connectors

CommandWhat it does
openemail connectors listThe connectors you can reach. --scope, --status and --app narrow it
openemail connectors connect --app <slug>Start connecting an app and print the link to finish on. --scope is workspace or account, and --access is full or read. Left out, they are workspace and full
openemail connectors get <id>One connector, read fresh. While it is pending this also checks whether the sign-in was finished
openemail connectors update <id>Rename it with --label, change --access, or pause and resume it with --paused and --no-paused
openemail connectors reconnect <id>Print a fresh link for a connector that is expired, or whose first link ran out. It keeps its id
openemail connectors disconnect <id>Disconnect the app for good, once you confirm. The access it held in the outside app is given up too
Terminal
openemail connectors list --scope workspace --status expiredopenemail connectors reconnect cnr_5c1e9a7b3d2f48e6a0b4c7d1openemail connectors update cnr_5c1e9a7b3d2f48e6a0b4c7d1 --access fullopenemail connectors update cnr_5c1e9a7b3d2f48e6a0b4c7d1 --pausedopenemail connectors disconnect cnr_5c1e9a7b3d2f48e6a0b4c7d1 --yes

A connector is pending until its sign-in is finished, active while it works, paused while a person or the plan holds it back, and expired when the app stopped accepting the connection. A paused connector refuses every action until it is resumed. --yes skips the confirmation in a script.

Actions and calls

CommandWhat it does
openemail connectors list-actions <id>What the app can do that matches --search, or its most used actions. Each says whether it reads or changes something
openemail connectors get-action <id> <action>One action with the input it takes, as a JSON Schema
openemail connectors run-action <id> <action>Run the action, once you confirm, and print what the app answered. --action-input takes its input as JSON, inline, from a file with @path or from standard input with -
openemail connectors list-callsWhat was done through the connectors, newest first. --connector-id and --scope narrow it
Terminal
openemail connectors get-action cnr_5c1e9a7b3d2f48e6a0b4c7d1 SLACK_SEND_MESSAGE --jsonopenemail connectors run-action cnr_5c1e9a7b3d2f48e6a0b4c7d1 SLACK_SEND_MESSAGE --action-input @message.jsonopenemail connectors list-calls --connector-id cnr_5c1e9a7b3d2f48e6a0b4c7d1 --all --json

The server asks nobody before an action that changes something runs, so run-action asks you to confirm, and --yes skips that in a script. Check the input against get-action first, because a change in the outside app cannot be taken back. A connector set to read refuses a change. Calls are kept for 90 days, without their input or their result.