@unified-product-graph/core 0.23.1 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/README.md +1 -1
- package/dist/index.cjs +159 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +201 -3
- package/dist/index.d.ts +201 -3
- package/dist/index.js +159 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1476,6 +1476,7 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
1476
1476
|
classification: "hierarchy";
|
|
1477
1477
|
source_type: string;
|
|
1478
1478
|
target_type: string;
|
|
1479
|
+
cross_product_eligible: true;
|
|
1479
1480
|
};
|
|
1480
1481
|
epic_affected_by_bug: {
|
|
1481
1482
|
forward_verb: string;
|
|
@@ -1483,6 +1484,7 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
1483
1484
|
classification: "hierarchy";
|
|
1484
1485
|
source_type: string;
|
|
1485
1486
|
target_type: string;
|
|
1487
|
+
cross_product_eligible: true;
|
|
1486
1488
|
};
|
|
1487
1489
|
task_has_subtask: {
|
|
1488
1490
|
forward_verb: string;
|
|
@@ -7641,6 +7643,120 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
7641
7643
|
cross_product_eligible: true;
|
|
7642
7644
|
deliberate_only: true;
|
|
7643
7645
|
};
|
|
7646
|
+
deal_involves_contact: {
|
|
7647
|
+
forward_verb: string;
|
|
7648
|
+
reverse_verb: string;
|
|
7649
|
+
classification: "semantic";
|
|
7650
|
+
source_type: string;
|
|
7651
|
+
target_type: string;
|
|
7652
|
+
};
|
|
7653
|
+
deal_challenged_by_objection: {
|
|
7654
|
+
forward_verb: string;
|
|
7655
|
+
reverse_verb: string;
|
|
7656
|
+
classification: "cross-domain";
|
|
7657
|
+
source_type: string;
|
|
7658
|
+
target_type: string;
|
|
7659
|
+
};
|
|
7660
|
+
deal_armed_with_competitive_battle_card: {
|
|
7661
|
+
forward_verb: string;
|
|
7662
|
+
reverse_verb: string;
|
|
7663
|
+
classification: "cross-domain";
|
|
7664
|
+
source_type: string;
|
|
7665
|
+
target_type: string;
|
|
7666
|
+
};
|
|
7667
|
+
deal_lost_to_competitor: {
|
|
7668
|
+
forward_verb: string;
|
|
7669
|
+
reverse_verb: string;
|
|
7670
|
+
classification: "causal";
|
|
7671
|
+
source_type: string;
|
|
7672
|
+
target_type: string;
|
|
7673
|
+
};
|
|
7674
|
+
deal_closed_via_contract: {
|
|
7675
|
+
forward_verb: string;
|
|
7676
|
+
reverse_verb: string;
|
|
7677
|
+
classification: "cross-domain";
|
|
7678
|
+
source_type: string;
|
|
7679
|
+
target_type: string;
|
|
7680
|
+
};
|
|
7681
|
+
deal_blocked_by_feature: {
|
|
7682
|
+
forward_verb: string;
|
|
7683
|
+
reverse_verb: string;
|
|
7684
|
+
classification: "cross-domain";
|
|
7685
|
+
source_type: string;
|
|
7686
|
+
target_type: string;
|
|
7687
|
+
cross_product_eligible: true;
|
|
7688
|
+
};
|
|
7689
|
+
research_study_analyzes_deal: {
|
|
7690
|
+
forward_verb: string;
|
|
7691
|
+
reverse_verb: string;
|
|
7692
|
+
classification: "cross-domain";
|
|
7693
|
+
source_type: string;
|
|
7694
|
+
target_type: string;
|
|
7695
|
+
cross_product_eligible: true;
|
|
7696
|
+
};
|
|
7697
|
+
account_raises_support_ticket: {
|
|
7698
|
+
forward_verb: string;
|
|
7699
|
+
reverse_verb: string;
|
|
7700
|
+
classification: "cross-domain";
|
|
7701
|
+
source_type: string;
|
|
7702
|
+
target_type: string;
|
|
7703
|
+
};
|
|
7704
|
+
account_health_scored_via_customer_health_score: {
|
|
7705
|
+
forward_verb: string;
|
|
7706
|
+
reverse_verb: string;
|
|
7707
|
+
classification: "cross-domain";
|
|
7708
|
+
source_type: string;
|
|
7709
|
+
target_type: string;
|
|
7710
|
+
};
|
|
7711
|
+
account_lost_because_churn_reason: {
|
|
7712
|
+
forward_verb: string;
|
|
7713
|
+
reverse_verb: string;
|
|
7714
|
+
classification: "cross-domain";
|
|
7715
|
+
source_type: string;
|
|
7716
|
+
target_type: string;
|
|
7717
|
+
};
|
|
7718
|
+
account_implements_via_project: {
|
|
7719
|
+
forward_verb: string;
|
|
7720
|
+
reverse_verb: string;
|
|
7721
|
+
classification: "cross-domain";
|
|
7722
|
+
source_type: string;
|
|
7723
|
+
target_type: string;
|
|
7724
|
+
};
|
|
7725
|
+
subscription_renews_via_deal: {
|
|
7726
|
+
forward_verb: string;
|
|
7727
|
+
reverse_verb: string;
|
|
7728
|
+
classification: "causal";
|
|
7729
|
+
source_type: string;
|
|
7730
|
+
target_type: string;
|
|
7731
|
+
};
|
|
7732
|
+
account_participates_in_beta_program: {
|
|
7733
|
+
forward_verb: string;
|
|
7734
|
+
reverse_verb: string;
|
|
7735
|
+
classification: "cross-domain";
|
|
7736
|
+
source_type: string;
|
|
7737
|
+
target_type: string;
|
|
7738
|
+
};
|
|
7739
|
+
deal_gated_by_security_review: {
|
|
7740
|
+
forward_verb: string;
|
|
7741
|
+
reverse_verb: string;
|
|
7742
|
+
classification: "cross-domain";
|
|
7743
|
+
source_type: string;
|
|
7744
|
+
target_type: string;
|
|
7745
|
+
};
|
|
7746
|
+
feature_communicated_via_messaging: {
|
|
7747
|
+
forward_verb: string;
|
|
7748
|
+
reverse_verb: string;
|
|
7749
|
+
classification: "cross-domain";
|
|
7750
|
+
source_type: string;
|
|
7751
|
+
target_type: string;
|
|
7752
|
+
};
|
|
7753
|
+
launch_coordinated_via_project: {
|
|
7754
|
+
forward_verb: string;
|
|
7755
|
+
reverse_verb: string;
|
|
7756
|
+
classification: "cross-domain";
|
|
7757
|
+
source_type: string;
|
|
7758
|
+
target_type: string;
|
|
7759
|
+
};
|
|
7644
7760
|
};
|
|
7645
7761
|
/** The `UPGEdgeType` union derived from the registry above. Declared here (not
|
|
7646
7762
|
* in `shapes/edges.ts`) so the polymorphic list below can reference it
|
|
@@ -11843,6 +11959,18 @@ interface EmptyCell {
|
|
|
11843
11959
|
* const properties: ClassificationAxisProperties = {
|
|
11844
11960
|
* axis_kind: 'categorical',
|
|
11845
11961
|
* }
|
|
11962
|
+
*
|
|
11963
|
+
* @example
|
|
11964
|
+
* // Canonical governance axis `change_blast_radius` (ordinal): grade a change /
|
|
11965
|
+
* // feature / decision by how much risk it carries, so review ceremony and
|
|
11966
|
+
* // agent-autonomy gating scale with reach. Four ordered values —
|
|
11967
|
+
* // Trivial(0) < Standard(1) < Significant(2) < Critical(3) — classified via the
|
|
11968
|
+
* // polymorphic `node_classified_as_classification_value` edge. Report metrics
|
|
11969
|
+
* // WITHIN tier (pooling across tiers is Simpson's-paradox bait). See
|
|
11970
|
+
* // decisions/2026-07-15-change-blast-radius-axis.md.
|
|
11971
|
+
* const properties: ClassificationAxisProperties = {
|
|
11972
|
+
* axis_kind: 'ordinal',
|
|
11973
|
+
* }
|
|
11846
11974
|
*/
|
|
11847
11975
|
interface ClassificationAxisProperties {
|
|
11848
11976
|
/**
|
|
@@ -17496,8 +17624,10 @@ interface PositioningProperties {
|
|
|
17496
17624
|
* }
|
|
17497
17625
|
*/
|
|
17498
17626
|
interface MessagingProperties {
|
|
17499
|
-
/** Channel this messaging variant is crafted for
|
|
17500
|
-
|
|
17627
|
+
/** Channel this messaging variant is crafted for. `enablement` is the internal
|
|
17628
|
+
* field-ops channel (SE/PMM/SA enablement one-pagers, battlecards' narrative),
|
|
17629
|
+
* distinct from `pitch` (external, customer-facing). */
|
|
17630
|
+
channel?: 'landing_page' | 'email' | 'social' | 'ad' | 'pitch' | 'press' | 'in_product' | 'enablement' | 'other';
|
|
17501
17631
|
/** Marketing funnel stage this variant targets */
|
|
17502
17632
|
funnel_stage?: 'awareness' | 'consideration' | 'conversion' | 'retention';
|
|
17503
17633
|
/** Primary headline or hook */
|
|
@@ -17786,6 +17916,26 @@ interface AccountProperties {
|
|
|
17786
17916
|
industry?: string;
|
|
17787
17917
|
/** Number of employees at the account */
|
|
17788
17918
|
employee_count?: number;
|
|
17919
|
+
/**
|
|
17920
|
+
* Go-to-market tier this account is served at. A segmentation *decision*
|
|
17921
|
+
* (how the field org treats the account), distinct from `employee_count`
|
|
17922
|
+
* (a raw fact) and aligned with but not identical to the ideal customer
|
|
17923
|
+
* profile's `company_size` buckets. `strategic` is the tier that escalates
|
|
17924
|
+
* to a dedicated account-plan graph (Tier 3 client model).
|
|
17925
|
+
*/
|
|
17926
|
+
segment?: 'smb' | 'mid_market' | 'enterprise' | 'strategic';
|
|
17927
|
+
/**
|
|
17928
|
+
* Annual contract value in the account's billing currency. The single most
|
|
17929
|
+
* common enterprise account-tiering input; a snapshot that changes on
|
|
17930
|
+
* expansion or renewal.
|
|
17931
|
+
*/
|
|
17932
|
+
annual_contract_value?: number;
|
|
17933
|
+
/**
|
|
17934
|
+
* Geographic region the account is managed in (e.g. "EMEA", "NA-West").
|
|
17935
|
+
* Free-form: territory taxonomies vary by org and are modelled structurally
|
|
17936
|
+
* via the `territory` entity when they need to be queryable.
|
|
17937
|
+
*/
|
|
17938
|
+
region?: string;
|
|
17789
17939
|
}
|
|
17790
17940
|
/** Contact.
|
|
17791
17941
|
*
|
|
@@ -17799,6 +17949,15 @@ interface ContactProperties {
|
|
|
17799
17949
|
contact_role?: string;
|
|
17800
17950
|
/** Whether this person has purchasing authority */
|
|
17801
17951
|
is_decision_maker?: boolean;
|
|
17952
|
+
/**
|
|
17953
|
+
* Role this contact plays in the buying committee (the decision-making unit).
|
|
17954
|
+
* The substrate of enterprise multi-threading and of qualification frameworks
|
|
17955
|
+
* (MEDDICC/SPICED): a deal with no `champion` and no `economic_buyer` mapped is
|
|
17956
|
+
* single-threaded and at risk. `is_decision_maker` becomes largely derivable
|
|
17957
|
+
* (`buying_role = economic_buyer`) but is kept for back-compat.
|
|
17958
|
+
* @example 'economic_buyer'
|
|
17959
|
+
*/
|
|
17960
|
+
buying_role?: 'champion' | 'economic_buyer' | 'technical_evaluator' | 'end_user' | 'detractor' | 'influencer' | 'procurement' | 'legal' | 'security';
|
|
17802
17961
|
}
|
|
17803
17962
|
/** Lead.
|
|
17804
17963
|
*
|
|
@@ -17834,6 +17993,45 @@ interface DealProperties {
|
|
|
17834
17993
|
close_date?: ISODate;
|
|
17835
17994
|
/** Likelihood of closing (0-100%) */
|
|
17836
17995
|
probability?: number;
|
|
17996
|
+
/**
|
|
17997
|
+
* Terminal result of the deal. An Event-axis outcome (the verdict on a
|
|
17998
|
+
* one-time event), NOT a lifecycle phase, so it is `deal_outcome` and not
|
|
17999
|
+
* `deal_status` per the status-convention Rule 3. Lifecycle (open/won/lost as
|
|
18000
|
+
* phases) belongs on the base `status` slot; this records the win/loss verdict
|
|
18001
|
+
* a closed deal carries and gives `deal_lost_to_competitor` / win-loss study
|
|
18002
|
+
* derivations their anchor.
|
|
18003
|
+
* @example 'won'
|
|
18004
|
+
*/
|
|
18005
|
+
deal_outcome?: 'won' | 'lost' | 'no_decision';
|
|
18006
|
+
/**
|
|
18007
|
+
* Motion this deal belongs to. Mirrors `PipelineSales.pipeline_type` at the
|
|
18008
|
+
* deal grain; `renewal` is the value `subscription_renews_via_deal` points at.
|
|
18009
|
+
* @example 'expansion'
|
|
18010
|
+
*/
|
|
18011
|
+
deal_type?: 'new_business' | 'expansion' | 'renewal';
|
|
18012
|
+
/**
|
|
18013
|
+
* The single most-used CRM field: the next concrete action to move the deal.
|
|
18014
|
+
* Free text on purpose (a coordination note, not a structured task).
|
|
18015
|
+
* @example 'Send security questionnaire to procurement'
|
|
18016
|
+
*/
|
|
18017
|
+
next_step?: string;
|
|
18018
|
+
/** When the `next_step` is due (ISO format). */
|
|
18019
|
+
next_step_date?: ISODate;
|
|
18020
|
+
/**
|
|
18021
|
+
* Qualification framework this deal is scored against. Names the rubric so the
|
|
18022
|
+
* `qualification_score` is interpretable; per-pillar booleans (MEDDICC's Metrics /
|
|
18023
|
+
* Economic buyer / Decision criteria / …) are deferred until `custom` recurrence
|
|
18024
|
+
* proves the demand.
|
|
18025
|
+
* @example 'meddicc'
|
|
18026
|
+
*/
|
|
18027
|
+
qualification_framework?: 'meddicc' | 'bant' | 'spiced' | 'custom';
|
|
18028
|
+
/**
|
|
18029
|
+
* How well-qualified the deal is, on the canonical `confidence_5` scale
|
|
18030
|
+
* (UPGAssessment: numeric value plus a high/medium/low label). Coarse by
|
|
18031
|
+
* design; the granular per-pillar breakdown is deferred (see
|
|
18032
|
+
* `qualification_framework`).
|
|
18033
|
+
*/
|
|
18034
|
+
qualification_score?: UPGAssessment;
|
|
17837
18035
|
}
|
|
17838
18036
|
/** Sales pipeline.
|
|
17839
18037
|
*
|
|
@@ -22540,7 +22738,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
22540
22738
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
22541
22739
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
22542
22740
|
*/
|
|
22543
|
-
declare const UPG_VERSION: "0.
|
|
22741
|
+
declare const UPG_VERSION: "0.24.0";
|
|
22544
22742
|
/**
|
|
22545
22743
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
22546
22744
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.d.ts
CHANGED
|
@@ -1476,6 +1476,7 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
1476
1476
|
classification: "hierarchy";
|
|
1477
1477
|
source_type: string;
|
|
1478
1478
|
target_type: string;
|
|
1479
|
+
cross_product_eligible: true;
|
|
1479
1480
|
};
|
|
1480
1481
|
epic_affected_by_bug: {
|
|
1481
1482
|
forward_verb: string;
|
|
@@ -1483,6 +1484,7 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
1483
1484
|
classification: "hierarchy";
|
|
1484
1485
|
source_type: string;
|
|
1485
1486
|
target_type: string;
|
|
1487
|
+
cross_product_eligible: true;
|
|
1486
1488
|
};
|
|
1487
1489
|
task_has_subtask: {
|
|
1488
1490
|
forward_verb: string;
|
|
@@ -7641,6 +7643,120 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
7641
7643
|
cross_product_eligible: true;
|
|
7642
7644
|
deliberate_only: true;
|
|
7643
7645
|
};
|
|
7646
|
+
deal_involves_contact: {
|
|
7647
|
+
forward_verb: string;
|
|
7648
|
+
reverse_verb: string;
|
|
7649
|
+
classification: "semantic";
|
|
7650
|
+
source_type: string;
|
|
7651
|
+
target_type: string;
|
|
7652
|
+
};
|
|
7653
|
+
deal_challenged_by_objection: {
|
|
7654
|
+
forward_verb: string;
|
|
7655
|
+
reverse_verb: string;
|
|
7656
|
+
classification: "cross-domain";
|
|
7657
|
+
source_type: string;
|
|
7658
|
+
target_type: string;
|
|
7659
|
+
};
|
|
7660
|
+
deal_armed_with_competitive_battle_card: {
|
|
7661
|
+
forward_verb: string;
|
|
7662
|
+
reverse_verb: string;
|
|
7663
|
+
classification: "cross-domain";
|
|
7664
|
+
source_type: string;
|
|
7665
|
+
target_type: string;
|
|
7666
|
+
};
|
|
7667
|
+
deal_lost_to_competitor: {
|
|
7668
|
+
forward_verb: string;
|
|
7669
|
+
reverse_verb: string;
|
|
7670
|
+
classification: "causal";
|
|
7671
|
+
source_type: string;
|
|
7672
|
+
target_type: string;
|
|
7673
|
+
};
|
|
7674
|
+
deal_closed_via_contract: {
|
|
7675
|
+
forward_verb: string;
|
|
7676
|
+
reverse_verb: string;
|
|
7677
|
+
classification: "cross-domain";
|
|
7678
|
+
source_type: string;
|
|
7679
|
+
target_type: string;
|
|
7680
|
+
};
|
|
7681
|
+
deal_blocked_by_feature: {
|
|
7682
|
+
forward_verb: string;
|
|
7683
|
+
reverse_verb: string;
|
|
7684
|
+
classification: "cross-domain";
|
|
7685
|
+
source_type: string;
|
|
7686
|
+
target_type: string;
|
|
7687
|
+
cross_product_eligible: true;
|
|
7688
|
+
};
|
|
7689
|
+
research_study_analyzes_deal: {
|
|
7690
|
+
forward_verb: string;
|
|
7691
|
+
reverse_verb: string;
|
|
7692
|
+
classification: "cross-domain";
|
|
7693
|
+
source_type: string;
|
|
7694
|
+
target_type: string;
|
|
7695
|
+
cross_product_eligible: true;
|
|
7696
|
+
};
|
|
7697
|
+
account_raises_support_ticket: {
|
|
7698
|
+
forward_verb: string;
|
|
7699
|
+
reverse_verb: string;
|
|
7700
|
+
classification: "cross-domain";
|
|
7701
|
+
source_type: string;
|
|
7702
|
+
target_type: string;
|
|
7703
|
+
};
|
|
7704
|
+
account_health_scored_via_customer_health_score: {
|
|
7705
|
+
forward_verb: string;
|
|
7706
|
+
reverse_verb: string;
|
|
7707
|
+
classification: "cross-domain";
|
|
7708
|
+
source_type: string;
|
|
7709
|
+
target_type: string;
|
|
7710
|
+
};
|
|
7711
|
+
account_lost_because_churn_reason: {
|
|
7712
|
+
forward_verb: string;
|
|
7713
|
+
reverse_verb: string;
|
|
7714
|
+
classification: "cross-domain";
|
|
7715
|
+
source_type: string;
|
|
7716
|
+
target_type: string;
|
|
7717
|
+
};
|
|
7718
|
+
account_implements_via_project: {
|
|
7719
|
+
forward_verb: string;
|
|
7720
|
+
reverse_verb: string;
|
|
7721
|
+
classification: "cross-domain";
|
|
7722
|
+
source_type: string;
|
|
7723
|
+
target_type: string;
|
|
7724
|
+
};
|
|
7725
|
+
subscription_renews_via_deal: {
|
|
7726
|
+
forward_verb: string;
|
|
7727
|
+
reverse_verb: string;
|
|
7728
|
+
classification: "causal";
|
|
7729
|
+
source_type: string;
|
|
7730
|
+
target_type: string;
|
|
7731
|
+
};
|
|
7732
|
+
account_participates_in_beta_program: {
|
|
7733
|
+
forward_verb: string;
|
|
7734
|
+
reverse_verb: string;
|
|
7735
|
+
classification: "cross-domain";
|
|
7736
|
+
source_type: string;
|
|
7737
|
+
target_type: string;
|
|
7738
|
+
};
|
|
7739
|
+
deal_gated_by_security_review: {
|
|
7740
|
+
forward_verb: string;
|
|
7741
|
+
reverse_verb: string;
|
|
7742
|
+
classification: "cross-domain";
|
|
7743
|
+
source_type: string;
|
|
7744
|
+
target_type: string;
|
|
7745
|
+
};
|
|
7746
|
+
feature_communicated_via_messaging: {
|
|
7747
|
+
forward_verb: string;
|
|
7748
|
+
reverse_verb: string;
|
|
7749
|
+
classification: "cross-domain";
|
|
7750
|
+
source_type: string;
|
|
7751
|
+
target_type: string;
|
|
7752
|
+
};
|
|
7753
|
+
launch_coordinated_via_project: {
|
|
7754
|
+
forward_verb: string;
|
|
7755
|
+
reverse_verb: string;
|
|
7756
|
+
classification: "cross-domain";
|
|
7757
|
+
source_type: string;
|
|
7758
|
+
target_type: string;
|
|
7759
|
+
};
|
|
7644
7760
|
};
|
|
7645
7761
|
/** The `UPGEdgeType` union derived from the registry above. Declared here (not
|
|
7646
7762
|
* in `shapes/edges.ts`) so the polymorphic list below can reference it
|
|
@@ -11843,6 +11959,18 @@ interface EmptyCell {
|
|
|
11843
11959
|
* const properties: ClassificationAxisProperties = {
|
|
11844
11960
|
* axis_kind: 'categorical',
|
|
11845
11961
|
* }
|
|
11962
|
+
*
|
|
11963
|
+
* @example
|
|
11964
|
+
* // Canonical governance axis `change_blast_radius` (ordinal): grade a change /
|
|
11965
|
+
* // feature / decision by how much risk it carries, so review ceremony and
|
|
11966
|
+
* // agent-autonomy gating scale with reach. Four ordered values —
|
|
11967
|
+
* // Trivial(0) < Standard(1) < Significant(2) < Critical(3) — classified via the
|
|
11968
|
+
* // polymorphic `node_classified_as_classification_value` edge. Report metrics
|
|
11969
|
+
* // WITHIN tier (pooling across tiers is Simpson's-paradox bait). See
|
|
11970
|
+
* // decisions/2026-07-15-change-blast-radius-axis.md.
|
|
11971
|
+
* const properties: ClassificationAxisProperties = {
|
|
11972
|
+
* axis_kind: 'ordinal',
|
|
11973
|
+
* }
|
|
11846
11974
|
*/
|
|
11847
11975
|
interface ClassificationAxisProperties {
|
|
11848
11976
|
/**
|
|
@@ -17496,8 +17624,10 @@ interface PositioningProperties {
|
|
|
17496
17624
|
* }
|
|
17497
17625
|
*/
|
|
17498
17626
|
interface MessagingProperties {
|
|
17499
|
-
/** Channel this messaging variant is crafted for
|
|
17500
|
-
|
|
17627
|
+
/** Channel this messaging variant is crafted for. `enablement` is the internal
|
|
17628
|
+
* field-ops channel (SE/PMM/SA enablement one-pagers, battlecards' narrative),
|
|
17629
|
+
* distinct from `pitch` (external, customer-facing). */
|
|
17630
|
+
channel?: 'landing_page' | 'email' | 'social' | 'ad' | 'pitch' | 'press' | 'in_product' | 'enablement' | 'other';
|
|
17501
17631
|
/** Marketing funnel stage this variant targets */
|
|
17502
17632
|
funnel_stage?: 'awareness' | 'consideration' | 'conversion' | 'retention';
|
|
17503
17633
|
/** Primary headline or hook */
|
|
@@ -17786,6 +17916,26 @@ interface AccountProperties {
|
|
|
17786
17916
|
industry?: string;
|
|
17787
17917
|
/** Number of employees at the account */
|
|
17788
17918
|
employee_count?: number;
|
|
17919
|
+
/**
|
|
17920
|
+
* Go-to-market tier this account is served at. A segmentation *decision*
|
|
17921
|
+
* (how the field org treats the account), distinct from `employee_count`
|
|
17922
|
+
* (a raw fact) and aligned with but not identical to the ideal customer
|
|
17923
|
+
* profile's `company_size` buckets. `strategic` is the tier that escalates
|
|
17924
|
+
* to a dedicated account-plan graph (Tier 3 client model).
|
|
17925
|
+
*/
|
|
17926
|
+
segment?: 'smb' | 'mid_market' | 'enterprise' | 'strategic';
|
|
17927
|
+
/**
|
|
17928
|
+
* Annual contract value in the account's billing currency. The single most
|
|
17929
|
+
* common enterprise account-tiering input; a snapshot that changes on
|
|
17930
|
+
* expansion or renewal.
|
|
17931
|
+
*/
|
|
17932
|
+
annual_contract_value?: number;
|
|
17933
|
+
/**
|
|
17934
|
+
* Geographic region the account is managed in (e.g. "EMEA", "NA-West").
|
|
17935
|
+
* Free-form: territory taxonomies vary by org and are modelled structurally
|
|
17936
|
+
* via the `territory` entity when they need to be queryable.
|
|
17937
|
+
*/
|
|
17938
|
+
region?: string;
|
|
17789
17939
|
}
|
|
17790
17940
|
/** Contact.
|
|
17791
17941
|
*
|
|
@@ -17799,6 +17949,15 @@ interface ContactProperties {
|
|
|
17799
17949
|
contact_role?: string;
|
|
17800
17950
|
/** Whether this person has purchasing authority */
|
|
17801
17951
|
is_decision_maker?: boolean;
|
|
17952
|
+
/**
|
|
17953
|
+
* Role this contact plays in the buying committee (the decision-making unit).
|
|
17954
|
+
* The substrate of enterprise multi-threading and of qualification frameworks
|
|
17955
|
+
* (MEDDICC/SPICED): a deal with no `champion` and no `economic_buyer` mapped is
|
|
17956
|
+
* single-threaded and at risk. `is_decision_maker` becomes largely derivable
|
|
17957
|
+
* (`buying_role = economic_buyer`) but is kept for back-compat.
|
|
17958
|
+
* @example 'economic_buyer'
|
|
17959
|
+
*/
|
|
17960
|
+
buying_role?: 'champion' | 'economic_buyer' | 'technical_evaluator' | 'end_user' | 'detractor' | 'influencer' | 'procurement' | 'legal' | 'security';
|
|
17802
17961
|
}
|
|
17803
17962
|
/** Lead.
|
|
17804
17963
|
*
|
|
@@ -17834,6 +17993,45 @@ interface DealProperties {
|
|
|
17834
17993
|
close_date?: ISODate;
|
|
17835
17994
|
/** Likelihood of closing (0-100%) */
|
|
17836
17995
|
probability?: number;
|
|
17996
|
+
/**
|
|
17997
|
+
* Terminal result of the deal. An Event-axis outcome (the verdict on a
|
|
17998
|
+
* one-time event), NOT a lifecycle phase, so it is `deal_outcome` and not
|
|
17999
|
+
* `deal_status` per the status-convention Rule 3. Lifecycle (open/won/lost as
|
|
18000
|
+
* phases) belongs on the base `status` slot; this records the win/loss verdict
|
|
18001
|
+
* a closed deal carries and gives `deal_lost_to_competitor` / win-loss study
|
|
18002
|
+
* derivations their anchor.
|
|
18003
|
+
* @example 'won'
|
|
18004
|
+
*/
|
|
18005
|
+
deal_outcome?: 'won' | 'lost' | 'no_decision';
|
|
18006
|
+
/**
|
|
18007
|
+
* Motion this deal belongs to. Mirrors `PipelineSales.pipeline_type` at the
|
|
18008
|
+
* deal grain; `renewal` is the value `subscription_renews_via_deal` points at.
|
|
18009
|
+
* @example 'expansion'
|
|
18010
|
+
*/
|
|
18011
|
+
deal_type?: 'new_business' | 'expansion' | 'renewal';
|
|
18012
|
+
/**
|
|
18013
|
+
* The single most-used CRM field: the next concrete action to move the deal.
|
|
18014
|
+
* Free text on purpose (a coordination note, not a structured task).
|
|
18015
|
+
* @example 'Send security questionnaire to procurement'
|
|
18016
|
+
*/
|
|
18017
|
+
next_step?: string;
|
|
18018
|
+
/** When the `next_step` is due (ISO format). */
|
|
18019
|
+
next_step_date?: ISODate;
|
|
18020
|
+
/**
|
|
18021
|
+
* Qualification framework this deal is scored against. Names the rubric so the
|
|
18022
|
+
* `qualification_score` is interpretable; per-pillar booleans (MEDDICC's Metrics /
|
|
18023
|
+
* Economic buyer / Decision criteria / …) are deferred until `custom` recurrence
|
|
18024
|
+
* proves the demand.
|
|
18025
|
+
* @example 'meddicc'
|
|
18026
|
+
*/
|
|
18027
|
+
qualification_framework?: 'meddicc' | 'bant' | 'spiced' | 'custom';
|
|
18028
|
+
/**
|
|
18029
|
+
* How well-qualified the deal is, on the canonical `confidence_5` scale
|
|
18030
|
+
* (UPGAssessment: numeric value plus a high/medium/low label). Coarse by
|
|
18031
|
+
* design; the granular per-pillar breakdown is deferred (see
|
|
18032
|
+
* `qualification_framework`).
|
|
18033
|
+
*/
|
|
18034
|
+
qualification_score?: UPGAssessment;
|
|
17837
18035
|
}
|
|
17838
18036
|
/** Sales pipeline.
|
|
17839
18037
|
*
|
|
@@ -22540,7 +22738,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
22540
22738
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
22541
22739
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
22542
22740
|
*/
|
|
22543
|
-
declare const UPG_VERSION: "0.
|
|
22741
|
+
declare const UPG_VERSION: "0.24.0";
|
|
22544
22742
|
/**
|
|
22545
22743
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
22546
22744
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|