CRM Update Strategy

Version 1.1.0 • Updated after live schema + data-source audit • Twenty CRM — Calibrax workspace

The context: Kelvin operates two companies. This Twenty workspace is shared with Calibrax colleagues. YC Ng is Calibrax-only; Alex Tan is dual-role (Calibrax + IIMMPACT). Everything in this workspace is visible to both. No record-level privacy, no team separation, no custom fields, no closed-lost pipeline stage.

The Cardinal Rule

Never put IIMMPACT-exclusive data into this Twenty workspace. IIMMPACT client lists, deal pipelines, pricing, contract terms, competitive intelligence, internal notes — these do not belong here. Full stop.

What Belongs in This Workspace

1. Calibrax-Exclusive Contacts

2. Neutral Shared Contacts

Contacts that genuinely serve both companies, where both sides know about the dual role:

Golden test: Would you cc YC on an email to this person about this topic? If yes, it can live here. If no — especially if IIMMPACT-only — it doesn't. (Alex is dual-role and already has access to both companies, so the test is YC-specific.)

3. Personal / Undecided Pipeline

What Stays OUT

IIMMPACT-Exclusive Data

Sensitive Personal Contacts

Data Source Mapping

SourceIIMMPACT AccountCalibrax AccountCRM Ingestion Rule
Gmailprimary-gmailkelvin@iimmpact.comsecondary-gmailkelvin.lee@calibrax.aiTwenty CRM: use secondary-gmail only
Calendarcalendar_id: "kelvin.lee@iimmpact.com" (primary)calendar_id: "kelvin.lee@calibrax.ai" (reader)Twenty CRM: query kelvin.lee@calibrax.ai only
Driveprimary-drive → IIMMPACT DriveNot connectedTwenty CRM: do not ingest from Drive until Calibrax Drive is connected
Critical finding: The primary-calendar Composio account is connected to Kelvin's Google account (kelvin.lee@iimmpact.com), which has access to multiple calendars. The Calibrax calendar (kelvin.lee@calibrax.ai) is a separate calendar that Kelvin has reader access to. It appears alongside the IIMMPACT calendar in the Google Calendar UI, but it is a distinct calendar_id in the API.

Ingestion Rules

Gmail

Calendar

Drive

Email-Based Company Classification

SignalClassification
Sender domain is @iimmpact.com or @iimmpact.coIIMMPACT internal → skip CRM
Sender domain is @calibrax.aiCalibrax internal → skip CRM (unless external attendee)
External sender, thread includes @calibrax.ai recipientsCalibrax → log to Twenty
External sender, thread includes @iimmpact.com recipientsIIMMPACT → do NOT log to Twenty
External sender, thread includes bothNeutral/shared → log to Twenty with [Neutral]
Unclear from thread participantsFlag for manual review, do not auto-log

Calendar-Based Company Classification

SignalClassification
Event on kelvin.lee@calibrax.ai calendarCalibrax event → ingest into Twenty
Event on kelvin.lee@iimmpact.com (primary) calendarIIMMPACT event → do NOT ingest
Attendees include @calibrax.ai and no @iimmpact.comCalibrax → ingest
Attendees include @iimmpact.com and no @calibrax.aiIIMMPACT → skip
Attendees include both domainsNeutral/shared → ingest with [Neutral]
Event title/description contains "Calibrax"Calibrax → ingest
Event title/description contains "IIMMPACT"IIMMPACT → skip

Logging Workflow

When to Log a Contact

Log when:

  1. A meaningful business interaction occurs (email, meeting, call)
  2. There is ongoing or expected follow-up
  3. The relationship is stable enough to justify structured tracking
  4. It passes the golden test above

Do NOT log:

When to Log an Opportunity

  1. A deal is active (not just "might happen someday")
  2. There is a known company/contact, product, and rough value
  3. There is a next step or expected close timeline
  4. The deal belongs to Calibrax (or is neutral/undecided)

Minimum Data to Capture

Person: Name (first + last), primary email, company link, job title, source of introduction

Company: Name, domain name, industry/description, country/region

Opportunity: Name, stage, amount (if known), close date (if known), linked company/person

Hardcoded pipeline stages: NEW SCREENING MEETING PROPOSAL CUSTOMER
There is no CLOSED_LOST stage. Dead deals must be deleted or left in PROPOSAL. This is a known limitation for B2B sales cycles.

Tagging & Classification

Twenty has no custom tags or custom fields. Use notes with prefixed context:

[Calibrax] — Calibrax-specific context
[IIMMPACT] — DO NOT put in this workspace; keep in local notes
[Neutral] — Shared contact, both companies aware
[Personal] — Kelvin's personal relationship, not yet assigned
Known schema limitations discovered in audit:

Intake Source Tracking

Twenty records createdBy.source automatically. This is immutable:

EMAIL CALENDAR WORKFLOW AGENT API IMPORT MANUAL SYSTEM WEBHOOK APPLICATION

Implication: When I log a contact from an email thread, the source shows EMAIL or API, not the actual origin (e.g., "Money20/20 conference," "YC referral"). Use notes to capture true attribution. There is no custom source field.

Deduplication

Practical workflow: When logging a new contact, first search:
twenty people search --query "<email>" --limit 10
If a match exists, do not create a duplicate.

Workflow Automation

Twenty has a built-in workflow engine:

Workflow statuses: DRAFT ACTIVE DEACTIVATED

Run statuses: NOT_STARTED RUNNING COMPLETED FAILED ENQUEUED STOPPING STOPPED

Task Discipline

Task statuses are simple and effective:

TODO — Open, not started
IN_PROGRESS — Active
DONE — Complete

Use tasks for every concrete next action with a deadline. Link them to the relevant person, company, or opportunity.

Checking Before Logging

  1. Which company does this belong to? → Calibrax, IIMMPACT, or neutral?
  2. If IIMMPACT, is there another place for it? → Yes: local markdown, Notion, Airtable, or a separate CRM.
  3. Would YC be surprised or concerned to see this? → If yes, do not log it here. (Alex is dual-role; YC is the Calibrax-only member.)

Maintenance Cadence

Weekly (Every Friday)

Monthly (First Monday)

Future State: IIMMPACT CRM

When IIMMPACT gets its own CRM (separate Twenty workspace, HubSpot, or other):

  1. Export neutral/shared contacts from this workspace
  2. Import into IIMMPACT CRM
  3. Update this skill to reflect the new dual-CRM architecture
  4. Update workflows to route IIMMPACT contacts to the correct system

Until then, IIMMPACT contacts live in:

Emergency: Accidental IIMMPACT Data in Twenty

  1. Immediately delete the record:
    twenty people delete --id <uuid>
    twenty companies delete --id <uuid>
  2. If linked notes/opportunities exist, delete those first (or they will orphan)
  3. Log the incident locally for awareness
  4. Review what was exposed and whether any follow-up is needed

Skill Invocation

Use this skill when:


Skill: crm-update-strategy — Category: personal-agent-stack — Related: twenty-crm, composio, gmail-composio-guide, google-calendar-composio-guide