Build Custom Tools

While Alteryx provides a wide range of functionality with the available tools, you may find that you perform a specific action that could be better served by creating a custom tool. Custom tools allow for distribution within your organization and environment while still leveraging the speed and flexibilty of Alteryx Designer and Gallery.

A custom tool, or HTML5 Plugin, consists of two components:

  • the GUI, shown in Designer’s Configuration window
  • the Engine, which processes logic to handle records passed to and from the Alteryx Engine

The GUI component must be written in HTML5 using the HTML GUI SDK.

The engine component can be created using one of a variety of back end options, which include:


Creating custom tools involves working with several SDKs. For this reason, we assume you are familiar with:

  • HTML
  • JavaScript
  • Python, C++, or Alteryx Macros
  • File management

Tool location

An HTML5 Plugin and its file components reside in the Alteryx installation location: \bin\HtmlPlugins

The name of the directory is used as the label for the tool in Designer.


Tool files

A custom tool needs the following files to execute correctly. These pages can be built manually, or can be created using the Alteryx Tool Generator.

  • A .xml file to define tool configuration. See Getting Started with Developer.

  • A file to define tool function. The file type varies by what back end you use. Options include:

  • A .html file to define tool appearance. See HTML GUI SDK.

  • A .png file to display as a your tool's icon within Alteryx.


The directory must include all dependencies required by the tool, such as JavaScript libraries, style sheets, and help files.

Build your own tool checklist

Create a folder with the name of your tool. See Build Custom Tools.

Create icon and save it inside the tool folder. See Build Custom Tools.

Create a GUI file and save it inside the folder. See HTML GUI SDK.

Create your back end and save it inside the folder. See C++ SDK, Macro, and Python SDK.

Create a configuration file and save it inside the folder. See Tool Configuration File.

Create a package configuration file and save it with the folder. Package a Tool.

Package the package configuration file and tool folder as a yxi. See Package a Tool.