Apply for pilot
Example

This is an illustrative sample. Northgate CRM, its domain and every result below are fictional — written to show what an Agent Journey Audit delivers.

Agent Journey Audit Example

northgate-crm.example

Northgate CRM · B2B software · audited 12 September 2026 · reviewed by Example reviewer

Overview

Agents can confirm Northgate's security posture, docs and free trial, but can't quote its prices, and its help center refuses agents that don't run a browser.

10 Agent Journeys run

5 Confirmed1 Confirmed elsewhere1 Partly1 Only with JavaScript1 Blocked1 Couldn't check

Top blockers to fix first

  1. Put plan prices in the page HTMLWeb teamEffort: SmallOnly with JavaScript
  2. Let agents read help-center articlesSupport operationsEffort: SmallBlocked
  3. State plan limits on the pricing pageProduct marketingEffort: MediumPartly

What already works

  • Security & complianceConfirmed
    Northgate maintains SOC 2 Type II. The report is available on request under NDA.

    /trust

  • DocumentationConfirmed
    Getting started in 5 minutes — Import your customers, invite your crew, schedule your first job.

    /docs

  • Start a trial or book a demoConfirmed
    <a href="/signup">Start 14-day free trial</a> · No credit card required

    https://northgate-crm.example/

Re-test

Proposed 10 October 2026 · All 10 journeys, same agent identities and location

How agents reach you

Agents don't all arrive the same way. Every journey was run as each kind of agent.

How each kind of agent reached each part of the site
AgentHomepagePricingTrust centerDocsHelp center
Plain HTTP agentReads the HTML it receives; runs no JavaScript.ReachedNeeds JavaScriptPrices missingReachedReachedRefused403
Browser-based agentOperates a real browser; JavaScript on.ReachedReachedReachedReachedReached
Declared for agentsWhat the site publishes for agents directly.Couldn't verifyWebMCPNot declaredNot declaredDeclaredllms.txtNot declared

Agent Journeys

Every journey run, ordered by how much it matters to a buyer — not by outcome.

Every Agent Journey run, with its outcome and evidence
JourneyOutcomeBlocker or answerEvidenceConfidence
Understand the productWhat does Northgate do, and who is it for?ConfirmedHomepage states the product and audience in plain HTML.1 recordHigh
Find pricingWhere are Northgate's prices?ConfirmedPricing page linked from the main navigation.1 recordHigh
Read plan pricesHow much does the Growth plan cost?Only with JavaScriptPrices appear only after JavaScript runs.Case file · 3 recordsHigh
Compare plansWhat's the difference between Growth and Enterprise?PartlyComparison table exists; plan limits say "Contact sales".Case file · 1 recordMedium
Security & complianceIs Northgate SOC 2 compliant?ConfirmedTrust page states SOC 2 Type II and how to request the report.1 recordHigh
Start a trial or book a demoCan I try it before talking to sales?Confirmed14-day free trial linked from homepage and pricing.1 recordHigh
DocumentationIs there setup documentation?ConfirmedDocs reachable without login; llms.txt present.1 recordHigh
Integrations & APIDoes Northgate have an API?Confirmed elsewhereAPI reference hosted on a separate docs-provider domain.1 recordHigh
Get supportHow do I get help with an import?BlockedHelp center returns 403 to agents without a browser.Case file · 2 recordsHigh
Data residencyCan data be stored in the EU?Couldn't checkAnswer is inside a gated PDF behind a form.None — couldn't checkLow

Blockers

Every journey that didn't complete: where it broke, the business impact, the evidence and the fix.

Read plan prices

Plan prices are only visible with JavaScript

Only with JavaScript
Blocker
The pricing page loads for every agent, but the plan prices are injected by a script. An agent that reads the HTML sees each plan name followed by an empty price.
Business impact
Assistants that don't run JavaScript can't quote Northgate's prices, so they may leave it out of a cost comparison or describe it as "contact sales".
Fix
Render each plan's price in the server HTML, or add schema.org Offer data with price and currency.
Owner Web teamEffort SmallConfidence High
Evidence · 3 records
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
Growth
  — per user/month
Enterprise
  Talk to sales

38 KB HTML · no price values in the markup

Browser sessionBrowser-based agent · JavaScript on
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
Growth
  €49 per user/month
Enterprise
  Talk to sales

Prices rendered by /assets/pricing-widget.js

Structured dataStructured-data read
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
application/ld+json: { "@type": "Organization", "name": "Northgate CRM" }

No Offer, price or priceCurrency found

Open the journey

Get support

The help center refuses agents that don't run a browser

Blocked
Blocker
The Help link leads to help.northgate-crm.example. A plain HTTP request gets a 403 from the help center's bot protection; a browser session gets the articles.
Business impact
When a customer asks an assistant how to do something in Northgate, the assistant may answer from forums or guess instead of using the official article.
Fix
Allow AI assistants' user agents to read help-center articles; keep rate limiting in place.
Owner Support operationsEffort SmallConfidence High
Evidence · 2 records
Plain agent fetchPlain HTTP agent · no JavaScript
Request
403https://help.northgate-crm.example/hc/en/articles/import
Captured
· Amsterdam, NL
403 Forbidden
Request blocked by bot protection.
Browser sessionBrowser-based agent · JavaScript on
Request
200https://help.northgate-crm.example/hc/en/articles/import
Captured
· Amsterdam, NL
Import customers from a CSV — Go to Settings › Data › Import and choose your file.
Open the journey

Compare plans

The plan comparison doesn't state plan limits

Partly
Blocker
The comparison table lists features per plan, but user and record limits read "Contact sales" for Growth and Enterprise.
Business impact
"Which plan do I need for 40 users?" is a common question. Without limits, an agent can't answer it and may recommend a competitor that states them.
Fix
Add default user, record and API limits to the comparison table.
Owner Product marketingEffort MediumConfidence Medium
Evidence · 1 records
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/pricing#compare
Captured
· Amsterdam, NL
Users included | Starter: 3 | Growth: Contact sales | Enterprise: Contact sales
Open the journey

Couldn't check

Journeys we couldn't decide. We say so rather than guess.

  • Data residencyCouldn't check

    Can data be stored in the EU?

    The answer is inside a PDF that requires submitting a form. We don't submit forms.

    Not counted against the site.

Fix brief

Ready to paste into your backlog. Each fix has an owner and a test that tells you it's done.

  1. FIX-1

    Render plan prices in the initial HTML

    Web teamEffort: Small
    Where
    /pricing
    Change
    Server-render each plan's price, or add schema.org Offer data with price and priceCurrency.
    Done when
    A plain HTTP fetch of /pricing contains "€49".
  2. FIX-2

    Allow AI assistants to read help-center articles

    Support operationsEffort: Small
    Where
    help.northgate-crm.example
    Change
    Add AI assistants' user agents to the bot-protection allowlist for article pages; keep rate limits.
    Done when
    A plain HTTP fetch of /hc/en/articles/import returns 200 with article text.
  3. FIX-3

    State default plan limits

    Product marketingEffort: Medium
    Where
    /pricing#compare
    Change
    Replace "Contact sales" limits with defaults (users, records, API calls) per plan.
    Done when
    The comparison table states a user limit for every self-serve plan.

Method & sign-off

Agent identities
  • Plain HTTP agent · no JavaScript
  • Browser-based agent · JavaScript on
  • Structured-data and protocol discovery
Location
Amsterdam, NL
Test window
12 Sep 2026, 10:10–11:40 CEST
Tools
  • Plain HTTP fetcher (no JavaScript)
  • Headless browser session
  • MCPWebsite scanner (static read)
Audit method
v0.8 (example)

Limits of this audit

  • No sign-in, form submission or purchase.
  • One location (Amsterdam, NL); access rules can differ by country.
  • Search inside the site was not used.
  • Results describe the site on the audit date.
Reviewed and signed off byExample reviewer12 September 2026

Re-test

Proposed for 10 October 2026. All 10 journeys, same agent identities and location. You'll get a before/after outcome table, with changes highlighted.

Outcomes before and after the re-test
JourneyNowAfter re-test
Read plan pricesOnly with JavaScriptPending re-test
Compare plansPartlyPending re-test
Get supportBlockedPending re-test

Evidence log

Every observation behind every outcome, as captured.

Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/
Captured
· Amsterdam, NL
Northgate CRM — The CRM for field-service teams. Schedule jobs, track crews and invoice from one place.
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
Growth
  — per user/month
Enterprise
  Talk to sales

38 KB HTML · no price values in the markup

Browser sessionBrowser-based agent · JavaScript on
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
Growth
  €49 per user/month
Enterprise
  Talk to sales

Prices rendered by /assets/pricing-widget.js

Structured dataStructured-data read
Request
200https://northgate-crm.example/pricing
Captured
· Amsterdam, NL
application/ld+json: { "@type": "Organization", "name": "Northgate CRM" }

No Offer, price or priceCurrency found

Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/pricing#compare
Captured
· Amsterdam, NL
Users included | Starter: 3 | Growth: Contact sales | Enterprise: Contact sales
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/trust
Captured
· Amsterdam, NL
Northgate maintains SOC 2 Type II. The report is available on request under NDA.
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/
Captured
· Amsterdam, NL
<a href="/signup">Start 14-day free trial</a> · No credit card required
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://northgate-crm.example/docs
Captured
· Amsterdam, NL
Getting started in 5 minutes — Import your customers, invite your crew, schedule your first job.
Plain agent fetchPlain HTTP agent · no JavaScript
Request
200https://developers.northgate-docs.example/reference
Captured
· Amsterdam, NL
Northgate REST API reference — Authentication · Customers · Jobs · Webhooks

Different registrable domain (docs provider)

Plain agent fetchPlain HTTP agent · no JavaScript
Request
403https://help.northgate-crm.example/hc/en/articles/import
Captured
· Amsterdam, NL
403 Forbidden
Request blocked by bot protection.
Browser sessionBrowser-based agent · JavaScript on
Request
200https://help.northgate-crm.example/hc/en/articles/import
Captured
· Amsterdam, NL
Import customers from a CSV — Go to Settings › Data › Import and choose your file.