Examples / Sign-up flow check

Sign-up flow check

Every weekday morning an agent opens a headless browser, signs up for a new account the way a customer would, and reports whether it reached the welcome page. The session is recorded as a video and a Playwright trace, and a failure posts both to Slack.

Headless browserSlackYour AI models

What you tell the assistant

Every weekday at 7am Toronto time, have an agent sign up on https://northwind.example/signup with a fresh test address and check it reaches the welcome page. Record a video and a trace, and post to #eng-alerts with the links if it doesn't get there.

Why it works

  • The agent reads each page as an accessibility tree and acts on what it finds, so a moved button or a renamed field doesn't break the check the way a hard-coded script would.
  • A failure arrives with a video of what the agent saw and a Playwright trace of every click, the page at each step and its network requests.
  • Pages load signed out, from the public internet, and the recordings stay in the account.
Sign in to build this

What it builds

Trigger
Schedule
0 7 * * 1-5 · America/Toronto
agent
Sign up like a customer
1 tool · smart
tool
Fetch the recording
browser.read
if !signup.output.data.passed
tool
Alert
slack.post_message
View the definition
trigger:
  kind: schedule
  cron: "0 7 * * 1-5"
  timezone: America/Toronto
steps:
  - key: signup
    name: Sign up like a customer
    kind: agent
    model: smart
    tools: [browser.*]
    max_iterations: 25
    prompt: |
      Open https://northwind.example/signup with record_video and trace. Sign up with the
      email qa+{{ run.number }}@northwind.example and the password Murmur-{{ run.number }}-check,
      accept the terms, and submit. Report whether the welcome page appeared, and if it
      didn't, what stopped you. Close the session when you are done.
    schema:
      type: object
      properties:
        passed: { type: boolean }
        summary: { type: string }
        session: { type: string }
      required: [passed, summary, session]
  - key: recording
    name: Fetch the recording
    kind: tool
    if: "!steps.signup.output.data.passed"
    tool: browser.read
    args:
      session: "{{ steps.signup.output.data.session }}"
  - key: alert
    name: Alert #eng-alerts
    kind: tool
    depends_on: [recording]
    tool: slack.post_message
    args:
      channel: "#eng-alerts"
      text: |
        :warning: Sign-up check failed: {{ steps.signup.output.data.summary }}
        Video: {{ steps.recording.output.videos }}
        Session: {{ steps.recording.output.page }}

A sample run

What each step produces

Sign up like a customer agent

succeeded
Opened browser session k3q9w2x7m1pa on https://northwind.example/signup, recording video and trace
Fill e14 · https://northwind.example/signup
Fill e17 · https://northwind.example/signup
Check e21 · https://northwind.example/signup
Click e23 · https://northwind.example/signup
Closed browser session k3q9w2x7m1pa
{
  "text": "",
  "tool_calls": 9,
  "data": {
    "passed": false,
    "summary": "The form accepted the details, but submitting showed “Something went wrong. Please try again.” and stayed on /signup. The terms checkbox and every field were filled.",
    "session": "k3q9w2x7m1pa"
  }
}

Fetch the recording tool

succeeded
Calling browser.read
{
  "session": "k3q9w2x7m1pa",
  "status": "closed",
  "url": "https://northwind.example/signup",
  "page": "https://murmurator.app/a/northwind/browser/k3q9w2x7m1pa",
  "videos": [
    "https://murmurator.app/a/northwind/browser/k3q9w2x7m1pa/files/video.webm"
  ],
  "traces": [
    {
      "file": "https://murmurator.app/a/northwind/browser/k3q9w2x7m1pa/files/trace-1.zip",
      "viewer": "https://murmurator.app/trace-viewer/index.html?trace=https%3A%2F%2Fmurmurator.app%2Fa%2Fnorthwind%2Fbrowser%2Fk3q9w2x7m1pa%2Ffiles%2Ftrace-1.zip"
    }
  ]
}

Alert tool

succeeded
Calling slack.post_message
{
  "ok": true,
  "channel": "C04ENGALERT",
  "ts": "1791371042.000200"
}

Trigger payload

{
  "scheduled_at": "2026-10-07T11:00:00Z"
}

Turn one person's AI process into the company's.

Murmurator is invite-only. Already invited? Sign in and build something real.