What OpenCX Accepts
| Value | |
|---|---|
| OpenAPI versions | 2.0, 3.0, 3.1 |
| File format | JSON or YAML |
| Base URL | Read from servers[0].url, or you can override at import time |
| Auth | Operations call out auth in the spec, but secrets live in global variables — see Authentication |
| Default channel | Imported 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:| Extension | Effect |
|---|---|
x-open-require-form-submission | When true, the AI pauses on a form the customer must submit before the call |
x-open-pinned | When true, the action is pinned at the top of the dashboard list |
x-open-tags | Array of tag strings applied to the action for dashboard filtering |
Upload
- From the dashboard
- From CI
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
| Error | What it means | Fix |
|---|---|---|
failed_to_parse_spec | The file isn’t valid OpenAPI or the format doesn’t match the extension | Run your spec through a validator; confirm JSON vs YAML |
invalid_tool_schema | One 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_endpoint | No servers[0].url in the spec and no override passed | Add a servers block, or send serverBaseUrl with the API call |
Related Documentation
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.