n8n templates for TestNeo
Download the workflow JSON below, import into n8n, set your API key — no need to clone a repo or find an examples folder.
Download templates (start here)
Click a file → save → in n8n: Workflows → Import from File.
Also useful: sample webhook payload · REST contracts · credentials guide
What each template does
Ingest AgentRunSummary → semantic assert on the agent claim → execute golden NLP test → poll until terminal → ok: true|false + dashboard URL. Webhook path: testneo-agent-done.
Thin path: tools/URLs/APIs → unified context (context_id). Generate NLP later in UI/MCP if needed.
Optional mark deployed → resolve pending outcome_id → PATCH rollback / incident 7d·30d / hotfix count / notes (calibration loop).
| REST step | Path |
|---|---|
| Ingest | POST /api/web/v1/projects/{id}/unified-contexts/ingest/agent-run |
| Semantic | POST /api/web/v1/semantic-assert |
| Execute | POST /api/web/v1/test-cases/{id}/execute |
| Poll | GET /api/web/v1/analytics/execution/{id}/summary |
| Outcomes | GET/POST/PATCH …/release-readiness/outcome… |
Setup
TESTNEO_BASE_URL and TESTNEO_WEB_APP_URL at https://app.testneo.ai for normal customers.
localhost / 127.0.0.1 is only for engineers running a self-hosted TestNeo API on their laptop — not for n8n in production.
- TestNeo API key (
tn_…) from app.testneo.ai → Settings → API Keys - Your project ID, golden test case ID, and environment name (e.g.
staging) - Project environment must have a real base URL the browser can reach (public staging or VPN — see execution mode below)
- n8n 1.40+ (Template 1 poll uses Code node
helpers.httpRequest) - Self-hosted n8n recommended so you can set env vars (see credentials guide)
Production (most teams)
export TESTNEO_BASE_URL=https://app.testneo.ai
export TESTNEO_WEB_APP_URL=https://app.testneo.ai
export TESTNEO_API_KEY=tn_YOUR_KEY
export TESTNEO_PROJECT_ID=YOUR_PROJECT_ID
export TESTNEO_TEST_CASE_ID=YOUR_TEST_CASE_ID
export TESTNEO_ENVIRONMENT_NAME=staging
export TESTNEO_USE_AGENT=false
Self-hosted API only (engineers)
export TESTNEO_BASE_URL=http://127.0.0.1:8001
export TESTNEO_WEB_APP_URL=http://127.0.0.1:5173
# Prefer 127.0.0.1 over localhost if your stack mis-resolves IPv6
Cloud vs local agent (test execution)
Template 1 runs a golden NLP test after your agent finishes. Something must drive the browser — either TestNeo Cloud or your machine.
| Mode | When | Local agent? | n8n env |
|---|---|---|---|
| Cloud (default) | Public apps (Sauce Demo, SaaS staging on the internet) | No | TESTNEO_USE_AGENT=false (or omit) |
| Local agent | VPN / internal URLs only your network can reach | Yes — must be running before execute | TESTNEO_USE_AGENT=true |
If you need the local agent
- In TestNeo UI: open your project → start / install the local agent (same flow as MCP “local mode” — see MCP Quickstart or Claude Desktop — local agent)
- Confirm it is connected:
GET /api/web/v1/agents/my-agentwith your API key — look foragent_connected: trueandsetup_urlif not - Set
TESTNEO_USE_AGENT=truein n8n (Template 1 sendsuse_agent: trueon execute) - Run Template 1 only after the agent heartbeat is healthy
app.testneo.ai does not require a local agent on the n8n server. Use local agent only when the app under test is not reachable from TestNeo Cloud.
Import into n8n (3 steps)
- Download a template JSON from above
- In n8n: Workflows → ⋯ → Import from File → select the JSON
- Open the Edit Config node — confirm
$env.TESTNEO_*is set (or paste values for a one-off test), then Execute workflow
Sample payloads
Use these when testing the Template 1 webhook or Template 3 manually:
- webhook_agent_done.json — POST body for Template 1 webhook
- agent_run_summary_success.json — AgentRunSummary fixture
- record_outcome_payload.json — Template 3 fields example
Developers (optional)
You do not need this for normal use — downloads above are enough.
If you maintain TestNeo from source, the same files also live in the API monorepo under examples/n8n/ (README, smoke script, contracts). That folder is for engineers working in the repo, not for website visitors.
Security
- Prefer env vars or n8n Credentials — never commit
tn_…into workflow JSON - Protect public webhooks (auth header / shared secret) if the agent callback is internet-facing
- Teams that forbid LLM access to QA metadata can use these templates instead of MCP