Logs
We use Elasticsearch for logging. We log all create, update, and delete operations; however, view operations are not logged. Logging is implemented in both resolvers and open API methods.
Two Types of Logs
The system maintains two distinct logging mechanisms:
-
Operational Logs (CRUD Logs) – Track create, update, delete operations in CRM modules.
-
Client Activity Logs – Track all client and manager activity related to a specific client across CRM, Tradersroom, and Terminal.
The sections below describe both mechanisms.
List of fields:
- Created - the date when the log was created.
- Action - the type of operation being logged. The actions we track include "create," "update," "updateMany," and "delete."
- Description - this field is used for providing additional details in specific cases where the standard information may not be sufficient. For example, in transaction webhooks, the description might include the current transaction status, such as "Sending transaction to Huntli," or detail a specific error, such as "Error while trying to send transaction to Huntli."
- Client - shows the name of the client who performed an action in the system.
- Employee - shows the name of the employee who performed an action in the system or performed a specific action on their assigned client.
- API - indicates that the action was performed by a third-party service. The column shows the identification token used to perform the action.
- Business model - refers to a distinct, independent model within our CRM, such as "Projects," "Settings," or "Client Area." A business model can also include submodules.
- Sub model - specific model that belongs to a business model. For example, "Texts" is a sub model that belongs to the "Settings" business model.
- Description - provides a short explanation of the log to add context. E.g., Client opened the withdrawal modal, Client clicked the notifications button, etc.
- Type - shows the log origin and status. The origin can be internal or external. The status is shown in brackets and defines whether it is an info log or an error log. Info logs provide general informational messages, while error logs describe failed operations.
- Error - is a stringified field containing the error message. It is used in the "catch" block of a "try-catch" construction, with a Sub type of "error."
Filters
Use filters to narrow log entries by module, operation, source, and time.
-
Client – Shows logs related to the selected client.
-
Employee – Displays logs related to the selected employee.
-
Business model – Top-level system module (e.g. Desks, Projects, Clients, Businesses).
-
Sub model – Sub-section within the selected business model (e.g.Accounts, Wallets, Banks, Cards, or Currencies, and others).
-
Action – Operation type: get, create, update, updateMany, webhook, delete, clone.
-
Type – Log origin: internal (resolvers/system) or external (Open API, webhooks).
-
Created date – Date range when the log was generated.
The Client and Employee filters are also available as buttons above the table for quick access.
Select one or more criteria and click Save to apply filters. Multiple filters can be combined to quickly isolate relevant logs for debugging, audits, or incident analysis.
Client Activity Logs (Sessions Tab)
Client Activity Logs provide a unified audit trail of all activity related to a specific client.
Unlike Operational Logs (CRUD), Client Activity Logs include:
-
Client actions (CRM / Tradersroom / Terminal)
-
Manager actions performed on that client
-
Navigation and UI events
-
Trading terminal activity
-
Finance flows
-
Support interactions
These logs are displayed in: /clients/edit/{clientId}/sessions
Example: /clients/edit/69732d9afe88d5e6ca56e366/sessions
Data Storage Model
Client Activity Logs are stored in a centralized activity log model with the following structure:
-
clientId
-
actorType (client | manager | system)
-
actorId (optional for client)
-
actorName (for manager display)
-
sourceApp (crm | tradersroom | terminal)
-
eventName (machine-readable)
-
message (human-readable)
-
metadata (JSON object)
-
createdAt (timestamp)
Sessions Table (UI)
The Sessions tab displays:
-
Date/time (default sorting: DESC)
-
Actor type (Client / Manager)
-
Actor (Manager name + ID or “Client”)
-
Source app (CRM / Tradersroom / Terminal)
-
Event type
-
Event details
-
Expandable metadata (JSON)
Table supports:
-
Server-side pagination
-
Sorting by Date
-
Filtering by:
-
Actor type
-
Source app
-
Event type
-
Logged Client Events
The system logs (minimum):
Authentication:
-
Client registered
-
Client logged in
-
Client requested password reset
-
Client restored password
-
Client changed language
-
Client entered route X
-
Client opened modal/drawer X
-
Client opened Notifications dropdown
-
Client attempted PWA install (result logged)
Transactions:
-
Client submitted deposit
-
Client submitted withdrawal
-
Client fulfilled withdrawal
-
Client filtered transactions
-
Client paginated transactions
-
Client opened transaction details
-
Client declined transaction
Documents:
-
Client fulfilled declaration
-
Client printed form
-
Client downloaded document
Tickets:
-
Client created ticket
-
Client messaged in ticket
-
Client closed ticket
Profile: Client edited profile (log changed fields only, not sensitive values)
Search: Client searched trading ideas/calendar
Trading Terminal
All terminal operations must be logged, including:
-
Order creation
-
Order modification
-
Order cancellation
-
Order execution
-
Symbol changes
-
Indicator changes
-
Chart timeframe changes
-
Widget operations
-
Position lifecycle
-
Filters and instrument selection
Full coverage is mandatory.
Logged Manager Events on Client
All manager actions related to the client must be logged, including:
-
Opened client card
-
Opened client in new tab
-
Edited client data (with safe diff)
-
Created related entity (ticket, note, action, etc.)
-
Updated related entity
-
Bulk operations affecting the client
Each manager event includes:
-
managerId
-
managerName
-
clientId
-
action type
-
target entity (type + id)
-
before/after diff (without sensitive data)
Security & Privacy Rules
-
No passwords, tokens, or full payment data are logged.
-
For profile edits, only changed field names are logged.
-
Access to Sessions tab is role-based.
Difference Between Operational Logs and Client Activity Logs
| Operational Logs | Client Activity Logs |
|---|---|
| CRUD only | Full behavioral audit |
| Internal system focus | Client-centric |
| Not client-viewable | Shown in Sessions tab |
| No UI navigation logging | Includes UI and terminal activity |