Magic Links
Magic links provide time-bound, secure access to meeting room devices for booking organizers.
How Magic Links Work
Magic Link Issuance
POST /api/magic-links/issue
x-api-key: <api-key>
Content-Type: application/json
{
"booking_id": "bk-abc123",
"physical_space_id": "ps-xyz789",
"organizer_email": "john@example.com",
"start_time": "2025-01-15T10:00:00Z",
"end_time": "2025-01-15T11:00:00Z",
"check_device_health": true
}
The organization_id is automatically derived from the X-Org-Api-Key header.
What the Guest Sees
When a guest opens their magic link, they see:
- Room information — Name, location, booking time
- Device tiles — One tile per visible adapter (door lock with unlock button, Wi-Fi credentials, etc.)
- Real-time status — Live device state updates
Security
- Magic links expire at the booking end time
- Each link is cryptographically signed
- Links are single-use for device credential generation
- Device access is revoked when the booking ends
Booking Access Flow
- Booking is created in ZenCore
- At T-15 minutes,
booking.startwebhook fires - ZenCore resolves the physical space mapping
- ZenCore calls ZenEdge
POST /api/magic-links/issue - ZenEdge checks device health (
check_device_health: true) - Magic link URL and device credentials are generated
- Organizer receives email with the magic link and access details (lock PIN, Wi-Fi voucher)
Deduplication
Booking metadata tracks whether credentials have been requested (booking.metadata.mrd_booking_access.credentials_requested) to prevent duplicate magic link issuance.
Next Steps
- Display Provisioning — Pairing meeting room displays
- Device Management — Managing adapters