Community URL Construction
Someone asked me for a document on how the URLs are structured in Gainsight CC, so here it goes:
Every URL in a Gainsight Customer Community is generated by the platform from the content title plus an immutable numeric ID. Admins never hand-write paths. Understanding the shape tells you what is stable, what is editable, and what will break if you change it.
The one rule behind almost every URL
/{title-slug}-{numeric-id}
- Slug — auto-generated from the title at creation: lowercased, spaces and punctuation collapsed to hyphens, non-Latin characters preserved and percent-encoded (for example
/groups/gainsight-japan-日本コミュニティ-182). - Numeric ID — the permanent database identifier. This is what actually resolves the page. The slug is decoration for search engines and humans.
Pattern by content type
| Type | Pattern | Live example |
|---|---|---|
| Category | /{slug}-{catId} | /customer-success-cs-15 |
| Community topic | /{cat-slug}-{catId}/{slug}-{id} | /all-about-pulse-8/pulse-europe-2026-is-so-close-31686 |
| KB article | /{cat-slug}-{catId}/{slug}-{id} | /phrases-52/how-to-export-and-import-phrases-31655 |
| Idea | /ideas/{slug}-{id} | /ideas/reports-duplicate-and-edit-30817 |
| Event | /events/{slug}-{id} | /events/pulse-usa-2026-732 |
| Group | /groups/{slug}-{id} | /groups/cs-ops-product-council-170 |
| Product update | /product-updates/{slug}-{id} | /product-updates/gainsight-cs-patch-release-31624 |
| Member profile | /members/{username}-{userId} | /members/samanthahamlet-17252 |
| Custom page | /p/{page-slug} | /p/gainsight-support |
| Module landing | /{module} | /community, /knowledge-base, /ideas, /events, /groups, /product-updates |
| Activity feeds | /activity/{feed} | /activity/recent, /activity/unanswered |
| Search | /search?q={term} | /search?q=support%20holidays&content_type[0]=discussion |
| Create topic | /topic/new?fid={catId} | /topic/new?fid=36 |
| Reply deep link | …?postid={id}#post{id} | /ideas/allow-multiple-topic-banners-31711?postid=136601#post136601 |
| System pages | /site/{page} | /site/terms |
Four behaviours worth knowing
- Category paths are flat, not nested. Breadcrumbs show Knowledge Base → CC Knowledge Base → Content Management → SEO, but the URL is just
/seo-36. Hierarchy lives in the data model, not the path. Articles are always exactly two segments deep. - The ID makes links durable. Because the numeric ID resolves the page, renaming a topic or article does not break links that are already in the wild. The platform redirects the old slug to the new one.
- URLs are case-insensitive and the canonical is lowercase.
/p/Gainsight-Supportissues a 301 to/p/gainsight-support. Every page also emits a canonical tag pointing at the lowercase form, so paginated and filtered views never fragment ranking signal. - Custom pages are the exception, and they are locked.
/p/pages carry no numeric ID, so the slug is the only identifier and must be unique across the community. It also cannot be edited after creation: changing a custom page URL means recreating the page and asking Gainsight to set up a 301. Decide the slug before you build.