Key Concepts
An assembly is a diagram of connected software modules that perform processing. Assembly diagrams can be nested via subassemblies. Assemblies can execute in the browser and/or on the server.
The assembly editor is used to build assembly diagrams. Assemblies can be arbitrarily complex, in that they can invoke subassemblies which may be nested.
The assembly editor is also used to build new modules with its built-in Module IDE.
An XML document in a wire. Wires in assembly diagrams may represent one or more data streams.
Modules that can operate upon one or more data streams typically have a dropdown selection in order to specify a data stream to operate upon, when needed.
Modules and assemblies may be deprecated when new versions are built that are not backwards compatible.
When a module or assembly is deprecated, the original version is made private and renamed to include (DEPRECATED) in its name. The new and improved copy is then made public and given the original name.
Deprecation allows existing solutions to continue to work as-is.
JSON is a data format commonly returned by API's.
Modules that fetch JSON data automatically convert it into XML so the data can be processed by assembly modules.
Modules are the building blocks connected together in assembly diagrams. Each module is a software component that provides specific functionality based on the module's design and implementation.
Modules are created by software developers using the Module IDE built into the assembly editor. Modules can execute in the browser and/or on the server.
The system currently has around 250 modules, plus extensible modules where JavaScript/Java/PHP code can be inlined into assembly diagrams. So currently there isn't much of a need for new modules to be created, especially for the purpose of integrating apps or building actions/triggers for automations.
Although the system contains around 250 modules, only a small number of them are commonly used for the purpose of integrating apps and building triggers/actions.
Although the JavaScript/Java/PHP extension modules are handy, they do not perform as well as native modules. So if automation processing performance needs to be improved due to the use of extension modules, replacing their logic with native modules can usually benefit with a noticeable performance improvement.
A subassembly is a re-usable assembly diagram that has defined input and output.
Subassemblies can be dragged from the catalog as nestable blocks and placed within other assembly diagrams.
Modules in assembly diagrams are connected with wires:
Depending on the output of a module, a wire may contain a single scalar text/number value, or may contain one or more XML documents called Data Streams.
Wires determine the processing order of modules in an assembly.
There is no circular wiring logic. Looping is performed via nesting of modules/subassemblies within Loop modules.
XPath is a "path-like" syntax to identify and navigate XML data nodes.
Modules in the assembly editor use XPath to identify data fields within XML to be processed.
Most modules provide dropdown selection lists populated with needed XPath expressions to select data fields, so entering XPath by hand when using the assembly editor is rare.
For an introduction to XPath, see here.
XML is the data format that modules in the assembly editor use to pass data around.
For an introduction to XML, see here.
If an API returns data formatted as JSON, the module will convert the JSON into XML.