Chains overview
A chain is an ordered sequence of steps that execute one after another. Steps are based on existing probes; the output of one step can be extracted into a variable and injected into subsequent steps via {{variable}} placeholders.
This lets you build end-to-end integration test workflows that span multiple protocols — for example:
- POST to a REST API to create a user
- Wait for the confirmation email and fetch it via IMAP
- Extract the token from the email body
- Use the token in an LDAP BIND to verify directory access
[SCREENSHOT: Chain editor — step list on the left, step detail on the right]
Creating a chain
Section titled “Creating a chain”[SCREENSHOT: Sidebar with “New chain” button, chain editor opening]
Click New chain inside a project. A chain starts empty — add steps using the Add step button.
Step types
Section titled “Step types”| Type | Description |
|---|---|
| HTTP | Send an HTTP request |
| SMTP | Send an SMTP command sequence |
| IMAP | Execute IMAP commands |
| LDAP | Execute LDAP operations |
| SpamAssassin | Submit a message for spam scoring |
| ITERATE | Loop over a list and execute child steps per item |
| Print a variable value to the execution log |
Variable flow
Section titled “Variable flow”Variables are shared across the entire chain execution context. An extractor on step 2 can produce a variable that step 5 reads from.
See Extractors for a full reference of what can be extracted from each protocol.
Execution
Section titled “Execution”[SCREENSHOT: Chain with “Run” button, execution log showing per-step results]
Click Run to execute the chain. Results stream into the execution log as steps complete — each step shows its status (success / failure) and the key-value variables it produced.