Section 2.6: up to 3 follow-ups, 5 days apart, then archived (No response) if still no reply β based on Reply Triage. Also runs automatically every morning via the "Dwarka - Prospection Follow-ups" scheduled task.
Jewelry shows / events
Show
City
Country
Region
Period
Website
Specialty
Priority
Browse-only - this seed list still needs a verification
pass (some shows may have moved, merged, or been discontinued;
rows flagged "Discontinued" / "To verify" are shown greyed out).
Actions
Based on contacts.xlsx β the active send pipeline
(separate from the prospects directory in the tiles above; see
docs/architecture-hub-3-apps.md section 2.8).
Loading...
contacts from the directory
Export what is shown (all pages):
▸ Filters
Date:fromto
Saved filters:Name:
Show nextprospect(s), oldest-added first - all pre-selected below, ready to send. Once sent, the next batch loads here automatically.
Based on prospects_directory.xlsx β no new data collection.
Computed on demand each time it's opened (no cache).
Loadingβ¦
No KPI sections are enabled. Go to Settings → KPI dashboard sections to turn some on.
1Response / conversion rate by country
Email Status · Final Outcome · Reply Triage · Reply Category
Prospects by importing country
Client Country · top 8 + rest
Response rate by countryEXAMPLE
(Reply Triage set) / (Email Status ≠ To contact), by country
Conversion rate by countryEXAMPLE
Final Outcome ∈ {Deal closed, Active client} / contacted, by country
Negative replies by categoryEXAMPLE
Reply Category, where Reply Triage = Negative
2Activity volume over time
First Contact Date · Last Follow-up Date · Follow-up Count
The file only keeps a snapshot (current status, most recent follow-up date), not a dated history of every send.
Initial sends comes from First Contact Date (reliable, one date per prospect).
Cohorts groups by first-contact week and stacks by current status β an honest substitute for a real historical trend, since no status-change log exists.
Initial sends per weekEXAMPLE
First Contact Date, grouped by week
First-contact cohorts × current statusEXAMPLE
First Contact Date week, stacked by current Email Status
3Individual performance
Assigned To
Prospects assigned & conversion rate by personEXAMPLE
Assigned To × Final Outcome
4“To review” rate
Reply Triage
Replies needing manual reviewEXAMPLE
Reply Triage = "To review" ÷ contacted
5Follow-up effectiveness
Follow-up Count · Final Outcome
A snapshot proxy, not a true dated funnel: Follow-up Count is the CURRENT count, there's no dated
history of each follow-up sent β same limitation as "Activity volume over time" above.
Converted from first contact vs after a follow-upEXAMPLE
Final Outcome ∈ {Deal closed, Active client}, split by Follow-up Count = 0 or ≥ 1
6Already-client / banned rate
Email Status
Share of the base excluded from prospectingEXAMPLE
Email Status ∈ {already_client, banned} ÷ every row in the file
7Response / conversion by sender mailbox
Sender Mailbox
Response rate by sender mailboxEXAMPLE
(Reply Triage set) ÷ contacted, by Sender Mailbox
Conversion rate by sender mailboxEXAMPLE
Final Outcome ∈ {Deal closed, Active client} ÷ contacted, by Sender Mailbox
8Response / conversion by exporting country
Current Exporting Countries
Complements section 1's by-country view with Dwarka's own side (Current Exporting Countries) rather
than the buyer's (Client Country). Free text, often several countries per prospect β each one counts
toward every country it names.
Response rate by exporting countryEXAMPLE
(Reply Triage set) ÷ contacted, by Current Exporting Countries
Conversion rate by exporting countryEXAMPLE
Final Outcome ∈ {Deal closed, Active client} ÷ contacted, by Current Exporting Countries
9Follow-up funnel
Follow-up Count
Contacted prospects by number of follow-ups sent
Follow-up Count, grouped 0 / 1 / 2 / 3+
10Social profile breakdown
Instagram · Facebook · LinkedIn · WhatsApp
Prospects with a profile found, by network
A found value, not blank and not the "Not found" placeholder
A data-quality read of the base itself, not a rate of any outreach activity
12Email domain status breakdown
Email Domain Status
Prospects by email deliverability check resultEXAMPLE
Email Domain Status (email_verify.py), where checked
13Average delay to first reply
First Contact Date · Reply History
Estimated, not exact: there's no dedicated "reply date" column β this is derived by reading the timestamp of the
first entry in each prospect's Reply History log. Treat it as an approximation.
Average days between first contact and first replyEXAMPLE
First Contact Date → first "Reply History" timestamp
Generate an email for a prospect
Manual entry for now (automatic prospect search β section 2.1 of
the architecture doc β isn't built yet). Runs the real pipeline:
Finder visual matching (finder_match.py) + personalized
text (personalize.py, Gemini). No email is sent.
Visual search across the factory catalog (145,000+ items).
This tab embeds the Finder tool directly β it needs to be
running on this same machine (LancerFinder.bat).
Sender mailboxes
Managed here rather than pulled from Email & Orders β its
mailbox list lives behind a Google login with no service-to-service
access from this app. Used to fill the "Sender Mailbox" column and
filter on the prospects list.
Assignees
Who a prospect's follow-up is assigned to. Free entry (name or
email) β kept local to this app, same reason as above.
Exporting countries
Options for "Exporting country" on the automatic prospect search
panel (section 2.1) β used to be hardcoded to "India" only.
Template variables
The catalog offered by "Insert variable" when creating/editing a
template (fix session 2026-09-12, "corrections-post-test" part
B3). Client Name (company name) is protected and
can't be removed. Adding a variable always picks from the real
columns in prospects_directory.xlsx β never free
text, so it's guaranteed to resolve for every prospect.
Banned candidates
Companies "Direct internet search" (above) already had Gemini
reject on a past run β kept here so a repeat search never
re-examines (or re-pays a Gemini call for) the same company, on any
future search regardless of which country/query resurfaces it.
Removing an entry re-opens it for future searches (for example if
Gemini judged it wrong).
Company
Reason
Rejected at
Email signature
Added at the end of every email (first contact, follow-ups, newsletter, every template) unless the
template already contains it. Plain text, one line per line; addresses starting with http(s):// or
www. become links. Leave empty or click "Reset to default" for Ashok Goyal's signature.
Preview
KPI dashboard sections
Turn KPI dashboard sections on or off for everyone β shared, not personal, same idea as the home-screen tiles
used to work before that screen was removed (see "My dashboard" below). An inactive section disappears from
the KPI dashboard for every account until switched back on here.
My dashboard
Personal preference β hides a shared tile from your
own home screen only; every other account keeps seeing
it. The shared tiles themselves (To contact, Awaiting reply,
Total prospects, etc.) are no longer editable from here (fix
session 2026-09-13, "export-nav-tuiles-templates-doublons-ban"
part C β the "Home tiles" management screen that used to be right
below this one was removed entirely) β they keep showing on
everyone's home screen exactly as they are today, just with no UI
left anywhere to create, edit, or deactivate one going forward.
"My own private tiles" below is the only way left to add a new
tile.
My own private tiles
Tiles only YOU can see (2026-09-12) β nobody else's home screen is
ever affected by these, in either direction. Each counts prospects
matching ALL of its conditions (AND).
Name
Conditions
Active
Add a private tile
Compose
Template:
β saved your changes in the other tab? Click Regenerate to refresh this preview.
Send selection
Company
Status
Images
Catalog codes
All different
Quota wait
Regen.
Detail
Time
Confirm sending
Import prospects β preview
Admin β Users
Local accounts only. Access is denied by default: a new account starts as no_access until an admin grants read_only or edit (or admin status).
Restrict which shared home tiles each ROLE may see, on top of that account's own personal show/hide
choices (Settings → My dashboard). A user sees a tile if their role has access to it — there's
no per-account setup. A restriction here always wins: an account can never re-show a tile its role has
been restricted from. Admin accounts always see every tile, regardless of this table.
Tile
Email templates
Named, reusable email templates (backlog point 6) β each replaces one
of the 2 fixed files historically used for the initial contact and
the follow-up. Initial contact/Follow-up
(the 2 defaults) always edit as raw HTML, unchanged β a safety net
that keeps working even if the visual editor below ever has a bug.
Any other template uses the visual editor (fix session 2026-09-12,
"complet-4-parties" part 4) β see "Insert variable" for the exact
placeholder list.