Event System Overview
How Events Work
1
Event Creation
An event occurs (email sent, link clicked, data submitted)
2
Event Logging
Event is inserted into the database with timestamp and details
3
WebSocket Broadcast
Event is broadcast to all connected clients via Socket.io
4
Real-Time Display
Event appears immediately in the tracking interface
5
Optional Notification
Telegram notification sent if configured
- No page refresh needed
- Instant notification of target interactions
- Complete event history
- Searchable event logs
Event Types
EMAIL_SENT
Triggered When: Email successfully sent to target via SMTP Event Data: Target email address Example:CLICK
Triggered When: Target clicks phishing link Event Data: Varies by integration (IP address, user agent, etc.) Source: Payload delivery server (e.g., Humble Chameleon) via/create_event API
Example:
POST_DATA
Triggered When: Target submits form data (credentials, information) Event Data: Posted form data (may include credentials) Source: Payload delivery server via/create_event API
Example:
COOKIE_DATA
Triggered When: Session cookies captured from target browser Event Data: Cookie values and session tokens Source: Payload delivery server via/create_event API
Example:
ERROR
Triggered When: Email delivery fails or SMTP error occurs Event Data: Error message from SMTP server Example:- 550 5.1.1: User unknown (invalid email address)
- 550 5.7.1: SPF/DKIM failure (authentication issue)
- 554: Message rejected (spam filter)
- 450/451: Temporary failure (greylisting, rate limit)
Custom Event Types
Additional event types can be created by payload delivery systems:- DIRECT_DOWNLOAD: File downloaded
- 2FA_BYPASS: Multi-factor authentication bypass
- SESSION_HIJACK: Session takeover
- FORM_VIEW: Target viewed form (but didn’t submit)
- Any custom type defined by integration
Campaign Tracking Interface
Accessing Campaign Tracking
1
Navigate to Admin
2
Click Campaign Name
Select campaign to track from the list
3
View Tracking Page
Campaign tracking interface displays with real-time updates
Tracking Interface Components
Campaign Statistics:- Total targets
- Emails sent
- Emails remaining
- Current status (sending/stopped)
- Live scrolling list of events
- Newest events appear at top
- Color-coded by event type
- Events over time
- Events by type
- Click-through rates
- List of targets
- Phished status
- Event counts per target
- Send Campaign button
- Schedule Campaign button
- Cancel Campaign button
Real-Time Monitoring
WebSocket Connection
The tracking interface connects via Socket.io:- Connected: Real-time updates active
- Disconnected: Page shows connection lost
- Reconnecting: Automatic reconnection attempt
Event Feed
Events appear instantly in the feed: Display Format:Searching Events
Event Search Interface
Navigate to:- Campaign name (required)
- Timestamp (partial match)
- Event type (CLICK, POST_DATA, etc.)
- Source IP address
- Target ID
- Event data (content search)
API Search
Search via API:Database Search
Direct SQL queries:Event Filtering
Ignore Events
Mark events as ignored to exclude from tracking: Via API:Unignore Events
Restore ignored events: Via API:Event Analytics
Campaign Metrics
Target Analysis
IP Analysis
Exporting Event Data
Export All Events
Export Specific Event Types
Export Timeline
Telegram Notifications
If Telegram bot is configured inconfig.json, notifications are sent for key events.
Notification Format
Events That Trigger Notifications
- EMAIL_SENT (every email)
- CLICK (every click)
- POST_DATA (every submission)
- ERROR (every error)
- Muting non-critical events
- Using a dedicated Telegram channel
- Filtering notifications at payload server
Event Database Schema
- event_timestamp: Unix timestamp in milliseconds
- event_ip: Source IP address
- campaign: Campaign name
- target: Target ID
- event_type: Type of event (EMAIL_SENT, CLICK, etc.)
- event_data: Event details (varies by type)
- ignore: 0 = active, 1 = ignored
Troubleshooting Tracking
Events Not Appearing
Check WebSocket Connection:- Open browser console (F12)
- Look for Socket.io connection messages
- Verify no console errors