ActiveManage Docs ← Back to activemanage.co.uk

Friendly URLs

Friendly URLs Overview

Friendly URLs are clean, human-readable web addresses like /customer/acme-corp instead of /record.php?id=4421. They're crucial for SEO, bookmarkability, and brand polish.

Side-by-side URL comparison: 'Ugly URL: /record.php?id=4421&action=view' vs 'Friendly URL: /customer/acme-corp'; the friendly one is highlighted in green

Why Friendly URLs Matter

  • SEO: Search engines weight URLs in ranking. Keyword-rich URLs rank better.
  • Bookmarkability: Users can remember meaningful URLs; they can't remember ?id=4421.
  • Shareability: Clean URLs look trustworthy when pasted into email or chat.
  • Brand: Clean URLs feel like a quality product.
  • Resilience: Backend IDs can change while public URLs stay stable.

How They Work

  • Each record can have a “slug” field — a URL-safe string derived from the record's name.
  • The platform's router maps incoming URLs to records by slug.
  • Old slugs (renamed records) redirect to current ones automatically for 90 days.
  • Slugs must be unique within the URL's scope.

Where Friendly URLs Are Used

  • Public-facing pages (landing, marketing, knowledge base).
  • Public-facing records (product pages, profile pages, articles).
  • API endpoints where stable identifiers help integration (less common).
  • Customer-facing portal pages.

Worked Examples

  • Product page: /products/widget-pro instead of /products/4421.
  • Help article: /help/how-to-reset-password instead of /help/article?id=87.
  • Marketplace seller: /seller/acme-handmade — memorable URL the seller can put on their business card.
  • Knowledge base: /docs/getting-started/your-first-datastore — nested hierarchy mirrors content structure.

Configuring a Friendly URL

This article shows step-by-step how to configure friendly URLs for a datastore or a specific record, including slug generation rules and resolving collisions.

Datastore configuration showing 'URL pattern' field with value '/products/{slug}' and a 'Slug source' field pointing to product.name; per-record slug override field shown beneath

Datastore-Level Configuration

  1. Open Architect Panel → Datastores → (your datastore) → URLs.
  2. Define URL pattern — e.g. /products/{slug}.
  3. Choose which field is the slug source — typically the record's name.
  4. Set slug generation options:
    • Lowercase.
    • Replace spaces with hyphens.
    • Strip non-ASCII (transliterate).
    • Max length.
    • Collision suffix (e.g. add -2, -3 on duplicates).
  5. Save.

Per-Record Override

For specific records you want a different slug than the auto-generated one:

  1. Open the record.
  2. Click Edit slug.
  3. Enter the desired slug (must be unique within the datastore).
  4. Save. The platform creates a redirect from the old slug to the new for 90 days.

Worked Examples

  • Products: Pattern /products/{slug}, slug from name, max 80 chars. “Widget Pro 2026 Edition” → widget-pro-2026-edition.
  • Customers (private): Pattern /customers/{id} — internal-only; no SEO concern; keep IDs for stability.
  • Knowledge articles: Pattern /help/{category}/{slug} — nested hierarchy.
  • Special-case override: A product named “Widget Pro™” auto-slugs to “widget-pro”; if there's already a “Widget Pro Lite” using that slug, the second uses “widget-pro-2”.