--- title: "Script Executor" slug: "script-executor-management" updated: 2025-07-14T13:16:47Z published: 2025-07-14T13:16:47Z canonical: "docs.processmaker.com/script-executor-management" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.processmaker.com/llms.txt > Use this file to discover all available pages before exploring further. # Script Executor > [!TIP] > [**Plan Availability:**](https://www.processmaker.com/products/pricing/) ![Professional](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Standard.png)![Professional](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Professional.png)![Enterprise](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Enterprise.png) A Script Executor is a [Docker](https://www.docker.com/) container designed to run [scripts](/v1/docs/scripts) written in a specific programming language. When a script is triggered in ProcessMaker, the following actions take place: - A Script Executor is triggered based on the script’s programming language. - A Docker container is created with the necessary libraries already built in. - Each Docker container includes the ProcessMaker Platform Software Development Kit (SDK), enabling programmatic interaction and extensibility within the platform. - The script runs securely in the container, ensuring no impact on the main platform or hosting environment. - Once the script completes, the Docker container is destroyed, preventing any external access or lingering security risks. ### Benefits of using Script Executors - **Custom Functionality:** Administrators can add packages for approved APIs and SDKs to Script Executors. - **Design Flexibility:** Process designers can use these customized Executors to make API and SDK calls. - **Controlled Access:** Administrators can regulate access to sanctioned APIs and SDKs. - **Increased Security:** Access control ensures secure usage of third-party integrations. > [!TIP] > Example and Best Practices > > - [Script Executor to Migrate Records from Microsoft Excel to a Collection](/v1/docs/example-script-executor-migrates-records-from-microsoft-excel-to-a-collection) > - [PHP Executor with the SQLSRV Module](/v1/docs/example-php-executor-with-the-sqlsrv-module) > - [Environment Variable and Magic Variable Syntax, Usage, SDK, and Script Examples](/v1/docs/environment-variable-and-magic-variable-syntax-usage-sdk-and-script-examples-1) > - [Best practices when configuring a script executor](/v1/docs/clone-screen-design-best-practices) See the following video for an example of how to use a Script Executor with a Docker `RUN` command to package the Google Client class into the Script Executor, enabling scripts to successfully call the Google API [Video](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/script_executors.mp4) --- ### Supported Programming Languages ProcessMaker Platform provides the following Script Executors. - **PHP (µService)** **Executor**: This is the default Script Executor to run Scripts developed using PHP microservice. - **C# Executor:** This is the default Script Executor to run Scripts developed using C#. - **Java Executor:** This is the default Script Executor to run Scripts developed using Java. - **Lua Executor:** This is the default Script Executor to run Scripts developed using Lua. - **JavaScript:** This is the default Script Executor to run Scripts developed using JavaScript. - **JavaScript SSR:** This is the default Script Executor to run Scripts developed using JavaScript SSR. - **PHP Executor:** This is the default Script Executor to run Scripts developed using PHP. - **Python Executor:** This is the default Script Executor to run Scripts developed using Python. --- ## View Script Executors ProcessMaker Platform provides a centralized location to view all Script Executors. Any Script Executor created by an Administrator can be used across any process model, making script management simple and efficient. Follow these steps to view all Script Executors in your organization: 1. [Log on](/v1/docs/participant-basics#log-on-to-processmaker-platform) to ProcessMaker Platform. 2. From the top menu, click the **Admin** option to view the **Users** page. 3. From the left sidebar, click the **Script Executors** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Script Executors Icon.png) to see a list of available Script Executors. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/9cc37f93-7d57-4abf-a918-a770d3496e34.png) The **Script Executors** page displays the following information in tabular format: - The **Language** column shows the programming language each Script Executor supports. - The **Title** column displays the name of the Script Executor. - The **Modified** column displays the date and time the Script Executor was last modified. Time is displayed based on ProcessMaker Platform instance's time zone setting or the [user profile's](/v1/docs/profile-settings#change-your-profile-settings) setting. - Click the **+Script Executor** to [create a new Script Executor](/v1/docs/script-executor-management#create-a-new-script-executor). - Click the **Edit** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/eaf2209c-b3b4-4465-8796-fae99bbfa929.png) to modify Script Executor settings in the same way as when [creating a new Script Executor](/v1/docs/script-executor-management#create-a-new-script-executor). - Click the **Delete** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/c2d1fdb8-51d2-4bf2-9f1a-4b69bdb2588b.png) to remove a Script Executor. The **Caution** screen displays to confirm the deletion of the Script Executor. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/8932442b-f04a-4b10-ae07-ae6743a784cb.png) > [!WARNING] > **⚠️ Deleting a Script Executor** > > When a Script Executor is deleted, the following behaviors occur: > > - All Scripts using the deleted Script Executor will fail during Request execution. > - Process designers are not notified that the Script Executor has been deleted. > - The deleted Script Executor no longer appears in the Language dropdown when editing or reviewing Script configurations. > - There is no visual warning in existing Scripts that the configured Script Executor is missing. > > 🛑 **Important:** Deleting a Script Executor from the Script Executors page is permanent and cannot be undone. > > ➡️ **Best Practice:** Always verify whether any active Scripts depend on a Script Executor before deleting it to prevent failures during Requests. --- ## Create a New Script Executor Follow these steps to create a new Script Executor: 1. [View your Script Executors](/v1/docs/script-executor-management#view-script-executors). The **Script Executors** page displays. 2. Click the **+Script Executor** button. The **Add New Script Executor** screen displays. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/efe889b4-a607-4ab2-831f-c5b7eee2fc2a.png) 3. In the **Name** setting, enter the unique name for the Script Executor. 4. In the **Description** setting, enter a description for the Script Executor. 5. From the **Language** setting, select a programming language. After selecting a programming language, the default [Dockerfile](https://docs.docker.com/engine/reference/builder/#:~:text=A%20Dockerfile%20is%20a%20text,can%20use%20in%20a%20Dockerfile%20.) content displays in the **Dockerfile** setting. The Dockerfile content includes the SDK for that language. 6. From the **Docker file** setting, append the default Dockerfile content with the [Docker commands](https://docs.docker.com/engine/reference/commandline/docker/) the Script Executor runs when it builds the Docker container. For example, to install the Google Cloud client library for PHP, enter the following command: ```dockerfile # Base image FROM php:7.2.8-cli # Install required dependencies RUN apt-get update && apt-get install -y \    git \    unzip \    libzip-dev \    zlib1g-dev \    && docker-php-ext-install zip # Install Composer COPY --from=composer:2.6 /usr/bin/composer /usr/bin/composer # Install Google API Client library RUN composer require google/apiclient:^2.14 # Set working directory WORKDIR /app # Copy your application files COPY . /app ``` 1. Refer to these [best practices for writing Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/). 2. Do not edit the default Dockerfile content as this is necessary to successfully run scripts in a Docker container. 7. Click **Save and Build** to build the Docker container. The **Build Command Output** setting displays below the **Docker file** setting as the Script Executor builds the Docker container in real-time. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Docker file Finished in the Script Executor.png) 8. If the Docker container builds successfully, the following message displays: **Executor Successfully Built. You can now close this window**. Your script executor is now listed in the [Script Executors](/v1/docs/script-executor-management#view-script-executors) and ready to use when [creating Scripts](/v1/docs/create-a-new-script). If building the Docker container is unsuccessful, the following message displays: **Error Building Executor. See Output Above.** The **Build Command Output** setting displays the Dockerfile error. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/Error Docker File.png)