User-defined processes (UDP) are custom-built templates that combine code processes such as spark processors or BQ Processes into a reusable no-code template process. UDPs can have their own user interface (UI) components, allowing for simple editing and customization of parameters specific to the UDP. UDPs can be then utilized in apps by dragging them into the workflow. The below processes are available to the user. They are designed so that they can handle anonymous input and outputs, using the parameter values contained within them. This should allow a custom template to flexibly handle different data sources without having to modify the process itself once published.