Demo: Thu 2026-04-30 @ 2:00 PM PT
Sandbox: completedemo--demo239 (logged in as Sales Demo, alias SDemo)
CSV: Traction Complete/sandbox_test_accounts.csv — 34 records, 4 columns
Resume Claude session: claude --resume dd5849f7-db5e-4302-a63f-5430ff7ec34c (from ~/Desktop/stuff/career)
| # | Status | Task |
|---|---|---|
| 1 | ✅ completed | Import 34-account CSV into sandbox |
| 2 | 🟡 in_progress | Run AI Enrichment on a 10–15 record subset |
| 3 | ⬜ pending | Run AI Enrichment on remaining accounts |
| 4 | ⬜ pending | Re-read the 8 signals with sandbox observations in mind |
| 5 | ⬜ pending | Lock core problem + recommendation by EOD Mon |
Currently paused on Task #2 while reading the 6 TC support PDFs (saved to Traction Complete/Docs-*.pdf).
Decision: import to Accounts object, not Leads.
Why:
- File literally named sandbox_test_accounts.csv.
- CSV has zero person-level fields (no Name, Title, Email, Phone). Lead records require a person.
- Demo task is AI Enrichment / industry classification, which is an Account-level workflow in TC. Signals 1, 6, 7, 8 in the brief are all about industry classification on accounts.
Lead-to-Account matching is a different TC product (the one that takes inbound prospects and matches them to existing accounts). Not what's being demoed here.
CSV header → Salesforce field:
| CSV column | Mapped to | Notes |
|---|---|---|
| Account Name | Account: Account Name |
Standard required field |
| Website | Account: Website |
Standard field |
| Global Ultimate Parent Name | ❌ dropped (was Account: Parent Account) |
Caused import failure — see below |
| Global Ultimate Parent Website | Account: OCompany Website |
TC managed-package custom field |
OCompany Website clarification: TC custom field on Account object (likely API name complete__OCompany_Website__c or similar with a managed-package namespace prefix — verify by clicking "Change" on the field mapping row if you want to confirm). Stores the ultimate parent's website. Example data showed meta.com written against both Instagram and WhatsApp records — confirms purpose.
Removed Contacts: Website mapping: correct call. CSV has no person fields, no Last Name → no Contact records would have been created anyway, but cleaner to strip the duplicate.
Error: MALFORMED_ID:Parent Account ID: id value of incorrect type: Meta Platforms Inc:ParentId
Root cause: Account: Parent Account is a lookup field — expects a Salesforce Account ID, not a name string. The wizard tried to resolve "Meta Platforms Inc" to an existing record, found nothing (the parent companies aren't in the CSV as their own rows), and shipped the raw string up to the Bulk API. API rejected every row.
Fix applied: dropped the Global Ultimate Parent Name → Account: Parent Account mapping entirely. Re-imported. 34/34 succeeded.
Why this fix is right for the demo (not just the easy fix):
- TC's hierarchy product is supposed to build parent linkages from enrichment. Pre-seeding them removes the thing being demoed.
- OCompany Website still carries the parent domain hint, which TC can use.
- Watching TC infer parents from meta.com / alphabet.com / etc. is the demo. Whether TC nails the disambiguation traps (Apple Records → Apple Corps Ltd vs. Apple Music → Apple Inc) is the moment.
Demo-relevant observation: the import failure itself is friction any RevOps person seeding accounts hits. Not central to the demo, but the kind of grounded sandbox detail Bryan said he wants ("show me you actually used the product").
| Pattern | Records | What to watch for |
|---|---|---|
| Mainstream baseline | Google LLC, Amazon Web Services, GitHub Inc | Speed; correctness on easy cases |
| Duplicate variants | Instagram Inc / Instagram, Slack Technologies LLC / Slack Technologies, WhatsApp LLC / WhatsApp International, GitHub Inc / GitHub, LinkedIn Corporation / LinkedIn, etc. | Does TC merge, dedupe, flag, or silently double-count? |
| Disambiguation trap | Apple Records → Apple Corps Ltd (Beatles' company) vs. Apple Music → Apple Inc (tech) | If TC gets this wrong, it's a gift for the demo — concrete evidence that explainability matters (Signal 1) |
| Subsidiary chains | Google Nest, Nest Labs (both Alphabet) | Recognizes same parent through different acquisition paths? |
| Self-parents | Zapier → Zapier Inc, Zendesk → Zendesk Inc | Meaningful hierarchy or noise? |
| Less-obvious mid-tier | Tumblr Inc, Jet.com, Motorola Mobility | Coverage breadth |
Hand-picked 11 records across the patterns above:
- Mainstream: Google LLC, Amazon Web Services, GitHub Inc
- Duplicate variants: Instagram Inc + Instagram, Slack Technologies LLC + Slack Technologies
- Disambiguation: Apple Records, Apple Music, Beats Electronics
- Subsidiary chain: Google Nest, Nest Labs
- Mid-tier: Tumblr Inc, Jet.com
(That's actually 13. Trim to 10–15.)
Open a scratch doc before kicking off enrichment. Per record:
Killer tests to specifically inspect after enrichment:
- Apple Records vs. Apple Music — did TC route them to different parents? Screenshot whatever it shows. Right or wrong, this is your demo opener.
- Instagram Inc vs. Instagram — two enriched records? Merged? Flagged?
If TC shows zero sources/confidence/reasoning today, that's a gift — it makes the gap your recommendation closes very concrete (the "substrate + surface" framing from yesterday's session).
*Accounts To Clean, Prospect Accounts, *My Target Accounts) — built for the previous seed dataset that got wiped when TC re-staged the sandbox. Mostly empty filters now.Three places to check (unconfirmed until docs are read):
1. Per-record action on the Account detail page (button or related-list action)
2. Complete Home tab — TC's dashboard; previously showed "43k matched / 66k processed" before re-staging. Likely the entry to run/monitor enrichment.
3. Traction Complete Setup tab — admin config for the AI Enrichment Flow.
The PDF Docs-AI Enrichment Flow Steps How to Configure and Run Them.pdf will answer this.
Two things to come back with from the docs:
1. Where AI Enrichment lives in the UI — entry point from the docs (per-record? batch? Complete Home? Setup screen?)
2. What the substrate looks like — what TC actually captures vs. doesn't (sources, confidence, reasoning storage?). This directly informs whether the "substrate + surface" recommendation needs to add substrate or just expose existing substrate.