SiteBrief/Documentation

Multi-step Monitoring

Monitor complete user flows — login, checkout, form submission — by chaining HTTP requests and extracting values between steps.

ℹ️
Note:Multi-step monitoring is available on Agency and Agency Pro plans. Set check type to Multi-step in site settings, then configure steps in the Multi-step monitoring panel.

What is multi-step monitoring?

Standard HTTP monitoring checks a single URL. Multi-step monitoring lets you chain multiple HTTP requests in sequence — simulating a real user flow like:

  • Login → navigate to dashboard → verify content
  • Add product to cart → proceed to checkout → verify total
  • Submit a contact form → verify success message
  • Call an auth endpoint → use the returned token in the next request

If any step fails (wrong status code, missing body content, failed JSON assertion), the entire check is marked as down and an alert is sent.

Step configuration

FieldDescription
NameLabel for this step (shown in error messages)
URLFull URL to request. Can include extracted variables: {{token}}
MethodGET, POST, PUT, PATCH, DELETE
BodyRequest body for POST/PUT. Can include variables: {"token":"{{token}}"}
Assert statusExpected HTTP status code (e.g. 200, 201, 302). Leave empty to accept any 2xx.
Assert body containsText that must appear in the response body
Assert JSONDot-notation path = expected value. E.g. status = ok
Extract variableVariable name to store an extracted value (used in later steps)
Extract pathJSON path to extract from response. E.g. data.token

Variable extraction

Steps can extract values from responses and pass them to subsequent steps using the{{variableName}} syntax.

Example — authenticated API flow

Step 1 — Login

FieldValue
URLhttps://api.example.com/auth/login
MethodPOST
Body{"email":"test@example.com","password":"secret"}
Assert status200
Extract variabletoken
Extract pathdata.access_token

Step 2 — Fetch protected resource

FieldValue
URLhttps://api.example.com/profile
MethodGET
Body
Assert status200
Assert JSONuser.active = true
💡
Tip:The {{token}} extracted in Step 1 is automatically available in the URL and body fields of all subsequent steps.

Step ordering

Steps run in order from top to bottom. Use the and buttons in the panel to reorder steps. The step order is saved immediately when you click Save Steps.

Assertions

Status code assertion

Enter the expected HTTP status code. If the response status doesn't match, the step fails. Leave empty to accept any response (including errors — useful for intermediate steps).

Body contains assertion

A plain text string that must appear anywhere in the response body. Case-sensitive. Use this to verify page content, error messages, or success indicators.

JSON assertion

Checks a specific field in a JSON response. Format: path.to.field = expected

AssertionPasses when response contains
status = ok{"status":"ok"}
user.active = true{"user":{"active":true}}
data.count = 5{"data":{"count":5}}

Response time anomaly alerts

Multi-step checks support slowness anomaly detection. Enable it in site settings → Slowness anomaly alert. Set a multiplier (e.g. 2×) — if the total check time exceeds 2× the recent baseline average, an alert is sent.

The baseline is calculated from the last 20 check results. A 1-hour cooldown prevents alert flooding.

💡
Tip:Set the multiplier to 2–3× for normal variance. Use 1.5× for strict latency SLAs.

Frequently asked questions

How many steps can I add?
There is no hard limit in the application, but we recommend keeping flows under 10 steps for maintainability and to stay within timeout limits.
Can I add custom headers (e.g. Authorization)?
Custom per-step headers are on the roadmap. Currently, use the body field or variable extraction to pass auth tokens between steps.
What timeout applies to each step?
Each step has a 10-second timeout. If any step exceeds this, the check fails with a timeout error.
Can I test my steps before saving?
Use the Check Now button on the site detail page after saving your steps. The result will appear in Recent checks.