Ziggy - Services and Product Help

Feature Overview

Below is a quick summary of Ziggy's key features.

Utility Blocks

Below is an example of a Flow that incorporates three standard Utility Blocks (REST call, conversion to CSV and SFTP). more...

utility flow

Take a look at some more example Flows.

Javascript Blocks

Javascript is the catch-all for edge case situations and where Utility Blocks aren't available.

Here's an example of a Flow that

  • takes an array of data (using supplied test data in this case)

  • creates company records in the Hubspot CRM. more...

JS Example

Turning Javascript into Utility Blocks

When things become more complex or are frequently used, Typescript developers can create their own Utility Blocks. The example below shows the same functionality as above but encapsulated in the Hubspot Block. more...

It reads a batch of 20 records at a time from a SQL database and then creates company records in the Hubspot CRM.

Js to block

Debugger

All Flows can be stepped through and debugged. You can inspect data as you go step through it and view log and console information in the bottom panes. more...

Debugger

Data inspection, validation and mapping

As you can see from in the above Flow, data is flowing between Blocks. You can inspect the data by clicking on an edge bubble (below we've clicked on the green bubble).

The data that is output from the edge after the mapping has been done

Alt text

The data structure that is expected along with validation rules. These can be omitted if not required. There is AI support for generating these straight from the data.

Alt text

The data structure being mapped to and the mappings. There is AI support for the mapping.

Alt text

Read Structures, mappings and validations for more information.

Subflows

To modularise your Flows, you can call a Flow from another Flow, like this.

Call subflow

Execution history

Inspect all executions with precise filtering support. You can decide whether you want data snapshots or not, providing a balance between information and security. For ultra-secure situations data can be set to always persists, never persist or only persist for failed executions. You can also auto-delete execution history. more...

Dashboard

Users can be alerted when executions fail.

Batching

You can process large volume of data using Batching. This helps access data coming from databases, API calls etc., in batches. ...more

Queuing

Queuing is important for ensuring that the system does not get overloaded with requests. It also lets you deal with third party API rate limits. ...more

You can be alerted when a queue size exceeds a certain limit.

Alerts and Log

Ziggy generates email Alerts for Execution errors, system resource issues and Queue sizes exceeding specified thresholds. There is also a Log browser where you can view alerts at any time.

Log

Secrets

Ziggy comes with its own Secrets Manager. This lets you manage your secrets securely. All secrets are store fully encrypted. more...

Dialog

Variables

Variables behave like Secrets except they do not contain values that should be hidden from the user. Variables can be modified by a Flow as it executes. more...

Connections

Connections are named references to external modules (SQL, SFTP, Redis and others you request) along with a corresponding setup that you can reference from Javascript Blocks and their respective Utility Blocks where they exist. Both development and production configurations can be specified. more...

Connections

Data Store

The Data Store is a simple, persistent key-value pair store. It can be referenced from both Javascript and the Data Store Utility Blocks.

Commander

When you have a lot of Flows, navigating between them can get tedious. The Commander is a special type of Flow that lets you navigate to and execute Flows by organising them on a canvas.

Commander

Memory Store

A simple, persistent in memory data store. If you are running multiple instances of Ziggy in a single deployment you should use Redis. It can be referenced from both Javascript and the Memory Store Utility Blocks

NPM and other external objects

Upon request, or if you are working with the Ziggy source code, any NPM module or custom object can be added quickly and easily. more...

Development/Production

Ziggy allows you to operate in Development and Production modes. Each uses discreet Secret, Connection and Variables. ...more

Parallelism, performance and scaling

Ziggy is very performant. It can also be configured to scale across multiple CPUs and cores. You can create parallel processes within your Flow.

Parallel subflows

Beware too many parallel or simultaneously executed Flows. Take a look at Queuing to avoid overloading the system or hitting API rate limits.

Scheduler

The integrated scheduler triggers Flow with a high degree of Cron-like specificity. more...

Scheduler

Tests

You can configure Test Groups, within which are the flows that should be tested. The execution sequence can be adjusted with drag and drop. Failed tests can be clicked on to inspect the reason for failure (a data snapshot is of logs and data). ...more

Tests

Deployment

You have complete control over your Ziggy deployment. Ziggy is Dockerized, so deployment is quick and easy.

They key thing is that every Ziggy customer runs their own fully isolated deployment on the platform of their choice.

  • On a dedicated server we can provide.

  • In your own cloud infrastructure.

  • Dockerized or bare-bones running under PM2.

The main takeaway if that you can specify and control exactly where and how you'd like your deployment configured, enabling you to control all aspects of security and performance.

Ziggy is backed by a Database and Redis server, which run by default inside the Docker container. However, you can run these externally as well.

Transfer database or selected data to another Ziggy instance

You can transfer the entire database or selected Flows, Secrets, Connections, Variables and Structures to another Ziggy instance. ...more

Security

One of the motivations for Ziggy was providing a platform where you have full control over API access, User Management and Data Persistence. Usage of 3rd party systems and is highly configurable and mostly a matter of choice rather than being hard-wired.

We never persist any data unless it's you who's choosing to persist in a Flow.

Please refer the Security topic for more details.

Source code availability

Whether you want to build your own custom blocks or simply have the peace of mind of having full control, we can provide the source code (Typescript/React/NestJS) upon request. more...

Last modified: 10 February 2025