> ## Documentation Index
> Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Integration

> Update an existing integration.

Permissions required:
* `manage-incoming-integrations`
* `manage-own-incoming-integrations`
* `manage-outgoing-integrations`
* `manage-own-outgoing-integrations`

### Changelog
| Version      | Description | 
| ---------------- | ------------|
|8.4.0   | Added `skipTranspile` field to opt-out of Babel transpilation |
|3.4.0            | Added       |

## OpenAPI

````json PUT /api/v1/integrations.update
{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "Integrations"
  },
  "servers": [
    {
      "url": "https://apiexplorer.support.rocket.chat"
    }
  ],
  "paths": {
    "/api/v1/integrations.update": {
      "put": {
        "tags": [
          "Integration"
        ],
        "summary": "Update Integration",
        "description": "Update an existing integration.\n\nPermissions required:\n* `manage-incoming-integrations`\n* `manage-own-incoming-integrations`\n* `manage-outgoing-integrations`\n* `manage-own-outgoing-integrations`\n\n### Changelog\n| Version      | Description | \n| ---------------- | ------------|\n|8.4.0   | Added `skipTranspile` field to opt-out of Babel transpilation |\n|3.4.0            | Added       |",
        "operationId": "put-api-v1-integrations.update",
        "parameters": [
          {
            "$ref": "#/components/parameters/X-Auth-Token"
          },
          {
            "$ref": "#/components/parameters/X-User-Id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "The type of integration. The possible values are:\r\n* `webhook-outgoing`\r\n* `webhook-incoming`"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the integration."
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether this integration should be enabled or not."
                  },
                  "username": {
                    "type": "string",
                    "description": "The username to post this the messages as."
                  },
                  "scriptEnabled": {
                    "type": "boolean",
                    "description": "Whether the script should be enabled."
                  },
                  "channel": {
                    "type": "string",
                    "description": "The channel, group, or @username. The values can also be `all_public_channels`, `all_private_groups`, or `all_direct_messages`. Comma separated for more than one."
                  },
                  "integrationId": {
                    "type": "string",
                    "description": "The integration ID."
                  },
                  "urls": {
                    "type": "array",
                    "description": "The urls to call whenever this integration is triggered.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "event": {
                    "type": "string",
                    "description": "This field is required only for outgoing integrations. \r\nThe type of event can be any of these: `sendMessage`, `fileUploaded`, `roomArchived`, `roomCreated`, `roomJoined`, `roomLeft`, `userCreated`."
                  },
                  "triggerWords": {
                    "type": "string",
                    "description": "Specific words, separated by commas, which should trigger this integration."
                  },
                  "alias": {
                    "type": "string",
                    "description": "The alias which should be applied to messages when this integration is processed."
                  },
                  "avatar": {
                    "type": "string",
                    "description": "The logo to apply to the messages that this integration sends.",
                    "example": "http://res.guggy.com/logo_128.png"
                  },
                  "emoji": {
                    "type": "string",
                    "description": "The emoji which should be displayed as the avatar for messages from this integration.",
                    "example": ":ghost:"
                  },
                  "token": {
                    "type": "string",
                    "description": "If your integration requires a special token from the server (API key), use this parameter."
                  },
                  "script": {
                    "type": "string",
                    "description": "Script triggered when this integration is triggered."
                  },
                  "targetChannel": {
                    "type": "string",
                    "description": "The channel where messages will be sent to."
                  },
                  "target_url": {
                    "type": "string",
                    "description": "The target url to set."
                  },
                  "skipTranspile": {
                    "type": "boolean",
                    "description": "From 8.4.0, the optional `skipTranspile` field is available to opt out of Babel transpilation for the integration script.\nFrom 9.0.0, Babel will no longer be used for webhook integration script compilation. This is a breaking change for scripts that rely on sloppy-mode behavior. Admins must review the existing integrations. \n\nThis parameter lets you test each integration so you can fix any scripts that break and reliably upgrade to 9.0.0 with `scriptTranspile: false` set on every integration.\n\nWhen `skipTranspile` is true, the script is stored as-is without Babel processing, matching the 9.0.0 default. Defaults to false for backward compatibility. Refer to the <a href='https://docs.rocket.chat/docs/integrations#script-compatibility' target='_blank'>Script compatibility</a> section in the Integrations user guide for more details.\n\nNote: This parameter is deprecated and will be removed in the 9.0.0 version.",
                    "default": "false"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "enabled",
                  "username",
                  "scriptEnabled",
                  "channel",
                  "integrationId"
                ]
              },
              "examples": {
                "Example 1": {
                  "value": {
                    "type": "webhook-incoming",
                    "name": "Test",
                    "enabled": "false",
                    "username": "rocket.cat",
                    "scriptEnabled": "false",
                    "channel": "#test",
                    "integrationId": "x3tPXa9XXRqW6Xp2M"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "integration": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "channel": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "username": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "alias": {
                          "type": "string"
                        },
                        "avatarUrl": {
                          "type": "string"
                        },
                        "emoji": {
                          "type": "string"
                        },
                        "scriptEnabled": {
                          "type": "boolean"
                        },
                        "script": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "token": {
                          "type": "string"
                        },
                        "userId": {
                          "type": "string"
                        },
                        "_createdAt": {
                          "type": "string"
                        },
                        "_createdBy": {
                          "type": "object",
                          "properties": {
                            "_id": {
                              "type": "string"
                            },
                            "username": {
                              "type": "string"
                            }
                          }
                        },
                        "_updatedAt": {
                          "type": "string"
                        },
                        "_updatedBy": {
                          "type": "object",
                          "properties": {
                            "_id": {
                              "type": "string"
                            },
                            "username": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "examples": {
                  "Success Example": {
                    "value": {
                      "integration": {
                        "_id": "x3tPXa9XXRqW6Xp2M",
                        "enabled": "false",
                        "channel": [
                          "#test"
                        ],
                        "username": "rodriq",
                        "name": "Test",
                        "alias": "Jim",
                        "avatarUrl": "",
                        "emoji": ":ghost:",
                        "scriptEnabled": "false",
                        "script": "console.log(\"MANNNNN ---------------------------------------------------------\")",
                        "type": "webhook-incoming",
                        "token": "XYsrkngRr5PBkWhCqJWk5ZfKzQoxSv4QhxkK5trSgJENwbRL",
                        "userId": "d26x6zSkaPSe5gCyy",
                        "_createdAt": "2021-10-22T14:48:46.025Z",
                        "_createdBy": {
                          "_id": "d26x6zSkaPSe5gCyy",
                          "username": "rod"
                        },
                        "_updatedAt": "2021-10-22T16:08:39.843Z",
                        "_updatedBy": {
                          "_id": "d26x6zSkaPSe5gCyy",
                          "username": "rod"
                        }
                      },
                      "success": "true"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "error": {
                      "type": "string"
                    },
                    "errorType": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "success": "false",
                      "error": "must have required property 'type'\n must have required property 'type'\n must match exactly one schema in oneOf [invalid-params]",
                      "errorType": "invalid-params"
                    }
                  },
                  "Example 2": {
                    "value": {
                      "success": "false",
                      "error": "must have required property 'integrationId'\n must have required property 'type'\n must match exactly one schema in oneOf [invalid-params]",
                      "errorType": "invalid-params"
                    }
                  },
                  "Example 3": {
                    "value": {
                      "success": "false",
                      "error": "No integration found."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/authorizationError"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "X-Auth-Token": {
        "name": "X-Auth-Token",
        "in": "header",
        "description": "The authorization token of the user.",
        "required": "true",
        "schema": {
          "type": "string"
        },
        "example": "9HqLlyZOugD_0YdwAJF8V47U3QHXSq"
      },
      "X-User-Id": {
        "name": "X-User-Id",
        "in": "header",
        "description": "The user ID of the user.",
        "required": "true",
        "schema": {
          "type": "string"
        },
        "example": "aobEdbYhXfu5hkeqG"
      }
    },
    "responses": {
      "authorizationError": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            },
            "examples": {
              "Authorization Error": {
                "value": {
                  "status": "error",
                  "message": "You must be logged in to do this."
                }
              }
            }
          }
        }
      }
    }
  }
}
````

