Captive Portal

Zone Mapping

Zone Mapping links each network zone to a captive portal Journey. It controls which portal experience a guest sees based on the zone they connect through — allowing different zones to show different login options, branding, and redirect behaviour.

'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}
Image not uploaded yet public/assets/img/docs/zone-mapping/overview.png
The Zone Mapping table — each row is a zone with its currently assigned journey, status, and last-changed details.

How It Works

Each network zone can be assigned to exactly one Journey at a time. When a guest connects through that zone:

  1. Kiwire looks up the zone's current Journey assignment in the mapping table
  2. The Journey's template, login methods, and redirect URL are applied
  3. The guest is served the correct portal experience for that zone

Zones without a mapping fall back to the tenant default Journey. If no default is set, unmapped zones will serve a blank portal page until mapped.

How to Map a Zone

The Zone Mapping page displays all configured zones in a table. To assign or change a Journey:

  1. Locate the zone row in the table (use the search bar to filter by zone name or ID)
  2. Click the Journey dropdown in that row — it shows all active Journeys
  3. Select the Journey to assign
  4. Click Save — the assignment takes effect immediately with no restart required

The Journey dropdown only shows active Journeys. If you cannot find a Journey you expect, check that it has is_active enabled in the Journey module.

Zone-Specific Override

Assigning any Journey to a zone creates a zone-specific override — that zone uses its assigned Journey instead of the tenant default. This is the standard way to customise portal behaviour per zone.

Zone Mapping StateBehaviour
Zone has a Journey assignedUses that specific Journey — tenant default is ignored
Zone has no Journey assignedFalls back to the tenant default Journey
No default Journey configured and zone is unmappedPortal renders with no login methods (guests cannot authenticate)

To remove a zone override and revert it to the tenant default, select the blank (Use Default) option in the Journey dropdown and save.

Unmapped Zones

The table highlights unmapped zones with a subtle warning indicator. A summary count of unmapped zones is shown above the table — this is a quick health check to ensure all zones are intentionally configured.

In a production deployment, every zone should either have an explicit Journey assigned or rely on a configured tenant default. Unmapped zones with no default mean guests in those zones cannot log in.

Audit Trail

Every Zone Mapping change is recorded in the audit log. The table shows:

ColumnDescription
ZoneZone name and ID
JourneyCurrently assigned Journey (or "Default" if unmapped)
Last ChangedTimestamp of the most recent mapping update
Changed ByThe admin account that made the last change

Full audit history (including all previous assignments) is available in System → Audit Trail filtered by the zone-mapping module.

Use the Bulk Update toolbar button to assign the same Journey to multiple zones at once — useful when rolling out a new Journey across a large venue with many zones.

Required Permissions

view-zone-mapping · update-zone-mapping