Skip to content

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:

  1. POST to a REST API to create a user
  2. Wait for the confirmation email and fetch it via IMAP
  3. Extract the token from the email body
  4. Use the token in an LDAP BIND to verify directory access

[SCREENSHOT: Chain editor — step list on the left, step detail on the right]

[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.

TypeDescription
HTTPSend an HTTP request
SMTPSend an SMTP command sequence
IMAPExecute IMAP commands
LDAPExecute LDAP operations
SpamAssassinSubmit a message for spam scoring
ITERATELoop over a list and execute child steps per item
PRINTPrint a variable value to the execution log

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.

[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.