Skip to main content
If your product already exposes an OpenAPI spec, you can generate one OpenCX action per operation instead of authoring each by hand.
Import replaces every action previously generated from your spec. Hand-authored actions in the dashboard are left alone. If you mix both, keep hand-authored actions in a clearly separate naming convention.

What OpenCX Accepts

Value
OpenAPI versions2.0, 3.0, 3.1
File formatJSON or YAML
Base URLRead from servers[0].url, or you can override at import time
AuthOperations call out auth in the spec, but secrets live in global variables — see Authentication
Default channelImported actions are enabled on the widget channel only; toggle others from the action’s page

Custom Extensions

OpenCX reads three vendor extensions to pre-configure each action:
ExtensionEffect
x-open-require-form-submissionWhen true, the AI pauses on a form the customer must submit before the call
x-open-pinnedWhen true, the action is pinned at the top of the dashboard list
x-open-tagsArray of tag strings applied to the action for dashboard filtering
Drop these at the operation level:
paths:
  /orders/{order_id}:
    get:
      operationId: getOrder
      summary: Look up an order by ID
      x-open-tags: ['orders', 'support']
      x-open-pinned: true

Upload

Go to Actions, click Import from OpenAPI, and pick your spec.json or spec.yaml. Watch the actions list for new rows. If validation fails, the dashboard surfaces the first invalid operation — fix and re-upload.

What Fails And Why

ErrorWhat it meansFix
failed_to_parse_specThe file isn’t valid OpenAPI or the format doesn’t match the extensionRun your spec through a validator; confirm JSON vs YAML
invalid_tool_schemaOne operation uses schema features the AI tool-call validator rejects (deeply nested oneOf, circular refs, non-JSON-Schema types)Simplify the offending operation, remove custom types, re-upload
cannot_determine_api_endpointNo servers[0].url in the spec and no override passedAdd a servers block, or send serverBaseUrl with the API call

Build An Action

Hand-author a single action from the dashboard form.

Authentication

Where secrets live for imported actions.

Execution

Timeout, retries, response handling.

Troubleshooting

Import errors and post-import failures.