Update an integration
Changes only the fields present in the body. credentials replaces the stored credentials
wholesale (no merge) and does not re-run the connection test — call
POST /api/integrations/{integrationId}/test afterwards. fieldMapping replaces the whole
mapping. campaignId: null unlinks the campaign. status accepts only active and paused;
error and pending_auth are set by Jelliu. An empty body is accepted and only bumps updated_at.
Side effects. Encrypts new credentials; clears the integration caches; writes an audit entry
(action update, resource integration, credentials redacted). Pausing an OAuth integration
also takes it out of the background token-refresh scan.
Idempotency. Safe to retry: sending the same body again yields the same stored values.
Webhook events. audit.log_recorded for webhooks subscribed to it. See Webhooks.
Access
- Required scope:
full. Humans need theadminorownerrole. - 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.
- Plan: Available on every plan.
Authentication
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.
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.
Path parameters
Integration to update. A value that is not a UUID is rejected with 400.
Request
Replacement mapping, source field → Jelliu contact field. Salesforce keys must be valid field identifiers.
Campaign that inbound contacts go to; null unlinks it.
paused — stop background token refresh for the integration and mark it inactive (features
that require active, such as the Kommo agent CRM tools, refuse to run).
active — resume it.
Response
The full integration record returned by retrieve, create and update: every Integration field plus the
columns below. No secret material is returned: credentials is masked, and the OAuth access and
refresh tokens and the inbound webhook secret are omitted. hasCredentials and hasWebhookSecret
report whether they exist.

