Skip to content

connector

Invoke a registered connector operation. Same code path as MCP wick_execute, with the run history feeding into connector_runs for audit.

Sourceinternal/agents/workflow/nodes/connector.go
When to useCall any registered external integration — the typed counterpart to http.
Discoveryworkflow_connectors MCP op lists every module + op pair.

Schema

FieldTypeRequiredNotes
modulestringConnector module key (e.g. slack, github, httprest, wickmanager).
opstringOperation key within the module (e.g. send_message, create_issue).
instance_idstringConnector row UUID. Optional — defaults to the only enabled row when there's exactly one.
argsmap (templated)Per-op input. Field set comes from the connector's Input struct — see Connector Module ▶ Per-op Input.
arg_modesmapPer-arg fixed / expression. Defaults to fixed; mark as expression to render the value as a Go template.

Output

Whatever the connector op returns — typically a typed Go struct serialised as JSON. The fields are merged into .Node.<id>.* for direct template access.

Example

File a GitHub issue from a Slack thread:

json
{
  "id": "file_bug",
  "type": "connector",
  "module": "github",
  "op": "create_issue",
  "arg_modes": {
    "title": "expression",
    "body": "expression"
  },
  "args": {
    "owner": "abc",
    "repo": "web",
    "title": "{{.Node.classify.parsed.summary}}",
    "body": "Reported in Slack by <@{{.Node.trigger.payload.user}}>:\n\n{{.Node.trigger.payload.text}}",
    "labels": "bug,from-slack"
  }
}

Tag visibility

The runtime calls wick_execute under the hood, so the same tag-filter rule applies — the workflow caller must have visibility on the (module, op) pair. Workflow runs as the user who triggered the run (channel-bound) or the system user (cron / webhook); align tags accordingly.

Pair with

  • channel — for Slack actions that aren't 1:1 with a Web API call (modals, respond_url, publish_home).
  • http — fallback for APIs not yet wrapped in a typed connector.
  • Built-in Connectors — what module resolves to.
Built with ❤️ by a developer, for developers.