Operator guideEN

Players / Leads

Lead list built on the shared player-table surface, with permission-gated CSV preview/import, optional update of existing leads, and progress polling.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this page shows

Players / Leads is the lead-management variant of the shared player-table surface. It loads contacts that are marked as leads, not regular player accounts.

The page combines:

  • a Leads tab for the active lead list
  • an Import Logs tab for completed CSV imports that wrote a summary record
  • the shared player-style list and filter surface
  • lead-only permission gating
  • CSV export of the filtered lead result set
  • a permission-gated Import leads CSV dialog with preview, mapping, validation, import, and progress polling

When to use it

Use this page when you need to:

  • review imported lead contacts in the same grid or card layout used for players
  • search or segment lead rows before downstream conversion work
  • import a CSV file of leads
  • decide whether duplicate lead emails should be skipped or updated
  • apply bulk tags, including the optional Trusted tag, during import
  • review previous CSV imports, skipped records, and failure reasons

How it differs from the player list

  • The Leads tab uses the shared player table in lead mode.
  • The list narrows the shared player-style dataset to lead rows.
  • The lead list keeps the player-table filters, table view, grid view, sorting, pagination, and CSV export behavior.
  • The primary row action does not open a lead-edit page. Both the table row action and the grid-card footer deliberately show that lead edit is unavailable.
  • Quick KYC tabs (All Players, Pending KYC, Verified, Rejected) are not rendered in lead mode.
  • Access to the page content requires original super-admin access or Leads read permission.

CSV import flow

The Import leads CSV action is shown only when the operator is:

  • original super-admin, or
  • allowed to Create or Update Leads

The dialog flow is:

  1. Select CSV
  2. Check CSV
  3. optional field mapping review and correction
  4. optional Validate Mapping
  5. optional global tags and Trusted tag toggle
  6. choose how existing lead emails should be handled
  7. run Import Leads
  8. monitor in-memory progress until completion
  9. review persisted completed-import summaries later from Import Logs

The import dialog requires:

  • Email mapping

Optional mapping fields are:

  • Country
  • First Name
  • Last Name
  • Name
  • Tags
  • PID
  • Locale

Existing lead strategy

The import flow supports two duplicate-email strategies for existing lead rows:

  • Skip existing lead
  • Update existing lead from CSV

Important behavior:

  • update is allowed only when the operator has lead update permission
  • if the existing email belongs to a non-lead player, the row is skipped as duplicatePlayer
  • imported rows are always tagged with Lead
  • optional global tags are appended to every imported row
  • enabling Trusted adds the literal Trusted tag to every imported row
  • created leads receive lead defaults such as pending KYC, not-verified email, default active currency, and lead import metadata
  • updates only overwrite mapped fields and import metadata

Progress and completion

During import, the dialog polls live progress every 2 seconds using a generated progress session id.

The visible progress state includes:

  • status (initializing, processing, completed, failed)
  • total rows
  • processed rows
  • created count
  • updated count
  • skipped count
  • failed count
  • percentage
  • ETA when available
  • status message

Completed or failed live progress sessions are retained in memory only for a short time. Use Import Logs for imports that completed far enough to write a summary record.

Import Logs

The Import Logs tab shows persisted summaries of previous lead CSV imports that reached the summary-record step. It includes:

  • upload time
  • file name
  • CRM user
  • total rows
  • imported rows
  • skipped rows
  • failed rows
  • reason counts
  • expandable skipped/failed row samples

Use this tab when you need to understand what happened after a completed import. Fatal failures that happen before the summary record is written can exist only in the live dialog/error state and then expire with live progress.

Known caveats

  • This surface intentionally has no dedicated lead detail or edit page.
  • Lead reads, filters, sorting, and CSV export reuse the shared player-list machinery, but are narrowed to lead rows.
  • When normal text search is used, the request builder forces Date start to 2022-01-01 before requesting the dataset.
  • Import progress is held in memory, not in a persistent table. Old or stale sessions expire from the store.
  • The import flow can create or update CRM lead rows, add tags, write user activity, and trigger downstream newsletter / marketing sync side effects.
  • A CSV import is not all-or-nothing across the whole file. Rows processed before a later row failure can remain created or updated.
  • CSV export normally uses the matching filtered lead dataset, but affiliate-search exports can be limited to the current visible page because that branch keeps page and row-limit inputs.
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations10 topicsOpen details

Lead-mode dataset scope

Leads and regular players are intentionally separated on this surface.

Inputs
Leads page, shared player list, user type
Transform
The shared player list is requested in lead mode, and the backend narrows the dataset to rows marked as leads.

Search start-date override

Text search can widen the visible date window compared with the date field the operator previously selected.

Inputs
Search player, Date start
Transform
When plain text search is non-empty, the request builder forces Date start to 2022-01-01 before sending the list request.
Caveats
This override applies to the shared player-list hook used by lead mode.

Active filter badge count

The badge on Show Filters / Hide Filters indicates how many filter groups are currently narrowing the lead list.

Inputs
Search player, Search ClickID or PID, Search Sub ID 2, Status, Country, Include tags, Exclude tags, Last Deposit Date
Transform
Counts non-empty search, affiliate search, Sub ID 2, status, country, include tags, exclude tags, active-state, and last-deposit operator filters.
Caveats
Date start and Date end are not counted by this badge.

Include/exclude tag behavior

Include tags narrow toward matching tag sets, while Exclude tags remove unwanted tag sets.

Inputs
Include tags, Exclude tags
Transform
Include tags require all selected tags; exclude tags remove rows carrying any selected excluded tag.

Lead CSV export scope

Normal lead-list export downloads the matching filtered dataset. Affiliate-search and Sub ID 2 exports can remain limited to the current page and row limit.

Inputs
current filters, lead mode, CSV download
Transform
CSV export sends the current filter set in lead mode, omits visible sort direction, and enables CSV download.

Lead import preview diagnostics

Preview is a dry run. It explains what will be imported, skipped, or updated before Import Leads is run.

Inputs
selected CSV, field mapping, existing lead strategy
Transform
Preview parses headers and rows, validates mapped columns, requires email mapping, suggests mappings, and classifies missing email, invalid email, duplicate-in-file, duplicate lead, duplicate player, and update-candidate rows.

Imported lead tag composition

Every imported or updated lead receives the Lead tag, plus any configured import-time tags.

Inputs
Lead base tag, Additional tags, Trusted tag, mapped row tags
Transform
Import deduplicates and applies the base Lead tag, selected global tags, optional Trusted tag, and per-row mapped tags.

Lead create/update defaults

Import can create new lead records or update existing lead records, depending on duplicate strategy and permissions.

Inputs
mapped email, mapped names, mapped country, mapped locale, mapped PID, existing lead strategy
Transform
New leads get default lead profile values, default active currency, pending KYC, inactive email verification, and lead import metadata; updates only overwrite mapped fields and lead import metadata.
Caveats
Existing non-lead player emails are skipped and not converted into leads by this flow., Country values should be ISO-like country codes; invalid or missing country falls back during import.

Import progress retention

Progress is useful for the active run, but it is not the long-term audit log.

Inputs
progress session id, import status
Transform
Import progress lives in an in-memory session map; completed or failed sessions are retained for about 15 minutes, while stale sessions can remain for about 6 hours.

Import log summary

Use Import Logs for persisted completed-import summaries after the live progress session has expired.

Inputs
import summary activity, skipped samples, reason counts
Transform
Imports that reach the summary-record step write a summary activity that powers the Import Logs tab with file name, uploader, totals, reason counts, and skipped/failed samples.
Caveats
Fatal failures before the summary record is written may only be visible in the live dialog/error state.
Columns10 topicsOpen details

Id

Lead user identifier.

Data Type
number

Email

Main identity field displayed in the lead list.

Data Type
string

Name

Imported lead name shown in the list or card view.

Data Type
string

Status

Active/inactive badge rendered through the shared table surface.

Data Type
boolean

Balance

Shared wallet-balance column shown even in lead mode.

Data Type
money

Currency Code

Currency chip rendered from the shared wallet relation.

Data Type
string

KYC Status

Shared KYC badge renderer from the player list surface.

Data Type
string

Country

Lead country code.

Data Type
string

Tags

Current lead tag set. Imported leads always receive the `Lead` tag.

Data Type
array

Edit

Disabled placeholder action that communicates that a dedicated lead edit page is not available.

Data Type
action
Filters12 topicsOpen details

Search player

Text search against the lead dataset. In the FE hook this also forces `startDate` to `2022-01-01`.

Type
text

Search ClickID or PID

Affiliate-oriented search path shared with the player list.

Type
text

Search Sub ID 2

Affiliate sub-id search path shared with the player list and filtered to lead rows in lead mode.

Type
text

Status

KYC-style status filter reused from the shared player-table control set.

Type
select

Country

Restricts the list to one country code.

Type
select

Include tags

Requires all selected tags to be present on the lead record.

Type
multi-select

Exclude tags

Excludes leads carrying any of the selected tags.

Type
multi-select

Date start

Lower bound for the shared list date window.

Type
date

Date end

Upper bound for the shared list date window.

Type
date

Last Deposit Date

Shared player-table operator for deposit-date filtering. It remains visible in lead mode even though many leads may have no deposit history.

Type
select
Visible Values
Any, Between, Before, After, Never deposited

Deposit from / Deposit date

Lower or single date bound when a deposit-date operator is selected.

Type
date

Deposit to

Upper date bound when the deposit-date operator is `between`.

Type
date
More help

Related pages

CMS / Configuration / Import History

Import-modal history and recovery guide for CSV import records, imported variables, restore, revert, delete, clear, country restore scope, and pre-import version checks.

Dashboard / Player Statistics

Rank top winners, losers, and depositors for a selected period and row limit.

Players / Activity Log

Standalone player activity history page with filters, export, map view, row details, and comment-group context.

Players / API Requests

Inspection page for player-related API event logs, with payload search, system and time filters, row-level JSON export, and a three-mode request/response viewer.

Players / Banking

Banking tab inside the player workspace with transaction filters, a paginated banking grid, analytics cards, CSV export, and automatic-withdrawal availability.

Players / Bonus Detail

Read-only detail page for one issued bonus, showing user, bonus, transaction, issuer, game, and lifecycle metadata.