Operator guideEN

URLs / Form

Embedded page-level URL editor opened from CMS Page Editor to add, update, save, and remove URL rows for one page key.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this surface does

This surface is the embedded Manage URLs modal opened from CMS Page Editor for one page key.

Operators use it to maintain the URL rows attached to the current page without leaving the page editor workspace.

Where it appears

  • parent flow: CMS Page Editor
  • surface type: modal, not a standalone route
  • page scope: one urlPageKey at a time
  • trigger: URLs button in the CMS Page Editor

What operators can do here

  • review all URLs already linked to the current page
  • add a new row
  • change the locale code for a row
  • change the stored path
  • remove an existing row
  • save the full page-level URL set in one action

Row behavior

  • Add URL creates a local row with:
    • urlId: 0
    • urlLocale: any
    • urlType: direct
    • urlPageKey set to the current page key
  • The table is sorted in the FE by createdAt.
  • New unsaved rows are removed locally.
  • Persisted rows call the core delete flow first, then are removed from the current modal state.

Important caveats

  • Save URLs uses the bulk update workflow. New rows are created and existing rows are updated through the same save action.
  • Save URLs is debounced by 1000ms before the save request is sent.
  • Closing the modal resets the FE state back to the last loaded URL list.
  • The modal helper copy says URLs can be set as direct or redirect, but the current visible row editor only exposes Locale and URL. There is no visible control for urlType or redirect destination on this surface today.
  • Row order is sorted by createdAt inside the modal for display. It is not a ranking control and it does not change URL priority.
  • Persisted-row delete is risky from an operator-feedback perspective: the verified FE delete hook is configured not to throw, and the row is removed from local modal state after the delete call returns. Reload the modal if you need to confirm the row was actually removed from core storage.
  • The core save route is audit-tracked. The standalone create route also exists, but this modal saves through the bulk page-level workflow.

Validation rules

  • every row must have a URL value
  • every URL must start with /
  • URLs in the same save set must be unique
  • backend uniqueness is also enforced globally by URL path, not only per page key
  • backend validation also requires redirect records to carry urlSettings.redirect.to
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations7 topicsOpen details

Add row defaults

Logic
`Add URL` appends a local row with `urlId: 0`, `urlLocale: any`, `urlPageKey` set to the current page key, `urlType: direct`, and empty `url`., The row is treated as unsaved until the bulk save succeeds., The row also receives a current timestamp used only for modal display ordering.

Validation and duplicate guards

Logic
FE blocks save when any row has an empty `url`., FE blocks save when any `url` does not start with `/`., FE blocks save when duplicate `url` values exist in the current save set., Core bulk save repeats the duplicate-path guard before persisting rows.

Delete vs remove

Logic
Persisted rows call the core delete workflow before removal from the modal state., The verified FE delete hook is configured not to throw on delete error; reload the modal when persisted-row deletion must be confirmed.

Save debounce and close

Logic
Submit uses a debounced save callback with `1000ms` delay., Successful save shows a success toast, clears the submitting state, and closes the modal., Failed core save clears the submitting state, shows an error toast, and keeps the modal open.

Modal close reset

Logic
Modal close resets Formik state back to the last loaded `urls` payload., Closing the modal therefore discards unsaved local row edits.

Row order display

Logic
The table rows are sorted by `createdAt` for display., This is a presentation order only; the modal does not expose ranking or priority controls.

Global URL uniqueness

Logic
Core checks whether the submitted URL path already exists on another URL record., A duplicate URL path can fail even when it belongs to another page key or locale., The modal's local duplicate guard checks only duplicate paths inside the current save set.
Fields9 topicsOpen details

Page Key

The CMS page key whose URL rows are being managed in this modal.

Data Type
string

Locale

Chooses which locale the row belongs to, or `Any` for a shared path.

Data Type
locale-code

URL

Stored path for this row. It must start with `/`.

Data Type
path

Row Identifier

Internal identifier used to decide whether the save updates an existing row or creates a new one.

Data Type
integer
Caveats
New unsaved rows start with `0` in the FE.

Validation Error

Blocking message shown when required values, leading slash rules, or uniqueness checks fail.

Data Type
string
Caveats
Redirect-specific validation exists in the modal schema and core routes even though redirect fields are not exposed in the current row editor.

Empty State

Helper panel shown when the current page has no URL rows yet.

Data Type
empty-state

Add URL

Appends a new unsaved URL row for the current page key.

Data Type
action

Save URLs

Saves the full modal URL row set for the current page key.

Data Type
action
Caveats
The button changes to `Saving...` and is disabled while the FE submit state is active.

Remove URL

Removes an unsaved row locally or requests deletion for a persisted row before removing it from the modal state.

Data Type
action
Caveats
Reload the modal if you need to confirm a persisted row was deleted from core storage.
More help

Related pages

URLs

Operator documentation for the URL inventory and the embedded page-level URL editor used from CMS Page Editor.

URLs / List

Standalone URL inventory with search, page and locale filters, FE-only ID sorting, public-link copy, and linked CMS page navigation.

Affiliate Deals / Form

Create and edit form for affiliate deals, including PID, date window, commercial terms, and responsible person.

Affiliate Payment Settings / Form

Create and edit form for one affiliate payment-setting record, with visible PID targeting, minimum deposit threshold, and active-state control.

Auto Tags Manager / Create

Full rule-builder for a new automatic tagging rule, including priority, tag actions, coupon actions, KPI field selection, and draft impact estimation.

Automatic Withdrawal / Form

Create and edit form for one automatic-withdrawal rule, including thresholds, KYC, countries, methods, tags, and per-currency limits.