Test an integration

View as Markdown
Re-checks the connection with the stored credentials. For OAuth integrations the access token is refreshed first if it is about to expire. A failed test is still a `200`, with `connected: false` and the provider's `error`. The result is written back: a passing test sets `status: active` and clears `last_error`; a test that throws sets `status: error` and `last_error`. Only `webhook` has a built-in adapter today, so testing any other provider — including OAuth connections like Kommo — returns `connected: false` and moves the integration to `error`, which makes features that require `active` (the Kommo agent CRM tools) refuse to run until it is set back with `PATCH` or reconnected. **Side effects.** May call the provider's token endpoint; updates `status` and `last_error`; writes an audit entry (action `integration.test`). **Idempotency.** Safe to retry; each call re-probes and overwrites the status. **Access** - **Required scope:** `full`. Humans need the `admin` or `owner` role. - **Rate limit:** General API (120–600 requests/min per workspace by plan) plus the configuration-mutation limiter — 10 requests/min per workspace. See [Rate limits](/rate-limits). - **Plan:** Available on every plan.

Authentication

AuthorizationBearer
Workspace API key: `jl_` followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (**Settings → API Keys**) and sent as `Authorization: Bearer jl_...`. The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys. | Scope | GET / HEAD | POST / PUT / PATCH / DELETE | Admin-only routes | | --- | --- | --- | --- | | `read` | Yes | No | No | | `write` | Yes | Yes | No | | `full` | Yes | Yes | Yes | Operations restricted to admins or owners reject keys without the `full` scope with `403`, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See [Authentication](/authentication).

Path parameters

integrationIdstringRequiredformat: "uuid"

Integration to test. A value that is not a UUID is rejected with 400.

Response

Test result.
dataobject

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error