← Back to Career Prep

2026-04-27 — Sandbox import session (Mon, full day)

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)


Task list (current state)

# 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).


Session decisions and findings

1. Routing the CSV: Accounts, not Leads

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.

2. Field mapping decisions

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.

3. First import failed (34/34 records)

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").

4. CSV is a deliberate stress test — log what TC does with each pattern

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

5. Subset for first enrichment run (when resumed)

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.)

6. What to log during enrichment (observation framework)

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).

7. UI observations from the Accounts list view

8. Where AI Enrichment likely lives (untested — figure out from docs)

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.


Reading queue (in priority for today)

  1. Docs-AI Enrichment Flow Steps How to Configure and Run Them — core "how do I run it"
  2. Docs-OpenAI Integration Setup — what's plumbed under the hood (Ernesto-relevant)
  3. Docs-Attachment Support for the AI Enrichment Step — possibly relevant to "show-the-sources" recommendation
  4. Docs-Scheduled Flow Executions — automation timing; skim
  5. Docs-Getting Started With Assignment Flows — different TC product (routing); context-only skim
  6. Docs-How-to-Use-History-Logs-in-Lead-Assignment — assignment-specific, but "history logs" = transparency mechanism, 2-min skim

When resuming Task #2

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.


Process notes for future sessions