Contact, Deal, Signal Event, Cohort, and Engagement all attach to Company. Signal Event optionally triggers a Deal, which generates a Cohort on Closed Won.
erDiagram
COMPANY ||--o{ CONTACT : has
COMPANY ||--o{ DEAL : has
COMPANY ||--o{ COHORT : has
COMPANY ||--o{ SIGNAL_EVENT : fires
COMPANY ||--o{ ENGAGEMENT : logs
CONTACT ||--o{ ENGAGEMENT : participates
DEAL ||--o| COHORT : creates
SIGNAL_EVENT }o--o| DEAL : triggers
COMPANY {
string company_id PK
string company_linkedin_url
string normalized_domain
string company_name
int headcount
string funding_stage
string hr_tech_stack
int icp_fit
int icp_timing
int icp_access
int icp_intent
int icp_budget
int icp_total
string lifecycle_stage
json dedup_audit
}
CONTACT {
string contact_id PK
string company_id FK
string email
string personal_linkedin_url
string first_name
string last_name
string title
string buyer_role
string original_source
int engagement_score
}
DEAL {
string deal_id PK
string company_id FK
string deal_stage
string tier
int seats
float acv
date expected_close
string triggering_signal_id FK
}
COHORT {
string cohort_id PK
string deal_id FK
string company_id FK
date start_date
int seat_count
float nps_score
int expansion_signals
string renewal_status
}
SIGNAL_EVENT {
string signal_id PK
string company_id FK
string signal_type
string signal_source
date signal_date
int signal_weight
bool ai_drafted
}
ENGAGEMENT {
string engagement_id PK
string contact_id FK
string company_id FK
string channel
date timestamp
string direction
string avoma_transcript_id
}
Deterministic entry and exit rules per stage. ICP score gates Subscriber to MQL. Manual SDR confirmation is the human in the loop at MQL to SQL. Customer to Expansion turns expansion into a measurable motion rather than a side effect.
stateDiagram-v2
direction LR
[*] --> Subscriber
Subscriber --> Lead : ICP Fit >= 2 + engagement
Lead --> MQL : ICP Total >= 11
MQL --> SQL : SDR confirms + meeting booked
SQL --> Opportunity : Deal created
Opportunity --> Customer : Closed Won
Customer --> Expansion : new Deal on same Company
Customer --> Dormant : cohort complete + 90d silence
Expansion --> Customer : Closed Won
Dormant --> Lead : re-engagement event