You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(crm-starter-export): opportunities land — 96 deals in "Fully Introduced", tracker truth preserved per-record
The gated stub becomes the real pass, per operator rulings: name is
"Pipeline Export April 2026" for single-deal orgs, the tracker's own row
name for multi-row orgs and unattached rows (an anonymous card with no
company would be unfindable); amount blank by explicit ruling; company
attached via augmentItSlug; pointOfContact only on the five
person-anchored deals; stage = the operator-created "Fully Introduced"
for everything — with the tracker's real stage (Money In / Declined / …)
preserved in a pipelineStage custom TEXT field so deal-state survives
the flattening. Round-trip key: augmentItRowName (tracker row names are
unique across the 96).
First live run: 96 created, 0 failed; companies and people idempotent
(0 to create). The old ensure-stage-options diff message retired — the
single-stage ruling superseded it.
Files changed:
- scripts/import-crm-starter-to-twenty.mjs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RW28dw3kQAKXr2ZNefCukE
// Operator ruling 2026-07-28: ALL imported opportunities land in the
248
+
// operator-created "Fully Introduced" stage; the tracker's own stage is
249
+
// preserved per-record in the pipelineStage custom field, NOT as options.
247
250
if(missing.length){
248
-
console.log(` MISSING stage options (created ahead of opportunities when --live --with-opportunities): ${missing.join(' · ')}`);
249
-
}else{
250
-
console.log(' all tracker stages present as options');
251
+
console.log(` tracker stages NOT mirrored as options (by ruling — preserved in pipelineStage): ${missing.join(' · ')}`);
251
252
}
252
253
}
253
254
@@ -344,6 +345,71 @@ for (const p of people) {
344
345
}
345
346
if(repaired)console.log(`attach-repair: ${repaired} people gained their company (null-only fill)`);
346
347
console.log('\nVERIFY: spot-check five companies for link fidelity, three multi-affiliation people, then re-run this script — it should report 0 to create (the external-id round-trip proof).');
0 commit comments