Changes an integration. Only the fields you send change; null is rejected. Omit credentials to keep them; send only a new secret to rotate it. The bot’s app identifier cannot change (422). New DingTalk, Feishu and Slack credentials are verified before saving, and the status returns to pending until the new connection is up. Changing a project reference needs the same project access as Create IM Integration.
Permission required:workspace:integration_manage on workspace_id
When you set read_write_project_id: project:mem_add on read_write_project_id
When you set read_only_project_ids: project:mem_search on read_only_project_ids
Write-only. Omit to keep the stored credentials. Send only the values that change: a secret can be rotated alone. The app identifier (appKey / appId / botId, or the Slack team and bot user) cannot change — delete and recreate the integration to connect a different bot. DingTalk, Feishu and Slack credentials are verified with the platform before saving.
Connection state. pending right after a create or a credential change until the first connection attempt; poll Get IM Integration to follow it. One of: pending, connected, error, disabled.
Short normalized reason when status is error, for display (Chinese, the console’s wording; it may change). Never contains the platform’s raw response. Use status_error_code in programs.
Stable reason code, present whenever status_error is. credentials_invalid: the platform rejected the credentials (fix them); subscribe_rejected: WeCom refused the subscription — wrong credentials or the platform’s rate limit, retried automatically; preempted: another connection took over the bot, usually the same bot connected from another environment; timeout / disconnected / connection_aborted / connection_failed: connection problems, retried automatically; dependency_unavailable: a service this deployment depends on is down, retried automatically; dependency_misconfigured: this deployment lacks something the channel needs (WeCom needs Redis) — contact the operator; internal_error: a fault on our side; unknown: the reason was recorded before codes existed, and is replaced on the next connection attempt. New codes may be added; treat an unrecognised one like connection_failed.