Skip to main content

Triggering Scripts

Scripts can be triggered in 6 ways.

On-demand triggers:

Triggers from external events:

Scripts in Windmill

Scripts are sequences of instructions that automates tasks or performs specific operations. In Windmill, they are hosted on workspaces.

On-demand triggers

Auto-generated UIs

Windmill automatically generates user interfaces (UIs) for scripts and flows based on their parameters.

By analyzing the main function parameters, it creates an input specification in the JSON Schema format, which is then used to render the UI. Users do not need to interact with the JSON Schema directly, as Windmill simplifies the process and allows for optional UI customization.

This feature is also usable directly in the script editor to test a script in the making:

Customized UIs with the App Editor

Windmill provides a WYSIWYG app editor. It allows you to build your own UI with drag-and-drop components and to connect your data to scripts and flows in minutes.

You can also automatically generate a dedicated app to execute your script.

Trigger Scripts from Flows

Flows are basically sequences of scripts that execute one after another or in parallel.

Schedule the Execution of a Script

Windmill allows you to schedule scripts using a user-friendly interface and control panel, similar to cron but with more features.

You can create schedules by specifying a script or flow, its arguments, and a CRON expression to control the execution frequency, ensuring that your tasks run automatically at the desired intervals.

CLI (Command Line Interface)

The wmill CLI allows you to interact with Windmill instances right from your terminal.

Triggers from external events


In Windmill, webhooks are autogenerated for each Script and Flow, providing either asynchronous or synchronous execution modes.

These webhooks accept incoming HTTP requests, allowing users to easily trigger their Windmill scripts and flows from external services by simply sending a POST request to the appropriate authentified webhook URL (requires passing a token as Bearer or query arg). Their purpose is to have the script run when it receives an input from its associated webhook.

Using webhooks, you could also trigger a script from other scripts.

Webhooks: Trigger Scripts from Slack

One use case of webhooks is building a Slackbot with Windmill.

Windmill uses Slack to trigger scripts and flows by establishing Slackbots and creating specific commands. By connecting Slack with Windmill, parsing incoming Slack commands, and leveraging Windmill workflows, operational teams can trigger complex automations directly from Slack.

Webhooks: Trigger Scripts from Emails

One use case of webhooks is triggering scripts via inbound emails using Mailchimp.

Windmill leverages Mailchimp Mandrill's capabilities to initiate scripts and flows via email-triggered events. By parsing inbound emails and routing the content to Windmill through webhooks, scripts or flows are activated, enabling automation based on email content or just their arrival.