Documentation

Merchant docs

Everything you need to install Friction Observatory, generate checkout tests, read reports, set alerts, and run an agency portfolio — without guessing.

What is Friction Observatory?

Friction Observatory is synthetic checkout monitoring for Shopify. A real browser walks your storefront the way a shopper would — product → cart → checkout — on the markets and devices you choose. When something breaks, you get a health score, plain-language findings, session video, and screenshots you can share with your theme partner.

It is not uptime monitoring (your site can return 200 while checkout is broken). It is not CRO or A/B testing. Runs stop at checkout presentation — no real payments, no card details, no orders placed.

We monitor US, CA, GB, FR, DE, AE, ZA, and AU. Pro and Agency watch up to 5 of these at a time, with one baseline country.

Monitoring home — run tests, Market Health, and recent results.Screenshot: docs-intro-monitoring

What we test / what we don't

Runs stop at checkout presentation — no real payments, no card details, no orders placed.

What we test

  • Product → cart → checkout presentation on the markets and devices you choose
  • Optional paths: collection, Buy Now, homepage, and search (Pro / Agency)
  • Shipping and payment method presentation as a buyer in that market would see them
  • Theme and app regressions vs a pinned healthy baseline

What we don't

  • Real payment capture or placing an order
  • Logged-in / customer-account-only flows (roadmap)
  • B2B catalogs, discount codes, or subscriptions as custom paths (roadmap)
  • Uptime-only pings — we walk the buyer path, not just HTTP 200

How a buyer in Australia (or any market) is simulated

Every run sets the browser to that market's locale, timezone, geolocation, and Accept-Language. That is enough for language and some theme behavior.

Shopify usually picks currency, market, and geo redirects from the client IP, not from those headers. Findings that need a real market IP (currency not localized, market redirect, some shipping/payment presentation) are only recorded when traffic actually originates there: a region-pinned proxy (PROXY_URL_AU for Australia, and the same pattern for other ISO codes) or when the market is our monitor home region. Otherwise those IP-derived checks are skipped and logged — we do not invent an Australia result from locale headers alone.

Filter our traffic in analytics

Audits identify themselves with a stable User-Agent token: FrictionObservatoryBot/1.0. Residential proxy IPs rotate, so we cannot publish a fixed IP allowlist. Filter or exclude sessions whose User-Agent contains that token.

  • GA4 — Admin → Data filters, or an explore/segment where Device → Browser / User agent contains FrictionObservatoryBot/1.0.
  • Shopify analytics — sessions from that User-Agent are bots, not buyers; do not treat them as conversion.
  • WAF / bot allowlist — allow FrictionObservatoryBot/1.0 if you challenge unknown automation; blocking us shows as a monitor issue (BOT_BLOCK), not a store fault.

Who it is for

  • Merchants selling in more than one market — see whether checkout works in the US baseline but fails in GB, DE, AU, and so on.
  • Teams shipping theme or app changes — pin a healthy baseline, publish, then compare.
  • Agencies — link client shops, watch a portfolio, and send white-label client PDFs.

Plans at a glance

Billing runs through Shopify Billing. Start on Trial, then upgrade to Pro or Agency from Plan and billing in the app. Cancel anytime to return to Trial.

Trial

Free

Prove the product path works on one shop before you pay.

  • Prove checkout before you pay

    1 product URL, United States only, mobile and/or desktop.

  • 5 lifetime tests + daily schedule

    Each market × device × URL uses one test. Schedule once a day while free tests remain.

  • Confirmed Slack or email alert

    Wire one channel and get paged after a confirmed store-side fault — not one-off flakes.

  • Evidence on every run

    Health score, findings, session video, screenshots, and a watermarked PDF.

  • Link this shop to an agency

    Paste a connection code so your agency can watch checkout for you.

Pro

$49/mo

Continuous checkout monitoring for one store that sells in more than one market.

  • One-click setup for this store

    Generate tests from your catalog, or paste up to 5 published product URLs.

  • Multi-market checkout truth

    Watch up to 5 markets (US, CA, GB, FR, DE, AE, ZA, AU) with a baseline country. Market Health shows where shipping, payments, or localization break.

  • 14-day Shopify trial, then unlimited

    30 checkout tests total while Shopify is not charging (not 30 per day). Unlimited after a live charge starts.

  • Set-and-forget after billing starts

    Schedule every 1, 6, 12, or 24 hours. Scheduling stays off during the Shopify trial.

  • Five paths to checkout

    Product, collection, Buy Now, homepage, and search — not only product → cart.

  • Alerts you can trust

    Slack and email after a confirmed repeat on the same shop, market, and device, plus a weekly digest.

  • Theme baseline and proof

    Pin a healthy run, compare after a deploy. Premium PDF, share links, health history, and visible self-healing.

Agency

$149/mo

Watch every client Shopify shop from one dashboard, with reports under your brand.

  • Everything in Pro, on every client shop

    Same markets, paths, alerts, and evidence wherever the app is installed.

  • 15-minute schedules

    After Shopify starts charging, run as often as every 15 minutes (Pro starts at 1 hour).

  • Client stores dashboard

    Portfolio pass-rate KPIs, worst-market view, and an alert inbox across linked shops.

  • Connection code

    Clients stay on Trial or Pro and paste your code. Each shop still installs the app.

  • White-label client PDFs

    Your agency name and logo on downloadable reports — not our brand.

  • Peer benchmarks and agency Slack

    Compare clients to each other and send one agency-wide Slack feed.

CapabilityTrialPro ($49/mo)Agency ($149/mo)
Who it is forProve checkout on one shop before you payOne store that sells in multiple marketsAgencies watching several client Shopify shops
SetupGenerate tests or paste 1 product URLOne-click generate, or paste up to 5 product URLsSame as Pro on each client shop, plus a connection code to link them
MarketsUnited States onlyUp to 5 (US, CA, GB, FR, DE, AE, ZA, AU) with a baseline countrySame 5-market monitoring on each client shop
DevicesMobile, desktop, or bothMobile, desktop, or bothMobile, desktop, or both
Checkout tests5 lifetime manual tests30 total during Shopify’s 14-day trial (not per day), then unlimitedSame 14-day cap, then unlimited
ScheduleDaily while free tests remain (then paused)After Shopify starts charging: every 1h, 6h, 12h, or 24hAfter charging: every 15 min, 1h, 6h, 12h, or 24h
Paths to checkoutProduct → Cart → Checkout onlyUp to 5: product, collection, Buy Now, homepage, searchSame 5 paths on each client shop
EvidenceHealth score, findings, session video, screenshots; PDF with watermarkTheme baseline compare, unwatermarked PDF, and share linksPlus white-label client PDFs under your agency brand
AlertsSlack or email after a confirmed repeat (no weekly digest)Slack + email after a confirmed repeat; weekly digest; market on the alertPer-shop channels, plus agency-wide Slack and a portfolio alert inbox
Self-healingHealing history when selectors adaptSame healing history, used with scheduled retests after billing startsSame healing history on each client shop
Agency toolsPaste an agency connection codePaste a code (this shop stays on Pro)Full Client stores dashboard, peer benchmarks, branded reports

Install from Shopify

You only need read_products — we never place orders or collect shopper card data. After install you land in the embedded app on Monitoring.

Option A — Shopify App Store

Recommended. Friction Observatory is live on the Shopify App Store.

  1. Open the listing: apps.shopify.com/friction-observatory (or Shopify Admin → Apps → Shopify App Store → search Friction Observatory).
  2. Click Install / Add app, then approve access (read_products only).
  3. Shopify opens the app inside Admin — you should see Monitoring.
Install from the Shopify App Store listing.Screenshot: docs-install-app-store

Option B — Website install

Same OAuth flow if you prefer starting from our site instead of the App Store.

  1. Open frictionobservatory.com and click Install on Shopify, or go directly to app.frictionobservatory.com/install.
  2. Enter your .myshopify.com domain (for example your-shop.myshopify.com).
  3. Continue to Shopify, approve read_products, then open the app from Apps → Friction Observatory if you are not redirected automatically.

Already installed?

Shopify Admin → Apps → Friction Observatory. No need to install again.

Install troubleshooting

  • redirect_uri not whitelisted — always use the production install URL (https://app.frictionobservatory.com/install), not localhost.
  • Blank iframe / app won’t open — reopen from Admin → Apps. Hard-refresh the Admin tab if needed.
  • Permissions declined — uninstall from Settings → Apps and sales channels, then install again and approve read_products.

Quick start (about two minutes)

  1. Install the app from the Shopify App Store (or website install).
  2. Approve access in Shopify Admin. You land on Monitoring.
  3. If you have no product URL yet, use Generate checkout tests (also available in Settings).
  4. Follow the Setup checklist on Monitoring (product, markets, run, report). Wait for the first run to finish, then open the report — video, health score, and findings. The checklist hides after that first report exists.
  5. Optional: open Settings to refine the product URL, markets (Pro+), schedule, and storefront password.
Monitoring after install — empty or ready to generate tests.Screenshot: docs-monitoring-first-open
After Generate — review product URLs, markets, and test count, then click Start test.Screenshot: docs-generate-checkout-tests

Monitoring

Monitoring is the day-to-day home: run a checkout test, watch progress, open the latest report, compare against a theme baseline, and review Market Health, health trend, and healing history.

Run checkout test

Uses the saved product URLs and markets from Settings. The page shows a Testing: line so you can confirm which URL will run before you click.

  • Free Trial: button disables when the five lifetime tests are used up — upgrade to Pro or Agency.
  • Shopify 14-day billing trial (after you approve Pro/Agency): 30 tests total, not per day. Unlimited runs start when Shopify begins charging.
  • Each run consumes one test per market × device × product URL × journey.
  • Progress survives refresh; when complete, use Open report.
Run checkout test card with the Testing URL (and remaining-test quota on Trial).Screenshot: docs-run-checkout-test
In-progress audit with elapsed time.Screenshot: docs-audit-in-progress

Settings

Everything that configures what we test lives under Settings. Save each section before you rely on a Monitoring run.

Product to test

  1. Use a published, in-stock product page URL from this shop.
  2. Format: https://your-shop.myshopify.com/products/… (or your allowed custom domain).
  3. Trial: 1 URL. Pro / Agency: up to 5.
  4. Or clear the field and use Generate checkout tests / Clear.
Settings → Product to test.Screenshot: docs-settings-product-url

Markets & devices

  • Trial: United States only (multi-market is the paid differentiator).
  • Pro / Agency: up to 5 markets; set a baseline market (usually your primary country).
  • Device: mobile, desktop, or both.
Settings → Markets (US locked on Trial).Screenshot: docs-settings-markets

Schedule automatic tests

On the free Trial plan: once per day while free tests remain, then the schedule pauses. On Pro/Agency it stays locked during Shopify’s 14-day billing trial (30 tests total, manual only). After Shopify starts charging: hourly and slower on Pro; Agency also unlocks 15-minute cadence. After you save, Monitoring shows the next run time.

Settings → Schedule automatic tests.Screenshot: docs-schedule

Paths to checkout (Pro / Agency)

Beyond the default product → cart → checkout path, enable collection, search, homepage, or buy it now journeys. Trial always uses the standard product path.

Settings → Paths to checkout.Screenshot: docs-paths-to-checkout

Storefront password & staging

If Online Store is password-protected, save the storefront password (and optional staging URL) so tests can enter the shop.

Settings → Storefront access.Screenshot: docs-storefront-access

Sales inputs

Monthly visitors and average order value feed revenue-at-risk estimates on reports. Defaults work; replace them with your numbers when you can.

Reports & evidence

Every completed run produces a report: health score, what happened, fix next steps, session video, and (on failure) a screenshot. Share a link or download a PDF for owners and theme partners.

Audit report — health, findings, and actions.Screenshot: docs-audit-report-overview
Session video replay of the synthetic run.Screenshot: docs-session-video
Failure screenshot thumbnail — click to zoom.Screenshot: docs-failure-screenshot

Market Health

After multi-market runs (Pro / Agency), Market Health compares your baseline market to other countries. A healthy baseline with failures elsewhere usually means localization, shipping, or payment configuration — not “the whole site is down.”

Monitoring → Market Health.Screenshot: docs-market-health
Health trend over recent days.Screenshot: docs-health-trend

Theme baseline (before / after)

  1. Run a healthy checkout test.
  2. On Monitoring, click Save as baseline.
  3. Publish your theme or app change.
  4. Run again, then Compare to baseline to see regressions.
Before and after a theme change — Save as baseline / Compare.Screenshot: docs-theme-baseline

Alerts

Open the Alerts page in the app sidebar. Configure Slack Incoming Webhook and/or an alert email, save, then send a test. Free Trial can use confirmed Slack/email alerts; the weekly digest unlocks on Pro / Agency.

Alerts — Slack and email channels.Screenshot: docs-alerts-channels

Agency

Agency seat (Agency plan)

  1. Settings → Agency portal — copy the connection code; optional agency Slack webhook.
  2. Open Client stores / portfolio to see linked shops, pass rates, recent alerts, peer benchmarks.
  3. Use Send client report for a white-label PDF.
Agency portal — connection code.Screenshot: docs-agency-portal
Agency portfolio of client shops.Screenshot: docs-portfolio

Client shop (Trial or Pro)

  1. Settings → Agency connection — paste the agency code → Link store.
  2. Connected agencies lists the link; Disconnect removes it.
  3. Each shop keeps its own plan billing; portfolio shows the client’s Trial/Pro label.
Client Settings — paste agency connection code.Screenshot: docs-agency-connection

Healing history

When selectors change after a theme update, self-healing may adapt. Monitoring → Healing history shows recent heuristic / LLM adaptations so maintenance is visible, not silent.

Monitoring → Healing history.Screenshot: docs-healing-history

Billing

  1. Open Plan and billing in the app.
  2. Choose Pro or Agency → approve the charge in Shopify Admin.
  3. Shopify’s 14-day trial is 30 tests total (not per day) and does not include automatic schedules. Unlimited runs and scheduling start when Shopify begins charging.
  4. Cancel from the same page to stop paid billing without uninstalling.

To remove the app entirely: Shopify Admin → Settings → Apps and sales channels → Friction Observatory → Uninstall.

Plan and billing.Screenshot: docs-plan-billing

How to read results

  • Verified / healthy — trustworthy successful run; open the report if you want evidence.
  • Needs confirmation / flaky — first store-side critical signal; alerts and estimated loss stay off until a matching retest.
  • Confirmed issue — same store-side code again on the same product URL, market, and device among recent tests; alerts may fire.
  • Monitor issue — our infrastructure (proxy, bot block, rate limit). Not a claim that your store is broken.

Common journey failure codes

  • PRODUCT_NOT_FOUND — bad or unpublished product URL.
  • CHECKOUT_UNREACHABLE — never reached checkout (sold out, empty cart, theme).
  • BOT_BLOCK / RATE_LIMIT / PROXY_ERROR — monitor-side; we do not treat these as store guilt.

Common market codes

  • SHIPPING_RATES_UNAVAILABLE / PAYMENT_METHODS_MISSING — buyers in that market cannot complete checkout.
  • REGION_NOT_SELLABLE — country missing from checkout.

Troubleshooting

Cannot install / OAuth error

Use app.frictionobservatory.com/install (not localhost). Full steps: Install from Shopify.

Run still uses an old product URL

Confirm Settings shows the URL you want, click Save, then on Monitoring check the Testing: line before you run. Monitoring always uses the server-saved URL.

Free tests used up

The free Trial plan includes five lifetime manual tests. Upgrade to Pro or Agency for more markets, then use the 14-day Shopify trial (30 tests total) until billing starts.

Shopify trial tests used up

After you approve Pro or Agency, Shopify’s 14-day billing trial includes 30 tests total — not 30 per day. Unlimited runs and automatic schedules start when Shopify begins charging this shop. Reduce markets, devices, or product URLs if one run would exceed what you have left.

Password page blocks the bot

Save the storefront password under Settings → Storefront access, then re-run.

Video or screenshot missing

Refresh once; signed media links can expire. Re-run the test to capture new evidence.

Cannot add markets on Trial

Expected — Trial is US-only. Upgrade to Pro or Agency for multi-market Market Health.

Support

Email support@frictionobservatory.com. Include your .myshopify.com domain, plan, product URL, market / device, and the report link if you have one.

Privacy requests: privacy@frictionobservatory.com. Legal: Privacy · Terms · Security · Status · Support page.

Docs · Friction Observatory