Portal Community

Route Path Parameters

Parameters defined in the AppPage route (e.g., :id) are available as {{ route.paramName }}:

// AppPage route: /leads/:id
// Current URL: /app/acme/crm/leads/lead-456

{{ route.id }}   →   "lead-456"

// Multiple params
// Route: /reports/:year/:month
// URL: /app/acme/analytics/reports/2026/05
{{ route.year }}   →   "2026"
{{ route.month }}  →   "05"

Query String Parameters

Query string parameters are also available as {{ route.paramName }} — no distinction between path params and query params in the token syntax:

// URL: /app/acme/crm/leads?status=active&owner=user-jane
{{ route.status }}   →   "active"
{{ route.owner }}    →   "user-jane"

Using Route Params in Widget Config

// DataGrid — load data for the current entity
{
  "dataSource": "GetLeadActivities",
  "params": {
    "leadId": "{{ route.id }}"
  }
}

// Form widget pre-fill
{
  "prefillData": {
    "leadId": "{{ route.id }}",
    "returnUrl": "{{ route.returnUrl ?? '/leads' }}"
  }
}

// Page title using route param
// AppPage title field:
"Lead: {{ route.id }}"
// → Browser tab shows "Lead: lead-456"

// Navigate action with params
{
  "type": "navigate",
  "target": "/leads/{{ route.id }}/activities",
  "params": { "filter": "open" }
}

Route Param Type Notes

All route params are strings. If you need a numeric comparison, use explicit coercion:

// Route param as number
"params": { "year": "{{ Number(route.year) }}" }

// Conditional using string comparison
"visibilityExpression": "{{ route.status === 'active' }}"