perfexmodule.com — technical docs

Module Documentation

What each module does. How licensing works. What you need to know. No fluff.

📊
Module 03 · client_activity_tracker

Client Activity Tracker

Perfex 3.2+ GDPR consent Real-time dashboard

Tracks which clients are active on your Perfex client portal right now. Admin dashboard shows who's online, last seen, session duration, and page visits. GDPR consent built in — tracking only starts after the client consents.

What you get

  • Real-time online client list in admin dashboard widget
  • Session duration and last activity timestamps
  • Page visit tracking inside client portal
  • GDPR-compliant consent banner for clients
  • Heartbeat system — lightweight, no polling storm
  • Auto-expires sessions after inactivity
  • Activity log per client

How it works

  • Install and activate — tracking starts immediately
  • Consent banner shown to clients on first portal visit
  • After consent: JS heartbeat pings every 30s
  • Admin dashboard widget shows live status
  • No external services — fully self-hosted
  • Session data auto-cleaned after configurable timeout

🔑 Licensing — what the buyer must do

1

Purchase → receive license key via email.

2

Perfex admin → Activity Tracker → Settings → paste key → Activate License.

3

Module validates your domain against the license server. Works offline for up to 7 days.

Technical notes

  • Heartbeat endpoint: GET /cat_heartbeat — whitelisted in demo mode
  • Consent JS served at /clients/cat_consent_js — no external CDN
  • Language files auto-synced to application/language/ on module load
  • Compatible with Client Portal Builder (CPB) pages
⚙️
All modules

Requirements & First-Time Setup

Server requirements

  • Perfex CRM 3.0 or higher
  • PHP 8.0 or higher
  • MySQL 5.7+ / MariaDB 10.3+
  • application/config/my_routes.php writable (chmod 664)
  • Outgoing HTTPS connections to licenses.perfexmodule.com

If something doesn't work

  • Routes 404? → Check my_routes.php permissions
  • Language error? → Copy lang file to application/language/
  • License won't activate? → Check outgoing HTTPS
  • License valid but expired? → 7-day grace period. Reconnect to internet and reload.
  • Still stuck? → Email support with your domain and order number