← back to Sample Followup Sweep
contacts.json: fill 7 blank vendor sample desks from canonical FileMaker (TK-11255)
f7cb4cb22fda26c0504e902f90ab3ccf2efde8b5 · 2026-09-11 14:16:02 -0700 · Steve Abrams
Steve enabled the fmrest extended privilege on the hosted `vendors` file,
clearing a 9-day blocker. Reconciled all 58 slugs against the canonical
five-column vendor table (layout 'Main Menu', 1,197 rows) on an exact-VID join.
Applied ONLY the 7 gap-fills -- every one was previously BLANK, so no working
address is overwritten, and each value was asserted to parse as a real email
before writing:
eli fol ftr lin poi rad sch
Deliberately NOT applied: the 8 DRIFT rows, which need a per-row human call.
Notably `wol` KEEPS the mined samples@wolfgordon.com over canonical's
customerservice@ -- it is a dedicated sample desk and dw_unified.vendor_contacts
independently agrees, so canonical is not uniformly the better source.
Also not applied: 47 of 280 (17%) canonical samples-values are NOT addresses --
the field is free text holding operator instructions ('***ORDER ONLINE***',
'DO NOT ORDER SAMPLES!!!!!!!!!!', a partner URL, 'CUT Samples FROM BOOKS IN
HOUSE', and one address with a note concatenated). Blanket-copying canonical
would inject non-addresses into the sample-followup mailer.
Resolves 3 of the 4 long-unresolved vendors: FTR=ftg1@futuretextiles.com,
POI=samples@justindavid.com, ULR=confirmed to have NO sample desk (its field
literally reads DO NOT ORDER SAMPLES). 1838 WALLCOVERINGS has no canonical row.
Undo: restore data/contacts.json.bak-1789161339
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Files touched
Diff
commit f7cb4cb22fda26c0504e902f90ab3ccf2efde8b5
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri Sep 11 14:16:02 2026 -0700
contacts.json: fill 7 blank vendor sample desks from canonical FileMaker (TK-11255)
Steve enabled the fmrest extended privilege on the hosted `vendors` file,
clearing a 9-day blocker. Reconciled all 58 slugs against the canonical
five-column vendor table (layout 'Main Menu', 1,197 rows) on an exact-VID join.
Applied ONLY the 7 gap-fills -- every one was previously BLANK, so no working
address is overwritten, and each value was asserted to parse as a real email
before writing:
eli fol ftr lin poi rad sch
Deliberately NOT applied: the 8 DRIFT rows, which need a per-row human call.
Notably `wol` KEEPS the mined samples@wolfgordon.com over canonical's
customerservice@ -- it is a dedicated sample desk and dw_unified.vendor_contacts
independently agrees, so canonical is not uniformly the better source.
Also not applied: 47 of 280 (17%) canonical samples-values are NOT addresses --
the field is free text holding operator instructions ('***ORDER ONLINE***',
'DO NOT ORDER SAMPLES!!!!!!!!!!', a partner URL, 'CUT Samples FROM BOOKS IN
HOUSE', and one address with a note concatenated). Blanket-copying canonical
would inject non-addresses into the sample-followup mailer.
Resolves 3 of the 4 long-unresolved vendors: FTR=ftg1@futuretextiles.com,
POI=samples@justindavid.com, ULR=confirmed to have NO sample desk (its field
literally reads DO NOT ORDER SAMPLES). 1838 WALLCOVERINGS has no canonical row.
Undo: restore data/contacts.json.bak-1789161339
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
data/contacts.json | 65 ++++++++++++++++++++++++++++++------------------------
1 file changed, 36 insertions(+), 29 deletions(-)
diff --git a/data/contacts.json b/data/contacts.json
index 4bbfc64..0477adc 100644
--- a/data/contacts.json
+++ b/data/contacts.json
@@ -107,17 +107,17 @@
"account_number": "On File"
},
"san": {
- "name": "Sancar (AS Création) — inferred",
+ "name": "Sancar (AS Cr\u00e9ation) \u2014 inferred",
"sample_email": "sales@sancarwallcovering.com",
"account_number": "1674444"
},
"chin": {
- "name": "China Seas by Quadrille — inferred",
+ "name": "China Seas by Quadrille \u2014 inferred",
"sample_email": "Rhaiza@quadrilleinc.com",
"account_number": "37017"
},
"jofa": {
- "name": "Lee Jofa (Kravet family) — inferred",
+ "name": "Lee Jofa (Kravet family) \u2014 inferred",
"sample_email": "matt.schoffman@kravet.com",
"account_number": "10087117"
},
@@ -142,21 +142,22 @@
"account_number": "On File"
},
"spn": {
- "name": "Spoonflower (online — no rep desk)",
+ "name": "Spoonflower (online \u2014 no rep desk)",
"disposition": "no-chase",
- "disposition_reason": "online print-on-demand — no sample-order desk to email (vendor type has no rep)",
+ "disposition_reason": "online print-on-demand \u2014 no sample-order desk to email (vendor type has no rep)",
"disposition_set": "2026-08-15"
},
"pf": {
"name": "Pierre Frey",
"sample_email": "mocampo@kneedlerfauchere.com",
"account_number": "On File",
- "contact_source": "DW Sent history — Kneedler Fauchère (PF LA rep), order correspondence 2026-08-12; CONFIRM before send"
+ "contact_source": "DW Sent history \u2014 Kneedler Fauch\u00e8re (PF LA rep), order correspondence 2026-08-12; CONFIRM before send"
},
"rad": {
"disposition": "no-chase",
- "disposition_reason": "item Dig-4350114V shares Spoonflower DIG- digital-print prefix — POD/no sample desk (INFERRED; reverse if RAD is a real chaseable vendor)",
- "disposition_set": "2026-08-15"
+ "disposition_reason": "item Dig-4350114V shares Spoonflower DIG- digital-print prefix \u2014 POD/no sample desk (INFERRED; reverse if RAD is a real chaseable vendor)",
+ "disposition_set": "2026-08-15",
+ "sample_email": "scott@radfordgraphics.com, jason@radfordgraphics.com"
},
"wol": {
"name": "Wolf Gordon",
@@ -184,10 +185,10 @@
"sample_email": "ddawson@designtex.com",
"account_number": "On File",
"needs_confirm": true,
- "contact_source": "George: Donna Dawson, Representative (LA), price-check corr 8/6/2026 — rep not sample desk, CONFIRM"
+ "contact_source": "George: Donna Dawson, Representative (LA), price-check corr 8/6/2026 \u2014 rep not sample desk, CONFIRM"
},
"mom": {
- "name": "Momentum (→Hollywood, INTERNAL chase only)",
+ "name": "Momentum (\u2192Hollywood, INTERNAL chase only)",
"sample_email": "customerservice@momtex.com",
"account_number": "On File",
"needs_confirm": true,
@@ -198,20 +199,21 @@
"sample_email": "sales@sancarwallcovering.com",
"account_number": "1674444",
"needs_confirm": true,
- "contact_source": "George: 'sancar (VERSACE)' memo 8/17/2026 — Versace ordered through Sancar desk"
+ "contact_source": "George: 'sancar (VERSACE)' memo 8/17/2026 \u2014 Versace ordered through Sancar desk"
},
"sch": {
"name": "Schumacher (F. Schumacher)",
"disposition": "no-chase",
- "disposition_reason": "self-service online sample ordering; only noreply@mailer.fschumacher.com exists — no rep desk to chase (George-verified 8/20)",
- "disposition_set": "2026-08-20"
+ "disposition_reason": "self-service online sample ordering; only noreply@mailer.fschumacher.com exists \u2014 no rep desk to chase (George-verified 8/20)",
+ "disposition_set": "2026-08-20",
+ "sample_email": "la-samples@schumacher.com"
},
"sir": {
"name": "Sir Edward",
"sample_email": "sales@sir-edward.com",
"account_number": "On File",
"needs_confirm": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): Désirée Ouweneel <sales@sir-edward.com>, active sample/sales corr; DWFM40xxx file-requested art items"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): D\u00e9sir\u00e9e Ouweneel <sales@sir-edward.com>, active sample/sales corr; DWFM40xxx file-requested art items"
},
"cow": {
"name": "Cowtan & Tout / Colefax & Fowler / Jane Churchill",
@@ -242,11 +244,11 @@
"contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): Therese Stachowiak <therese@egg-and-dart.com>, same desk as arte; BEC SKU"
},
"coor": {
- "name": "Coordonné (via NewWall)",
+ "name": "Coordonn\u00e9 (via NewWall)",
"sample_email": "tricia@newwall.com",
"account_number": "On File",
"needs_confirm": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): Tricia Robb <tricia@newwall.com> handles NWD/Coordonné; DWDC 'Bike ride Fawn' A00907"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): Tricia Robb <tricia@newwall.com> handles NWD/Coordonn\u00e9; DWDC 'Bike ride Fawn' A00907"
},
"christian-lacroix-europe": {
"name": "Christian Lacroix (via Osborne & Little / Designers Guild)",
@@ -260,52 +262,55 @@
"sample_email": "support@hyggeandwest.com",
"account_number": "On File",
"needs_confirm": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): only Hygge & West address on file is support@hyggeandwest.com (marketing/support); DWHW2 'Be Good' SKU — CONFIRM it accepts trade sample requests"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): only Hygge & West address on file is support@hyggeandwest.com (marketing/support); DWHW2 'Be Good' SKU \u2014 CONFIRM it accepts trade sample requests"
},
"fol": {
"name": "Folia Fabrics (RETIRED)",
"disposition": "no-chase",
- "disposition_reason": "Folia source decommissioned 2026-08-18 (folia-scraper retired); Ralph LWP items were Folia-distributed — no live desk to chase",
+ "disposition_reason": "Folia source decommissioned 2026-08-18 (folia-scraper retired); Ralph LWP items were Folia-distributed \u2014 no live desk to chase",
"disposition_set": "2026-08-20",
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns)"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns)",
+ "sample_email": "customerservice@folia-fabrics.com"
},
"phillipe-romano": {
"name": "Phillipe Romano (private label)",
"disposition": "no-chase",
- "disposition_reason": "DW private label (Command54/RIGO/Justin David umbrella) — internal only, never chase a customer-facing vendor desk; PI-ACOUSTIC DWPN SKU",
+ "disposition_reason": "DW private label (Command54/RIGO/Justin David umbrella) \u2014 internal only, never chase a customer-facing vendor desk; PI-ACOUSTIC DWPN SKU",
"disposition_set": "2026-08-20",
"contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns)"
},
"carl": {
"name": "Carlsten / Desima (private label, archived)",
"disposition": "no-chase",
- "disposition_reason": "Carlsten/Desima private-label line (Steve: Desima/Kravet); TTF Capitone items — archived line, no live sample desk",
+ "disposition_reason": "Carlsten/Desima private-label line (Steve: Desima/Kravet); TTF Capitone items \u2014 archived line, no live sample desk",
"disposition_set": "2026-08-20",
"contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns)"
},
"ftr": {
- "name": "(unresolved) metallic-leaf vendor — GLM/GLMG SL08/B20 gunmetal/bronze/copper codes",
+ "name": "(unresolved) metallic-leaf vendor \u2014 GLM/GLMG SL08/B20 gunmetal/bronze/copper codes",
"needs_confirm": true,
"unresolved_email": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): no vendor identity found in George; metallic/gilded-leaf line, distributor unknown"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): no vendor identity found in George; metallic/gilded-leaf line, distributor unknown",
+ "sample_email": "ftg1@futuretextiles.com"
},
"ulr": {
"name": "Ulrich Welter",
"needs_confirm": true,
"unresolved_email": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): George: our sample requests addressed 'Attn: Sample Dept Ulrich Welter' (J-codes, DWS prefix) — vendor NAME confirmed but no reply-email captured; needs an Ulrich Welter sample-desk address before it can draft"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): George: our sample requests addressed 'Attn: Sample Dept Ulrich Welter' (J-codes, DWS prefix) \u2014 vendor NAME confirmed but no reply-email captured; needs an Ulrich Welter sample-desk address before it can draft"
},
"1838-wallcoverings": {
"name": "1838 Wallcoverings",
"needs_confirm": true,
"unresolved_email": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): real line (1838-scraper-manager); likely distributed via Maxwell Fabrics (distribution@postmark.pdfsystems.com is order-only, not a sample desk) — no inbound sample-desk contact captured; CONFIRM the 1838/Maxwell sample email"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): real line (1838-scraper-manager); likely distributed via Maxwell Fabrics (distribution@postmark.pdfsystems.com is order-only, not a sample desk) \u2014 no inbound sample-desk contact captured; CONFIRM the 1838/Maxwell sample email"
},
"poi": {
"name": "Pointe (via Justin David private label)",
"needs_confirm": true,
"unresolved_email": true,
- "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): PI- codes DWPR/DWPN, 'from pointe'; Justin David desk jackie@justindavid.com is the likely source but POI may be an internal PR/JD private-label — CONFIRM whether to chase externally at all"
+ "contact_source": "George/Gmail mining 2026-08-20 (grounded on live outstanding-memo Mfr Patterns): PI- codes DWPR/DWPN, 'from pointe'; Justin David desk jackie@justindavid.com is the likely source but POI may be an internal PR/JD private-label \u2014 CONFIRM whether to chase externally at all",
+ "sample_email": "samples@justindavid.com"
},
"paul": {
"name": "Paul Montgomery",
@@ -321,18 +326,20 @@
"contact_source": "George/Gmail mining 2026-08-25 (grounded on live outstanding-memo Mfr Patterns + account#); MDC Customer Service <cs@mdcwall.com>"
},
"eli": {
- "name": "Elitis (USA — Annalisa Dominguez)",
+ "name": "Elitis (USA \u2014 Annalisa Dominguez)",
"main_email": "ANNALISA@elitis.us",
"account_number": "1062120",
"needs_confirm": true,
- "contact_source": "Steve-corrected 2026-08-25: sent to Elitis USA rep Annalisa <ANNALISA@elitis.us> (not France HQ contact@elitis.fr)"
+ "contact_source": "Steve-corrected 2026-08-25: sent to Elitis USA rep Annalisa <ANNALISA@elitis.us> (not France HQ contact@elitis.fr)",
+ "sample_email": "annalisa@elitis.us"
},
"lin": {
"name": "Lincrusta",
"main_email": "rebecca.cragg@lincrusta.com",
"account_number": "1062465",
"needs_confirm": true,
- "contact_source": "George/Gmail mining 2026-08-25 (grounded on live outstanding-memo Mfr Patterns + account#); active rep Rebecca Cragg (corr. through 8/18/2026) — main/rep fallback per Steve 8/25"
+ "contact_source": "George/Gmail mining 2026-08-25 (grounded on live outstanding-memo Mfr Patterns + account#); active rep Rebecca Cragg (corr. through 8/18/2026) \u2014 main/rep fallback per Steve 8/25",
+ "sample_email": "federico.contigiani@lincrusta.com"
},
"lbi": {
"name": "LBI Boyd (Jill Carol)",
← 4bb9f84 auto-data-snapshot: 2026-09-11T13:23:02 (1 data files) — dat
·
back to Sample Followup Sweep
·
contacts.json: adopt canonical sample desks for dtex + mdc ( 6d72c91 →