---
title: "Patch Integration"
method: PATCH
path: "/admin/api/v1/integrations/{integration_id}"
tags: ["Integrations & Tools"]
---

# Patch Integration

`PATCH /admin/api/v1/integrations/{integration_id}`

Apply a shallow update to an existing integration row.

Only fields present in the body are touched. Slug is sticky on
rename so existing references stay valid. Inner ``integration``
is replaced wholesale when provided.

## Path parameters

- `integration_id` string, uuid, required

## Request body

- StandaloneIntegrationPatch — Body for PATCH /admin/api/v1/integrations/{id}. The row-level ``enabled`` is the single source of truth at assembly; the inner ``IntegrationConfig.enabled`` field is ignored and overwritten at assembly time (Phase 4+).
  - `name` string, nullable
  - `enabled` boolean, nullable
  - `integration` IntegrationConfig — Top-level integration configuration. Each integration binds an external messaging provider to the agent. When the engine starts, it registers webhook endpoints for each enabled integration.
    - `provider` 'WHATSAPP' | 'DISCORD' | 'SLACK' | 'GOOGLE_CHAT' | 'TEAMS', required — Supported integration providers.
    - `enabled` boolean — Toggle this integration on or off.
    - `config` union, required — Provider-specific configuration.
      - WhatsAppIntegrationConfig — WhatsApp Business Cloud API configuration. Requires a Meta Business account with a WhatsApp Business API setup. The ``verify_token`` is used by Meta to validate the webhook endpoint during initial registration.
        - `accessToken` string, required — Meta Graph API permanent access token.
        - `phoneNumberId` string, required — WhatsApp Business phone number ID.
        - `verifyToken` string, required — Webhook verification token. Must match the token configured in the Meta App Dashboard webhook settings.
        - `apiVersion` string — Meta Graph API version.
      - DiscordIntegrationConfig — Discord bot configuration for the Interactions Endpoint webhook. Requires a Discord application with a bot user created at https://discord.com/developers/applications. The ``public_key`` is used to verify Ed25519 signatures on incoming interaction payloads.
        - `botToken` string, required — Discord bot token (used for REST API calls).
        - `applicationId` string, required — Discord application ID.
        - `publicKey` string, required — Ed25519 public key from the Discord application settings. Used to verify interaction webhook signatures.
        - `guildId` string, nullable — Optional guild (server) ID to restrict the integration to.
      - SlackIntegrationConfig — Slack Events API configuration. Requires a Slack app with a bot token and signing secret. The ``signing_secret`` is used to verify incoming webhook requests via HMAC-SHA256.
        - `botToken` string, required — Slack bot token (xoxb-...).
        - `signingSecret` string, required — Signing secret for verifying webhook requests.
      - GoogleChatIntegrationConfig — Google Chat app configuration. Requires a GCP project with the Google Chat API enabled, a service account for sending messages, and the project number for verifying inbound JWT bearer tokens.
        - `serviceAccountCredentialsJson` string, required — Service account credentials JSON for calling the Chat API.
        - `projectNumber` string, required — GCP project number used to verify inbound JWT tokens.
        - `localMode` boolean — When enabled, rewrites the webhook URL from http to https for JWT audience verification. Use this when developing behind a TLS-terminating proxy like ngrok.
      - TeamsIntegrationConfig — Microsoft Teams integration configuration. Single-tenant only: each customer registers their own Microsoft app in their own Azure AD and runs their own engine instance against it. Authentication uses Bot Framework's ``ConfigurationBotFrameworkAuthentication`` with ``MicrosoftAppType=SingleTenant`` hardcoded.
        - `appId` string, required — Microsoft App ID from the Azure AD app registration.
        - `appPassword` string, required — Client secret from the Azure AD app registration.
        - `appTenantId` string, required — Azure AD tenant ID that owns the app registration.

## Response `200`

Successful Response

- StandaloneMutationResponseStandaloneIntegrationRead
  - `data` StandaloneIntegrationRead, required — GET response and the data payload of POST/PATCH/DELETE responses.
    - `id` string, uuid, required
    - `slug` string, required
    - `name` string, required
    - `enabled` boolean, required
    - `integration` IntegrationConfig, required — Top-level integration configuration. Each integration binds an external messaging provider to the agent. When the engine starts, it registers webhook endpoints for each enabled integration.
      - `provider` 'WHATSAPP' | 'DISCORD' | 'SLACK' | 'GOOGLE_CHAT' | 'TEAMS', required — Supported integration providers.
      - `enabled` boolean — Toggle this integration on or off.
      - `config` union, required — Provider-specific configuration.
        - WhatsAppIntegrationConfig — WhatsApp Business Cloud API configuration. Requires a Meta Business account with a WhatsApp Business API setup. The ``verify_token`` is used by Meta to validate the webhook endpoint during initial registration.
          - `accessToken` string, required — Meta Graph API permanent access token.
          - `phoneNumberId` string, required — WhatsApp Business phone number ID.
          - `verifyToken` string, required — Webhook verification token. Must match the token configured in the Meta App Dashboard webhook settings.
          - `apiVersion` string — Meta Graph API version.
        - DiscordIntegrationConfig — Discord bot configuration for the Interactions Endpoint webhook. Requires a Discord application with a bot user created at https://discord.com/developers/applications. The ``public_key`` is used to verify Ed25519 signatures on incoming interaction payloads.
          - `botToken` string, required — Discord bot token (used for REST API calls).
          - `applicationId` string, required — Discord application ID.
          - `publicKey` string, required — Ed25519 public key from the Discord application settings. Used to verify interaction webhook signatures.
          - `guildId` string, nullable — Optional guild (server) ID to restrict the integration to.
        - SlackIntegrationConfig — Slack Events API configuration. Requires a Slack app with a bot token and signing secret. The ``signing_secret`` is used to verify incoming webhook requests via HMAC-SHA256.
          - `botToken` string, required — Slack bot token (xoxb-...).
          - `signingSecret` string, required — Signing secret for verifying webhook requests.
        - GoogleChatIntegrationConfig — Google Chat app configuration. Requires a GCP project with the Google Chat API enabled, a service account for sending messages, and the project number for verifying inbound JWT bearer tokens.
          - `serviceAccountCredentialsJson` string, required — Service account credentials JSON for calling the Chat API.
          - `projectNumber` string, required — GCP project number used to verify inbound JWT tokens.
          - `localMode` boolean — When enabled, rewrites the webhook URL from http to https for JWT audience verification. Use this when developing behind a TLS-terminating proxy like ngrok.
        - TeamsIntegrationConfig — Microsoft Teams integration configuration. Single-tenant only: each customer registers their own Microsoft app in their own Azure AD and runs their own engine instance against it. Authentication uses Bot Framework's ``ConfigurationBotFrameworkAuthentication`` with ``MicrosoftAppType=SingleTenant`` hardcoded.
          - `appId` string, required — Microsoft App ID from the Azure AD app registration.
          - `appPassword` string, required — Client secret from the Azure AD app registration.
          - `appTenantId` string, required — Azure AD tenant ID that owns the app registration.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `reload` StandaloneReloadResult, required — Reload outcome attached to every admin mutation response. ``reloaded`` means DB committed and runtime now uses the new config. ``restart_required`` means DB committed and process restart is needed. ``reload_failed`` means DB rolled back and runtime is unchanged.
    - `status` 'reloaded' | 'restart_required' | 'reload_failed', required — Outcome of a reload triggered by an admin mutation.
    - `message` string, required
    - `error` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/idun-group/apis/idun-agent-engine-server.md) · [All operations](https://skmtc.net/idun-group/apis/idun-agent-engine-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/idun-group/idun-agent-engine-server/versions/8909cd73cc1c/schema)
