@daeda/mcp-pro 0.1.42 → 0.1.44
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/dist/index.js +2630 -171
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -863,6 +863,9 @@ var ACTION_TYPE_CATALOG_ROW_SCHEMA = z6.object({
|
|
|
863
863
|
contextConstraintsJson: z6.string(),
|
|
864
864
|
lookupRequirementsJson: z6.string(),
|
|
865
865
|
resourceRequirementsJson: z6.string(),
|
|
866
|
+
corpusMetadataJson: z6.string(),
|
|
867
|
+
fieldFrequencyJson: z6.string(),
|
|
868
|
+
variantInventoryJson: z6.string(),
|
|
866
869
|
createGuidanceText: z6.string()
|
|
867
870
|
});
|
|
868
871
|
var actionTypeCatalogPayloadSchema = z6.object({
|
|
@@ -881,12 +884,15 @@ var TABLE_STATEMENTS4 = [
|
|
|
881
884
|
context_constraints_json TEXT NOT NULL,
|
|
882
885
|
lookup_requirements_json TEXT NOT NULL,
|
|
883
886
|
resource_requirements_json TEXT NOT NULL,
|
|
887
|
+
corpus_metadata_json TEXT NOT NULL,
|
|
888
|
+
field_frequency_json TEXT NOT NULL,
|
|
889
|
+
variant_inventory_json TEXT NOT NULL,
|
|
884
890
|
create_guidance_text TEXT NOT NULL
|
|
885
891
|
)`,
|
|
886
892
|
`CREATE INDEX IF NOT EXISTS idx_action_type_catalog_category ON action_type_catalog(category)`
|
|
887
893
|
];
|
|
888
894
|
var QUERY_DOCS5 = [
|
|
889
|
-
'- The "action_type_catalog" table has: action_type_id, name, category, connection_type, example_actions_json, recommended_create_examples_json, field_schema_json, known_guardrails_json, context_constraints_json, lookup_requirements_json, resource_requirements_json, create_guidance_text',
|
|
895
|
+
'- The "action_type_catalog" table has: action_type_id, name, category, connection_type, example_actions_json, recommended_create_examples_json, field_schema_json, known_guardrails_json, context_constraints_json, lookup_requirements_json, resource_requirements_json, corpus_metadata_json, field_frequency_json, variant_inventory_json, create_guidance_text',
|
|
890
896
|
"- Query action_type_catalog to discover supported workflow action types before constructing workflows",
|
|
891
897
|
"- category is 'built_in' for the supported workflow action types surfaced to the LLM",
|
|
892
898
|
"- field_schema_json documents required fields for supported actions; example_actions_json contains curated fixture-derived examples for reference",
|
|
@@ -895,11 +901,14 @@ var QUERY_DOCS5 = [
|
|
|
895
901
|
"- lookup_requirements_json shows which local table/column to query before filling IDs like user_ids, flow_id, sequenceId, subscriptionId, inbox IDs, or association label IDs",
|
|
896
902
|
"- Use recommended_create_examples_json as the preferred template source when constructing new workflow actions",
|
|
897
903
|
"- Use resource_requirements_json to see whether an action needs IDs like listId, user_ids, flow_id, sequenceId, subscriptionId, inbox IDs, or association label IDs before creation",
|
|
904
|
+
"- corpus_metadata_json includes harvested example counts by action type across portals and workflows",
|
|
905
|
+
"- field_frequency_json summarizes whether each field was always observed, commonly optional, or a rare edge case in the harvested corpus",
|
|
906
|
+
"- variant_inventory_json lists the main structural variants observed for the action type in harvested workflows",
|
|
898
907
|
"- create_guidance_text captures action-specific creation tips plus live update caveats such as when update_workflow must use fresh actionIds for replacement nodes"
|
|
899
908
|
];
|
|
900
909
|
var actionTypeCatalogPlugin = {
|
|
901
910
|
name: "action-type-catalog",
|
|
902
|
-
schemaVersion:
|
|
911
|
+
schemaVersion: 3,
|
|
903
912
|
tableNames: ["action_type_catalog"],
|
|
904
913
|
ddlStatements: TABLE_STATEMENTS4,
|
|
905
914
|
initStrategy: "eager",
|
|
@@ -920,6 +929,9 @@ var actionTypeCatalogPlugin = {
|
|
|
920
929
|
parsed.actionTypeCatalog.map((row) => row.contextConstraintsJson),
|
|
921
930
|
parsed.actionTypeCatalog.map((row) => row.lookupRequirementsJson),
|
|
922
931
|
parsed.actionTypeCatalog.map((row) => row.resourceRequirementsJson),
|
|
932
|
+
parsed.actionTypeCatalog.map((row) => row.corpusMetadataJson),
|
|
933
|
+
parsed.actionTypeCatalog.map((row) => row.fieldFrequencyJson),
|
|
934
|
+
parsed.actionTypeCatalog.map((row) => row.variantInventoryJson),
|
|
923
935
|
parsed.actionTypeCatalog.map((row) => row.createGuidanceText)
|
|
924
936
|
]);
|
|
925
937
|
},
|
|
@@ -9371,6 +9383,7 @@ var PipelineStageMetadataSchema = z33.object({
|
|
|
9371
9383
|
var PipelineStageDefinitionSchema = z33.object({
|
|
9372
9384
|
label: z33.string().min(1),
|
|
9373
9385
|
display_order: z33.number().int(),
|
|
9386
|
+
ref: z33.string().min(1).optional(),
|
|
9374
9387
|
metadata: PipelineStageMetadataSchema.optional()
|
|
9375
9388
|
});
|
|
9376
9389
|
var PipelineDefinitionSchema = z33.object({
|
|
@@ -9389,7 +9402,7 @@ var fields7 = [
|
|
|
9389
9402
|
{ name: "object_type", type: "string", required: true, description: "CRM object type (deals, tickets, or custom object ID)" },
|
|
9390
9403
|
{ name: "label", type: "string", required: true, description: "Pipeline name as displayed in HubSpot" },
|
|
9391
9404
|
{ name: "display_order", type: "number", required: true, description: "Pipeline display order among all pipelines" },
|
|
9392
|
-
{ name: "stages", type: "array", required: true, description: "Pipeline stages (at least one required)", itemShape: "{ label: string, display_order: number, metadata?: { probability?: string, ticketState?: string } }" }
|
|
9405
|
+
{ name: "stages", type: "array", required: true, description: "Pipeline stages (at least one required)", itemShape: "{ label: string, display_order: number, ref?: string, metadata?: { probability?: string, ticketState?: string } }" }
|
|
9393
9406
|
];
|
|
9394
9407
|
var createPipelineMeta = {
|
|
9395
9408
|
type: "create_pipeline",
|
|
@@ -9405,9 +9418,9 @@ var createPipelineMeta = {
|
|
|
9405
9418
|
label: "Enterprise Sales",
|
|
9406
9419
|
display_order: 1,
|
|
9407
9420
|
stages: [
|
|
9408
|
-
{ label: "Qualified", display_order: 0, metadata: { probability: "0.2" } },
|
|
9409
|
-
{ label: "Proposal Sent", display_order: 1, metadata: { probability: "0.5" } },
|
|
9410
|
-
{ label: "Closed Won", display_order: 2, metadata: { probability: "1.0" } }
|
|
9421
|
+
{ label: "Qualified", display_order: 0, ref: "stage.enterprise_sales.qualified", metadata: { probability: "0.2" } },
|
|
9422
|
+
{ label: "Proposal Sent", display_order: 1, ref: "stage.enterprise_sales.proposal_sent", metadata: { probability: "0.5" } },
|
|
9423
|
+
{ label: "Closed Won", display_order: 2, ref: "stage.enterprise_sales.closed_won", metadata: { probability: "1.0" } }
|
|
9411
9424
|
]
|
|
9412
9425
|
}
|
|
9413
9426
|
},
|
|
@@ -11532,17 +11545,41 @@ import { z as z71 } from "zod";
|
|
|
11532
11545
|
// ../shared/types/workflow-actions-types/index.ts
|
|
11533
11546
|
import { z as z70 } from "zod";
|
|
11534
11547
|
var NonEmptyStringSchema = z70.string().min(1);
|
|
11548
|
+
var BooleanStringSchema = z70.enum(["true", "false"]);
|
|
11549
|
+
var WorkflowEdgeTypeSchema = z70.enum(["STANDARD", "GOTO"]);
|
|
11550
|
+
var TimeUnitSchema = z70.enum(["MINUTES", "HOURS", "DAYS"]);
|
|
11551
|
+
var WeekdaySchema = z70.enum(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]);
|
|
11552
|
+
var CountryCodeModeSchema = z70.enum(["static_default_country_code", "dynamic_default_country_code", "none"]);
|
|
11553
|
+
var SenderTypeSchema = z70.enum(["CONTACT_OWNER", "SPECIFIC_USER"]);
|
|
11554
|
+
var MarketingContactStatusSchema = z70.enum(["MARKETABLE", "MARKETABLE_UNTIL_RENEWAL", "NON_MARKETABLE"]);
|
|
11555
|
+
var CommunicationChannelSchema = z70.enum(["EMAIL", "SMS", "WHATSAPP"]);
|
|
11556
|
+
var CommunicationOptStateSchema = z70.enum(["OPT_IN", "OPT_OUT"]);
|
|
11557
|
+
var LegalBasisSchema = z70.enum([
|
|
11558
|
+
"LEGITIMATE_INTEREST_CLIENT",
|
|
11559
|
+
"LEGITIMATE_INTEREST_OTHER",
|
|
11560
|
+
"PERFORMANCE_OF_CONTRACT",
|
|
11561
|
+
"CONSENT_WITH_NOTICE",
|
|
11562
|
+
"NON_GDPR"
|
|
11563
|
+
]);
|
|
11564
|
+
var RelativeDelayDirectionSchema = z70.enum(["BEFORE", "AFTER"]);
|
|
11565
|
+
var WebhookMethodSchema = z70.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]);
|
|
11566
|
+
var CustomCodeRuntimeSchema = z70.enum(["NODE20X"]);
|
|
11567
|
+
var CustomCodeOutputTypeSchema = z70.enum(["NUMBER", "DATE", "STRING", "ENUMERATION", "DATETIME", "BOOLEAN"]);
|
|
11568
|
+
var NotificationDeliveryMethodSchema = z70.enum(["APP", "MOBILE"]);
|
|
11569
|
+
var AssociationCategorySchema = z70.enum(["HUBSPOT_DEFINED", "USER_DEFINED"]);
|
|
11535
11570
|
var WorkflowConnectionSchema = z70.object({
|
|
11536
|
-
edgeType:
|
|
11571
|
+
edgeType: WorkflowEdgeTypeSchema,
|
|
11537
11572
|
nextActionId: NonEmptyStringSchema
|
|
11538
11573
|
}).passthrough();
|
|
11539
11574
|
var WorkflowStaticBranchSchema = z70.object({
|
|
11540
11575
|
branchValue: NonEmptyStringSchema,
|
|
11541
|
-
connection: WorkflowConnectionSchema.optional()
|
|
11576
|
+
connection: WorkflowConnectionSchema.optional(),
|
|
11577
|
+
nextActionId: NonEmptyStringSchema.optional()
|
|
11542
11578
|
}).passthrough();
|
|
11543
11579
|
var WorkflowTestBranchSchema = z70.object({
|
|
11544
11580
|
percentage: z70.number().int().min(0).max(100),
|
|
11545
|
-
connection: WorkflowConnectionSchema.optional()
|
|
11581
|
+
connection: WorkflowConnectionSchema.optional(),
|
|
11582
|
+
nextActionId: NonEmptyStringSchema.optional()
|
|
11546
11583
|
}).passthrough();
|
|
11547
11584
|
var WorkflowListMembershipFilterSchema = z70.object({
|
|
11548
11585
|
listId: NonEmptyStringSchema,
|
|
@@ -11553,23 +11590,100 @@ var WorkflowListBranchPropertyOperationSchema = z70.object({
|
|
|
11553
11590
|
operator: NonEmptyStringSchema,
|
|
11554
11591
|
includeObjectsWithNoValueSet: z70.boolean().optional(),
|
|
11555
11592
|
values: z70.array(z70.string()).optional(),
|
|
11556
|
-
operationType: NonEmptyStringSchema.optional()
|
|
11593
|
+
operationType: NonEmptyStringSchema.optional(),
|
|
11594
|
+
value: z70.union([z70.string(), z70.number(), z70.boolean()]).optional(),
|
|
11595
|
+
endpointBehavior: NonEmptyStringSchema.optional(),
|
|
11596
|
+
propertyParser: NonEmptyStringSchema.optional(),
|
|
11597
|
+
type: NonEmptyStringSchema.optional(),
|
|
11598
|
+
lowerBound: z70.number().optional(),
|
|
11599
|
+
upperBound: z70.number().optional(),
|
|
11600
|
+
lowerBoundEndpointBehavior: NonEmptyStringSchema.optional(),
|
|
11601
|
+
upperBoundEndpointBehavior: NonEmptyStringSchema.optional(),
|
|
11602
|
+
lowerBoundTimePoint: z70.record(z70.string(), z70.unknown()).optional(),
|
|
11603
|
+
upperBoundTimePoint: z70.record(z70.string(), z70.unknown()).optional(),
|
|
11604
|
+
timePoint: z70.record(z70.string(), z70.unknown()).optional()
|
|
11557
11605
|
}).passthrough();
|
|
11558
11606
|
var WorkflowListBranchPropertyFilterSchema = z70.object({
|
|
11559
11607
|
property: NonEmptyStringSchema,
|
|
11560
11608
|
filterType: z70.literal("PROPERTY"),
|
|
11561
11609
|
operation: WorkflowListBranchPropertyOperationSchema
|
|
11562
11610
|
}).passthrough();
|
|
11611
|
+
var WorkflowListBranchFormSubmissionFilterSchema = z70.object({
|
|
11612
|
+
filterType: z70.literal("FORM_SUBMISSION"),
|
|
11613
|
+
formId: NonEmptyStringSchema,
|
|
11614
|
+
operator: z70.literal("FILLED_OUT"),
|
|
11615
|
+
pruningRefineBy: z70.record(z70.string(), z70.unknown()).optional()
|
|
11616
|
+
}).passthrough();
|
|
11617
|
+
var WorkflowListBranchFormSubmissionOnPageFilterSchema = z70.object({
|
|
11618
|
+
filterType: z70.literal("FORM_SUBMISSION_ON_PAGE"),
|
|
11619
|
+
formId: NonEmptyStringSchema,
|
|
11620
|
+
pageId: NonEmptyStringSchema,
|
|
11621
|
+
operator: z70.literal("FILLED_OUT")
|
|
11622
|
+
}).passthrough();
|
|
11623
|
+
var WorkflowListBranchEmailEventFilterSchema = z70.object({
|
|
11624
|
+
filterType: z70.literal("EMAIL_EVENT"),
|
|
11625
|
+
level: NonEmptyStringSchema,
|
|
11626
|
+
emailId: NonEmptyStringSchema,
|
|
11627
|
+
appId: NonEmptyStringSchema,
|
|
11628
|
+
operator: z70.enum(["OPENED", "CLICKED", "BOUNCED", "DELIVERED", "MARKED_SPAM", "UNSUBSCRIBED"])
|
|
11629
|
+
}).passthrough();
|
|
11630
|
+
var WorkflowListBranchCtaFilterSchema = z70.object({
|
|
11631
|
+
filterType: z70.literal("CTA"),
|
|
11632
|
+
operator: z70.literal("HAS_CLICKED_CTA_PLACEMENT"),
|
|
11633
|
+
ctaName: NonEmptyStringSchema
|
|
11634
|
+
}).passthrough();
|
|
11563
11635
|
var WorkflowListBranchFilterLeafSchema = z70.union([
|
|
11564
11636
|
WorkflowListMembershipFilterSchema,
|
|
11565
|
-
WorkflowListBranchPropertyFilterSchema
|
|
11637
|
+
WorkflowListBranchPropertyFilterSchema,
|
|
11638
|
+
WorkflowListBranchFormSubmissionFilterSchema,
|
|
11639
|
+
WorkflowListBranchFormSubmissionOnPageFilterSchema,
|
|
11640
|
+
WorkflowListBranchEmailEventFilterSchema,
|
|
11641
|
+
WorkflowListBranchCtaFilterSchema
|
|
11566
11642
|
]);
|
|
11567
|
-
var
|
|
11643
|
+
var WorkflowListBranchLogicalNodeSchema = z70.object({
|
|
11568
11644
|
filterBranches: z70.array(z70.lazy(() => WorkflowListBranchFilterNodeSchema)).default([]),
|
|
11569
11645
|
filters: z70.array(WorkflowListBranchFilterLeafSchema).default([]),
|
|
11570
11646
|
filterBranchType: z70.enum(["AND", "OR"]),
|
|
11571
11647
|
filterBranchOperator: z70.enum(["AND", "OR"])
|
|
11572
11648
|
}).passthrough();
|
|
11649
|
+
var WorkflowListBranchAssociationNodeSchema = z70.object({
|
|
11650
|
+
filterBranches: z70.array(z70.lazy(() => WorkflowListBranchFilterNodeSchema)).default([]),
|
|
11651
|
+
filters: z70.array(WorkflowListBranchFilterLeafSchema).default([]),
|
|
11652
|
+
filterBranchType: z70.literal("ASSOCIATION"),
|
|
11653
|
+
filterBranchOperator: z70.literal("AND"),
|
|
11654
|
+
associationCategory: AssociationCategorySchema,
|
|
11655
|
+
associationTypeId: z70.number().int(),
|
|
11656
|
+
objectTypeId: NonEmptyStringSchema,
|
|
11657
|
+
operator: z70.literal("IN_LIST")
|
|
11658
|
+
}).passthrough();
|
|
11659
|
+
var WorkflowListBranchUnifiedEventsNodeSchema = z70.object({
|
|
11660
|
+
filterBranches: z70.array(z70.lazy(() => WorkflowListBranchFilterNodeSchema)).default([]),
|
|
11661
|
+
filters: z70.array(WorkflowListBranchFilterLeafSchema).default([]),
|
|
11662
|
+
filterBranchType: z70.literal("UNIFIED_EVENTS"),
|
|
11663
|
+
filterBranchOperator: z70.literal("AND"),
|
|
11664
|
+
eventTypeId: NonEmptyStringSchema,
|
|
11665
|
+
operator: z70.literal("HAS_COMPLETED")
|
|
11666
|
+
}).passthrough();
|
|
11667
|
+
var WorkflowListBranchFilterNodeSchema = z70.union([
|
|
11668
|
+
WorkflowListBranchLogicalNodeSchema,
|
|
11669
|
+
WorkflowListBranchAssociationNodeSchema,
|
|
11670
|
+
WorkflowListBranchUnifiedEventsNodeSchema
|
|
11671
|
+
]).superRefine((value, ctx) => {
|
|
11672
|
+
if ((value.filterBranchType === "AND" || value.filterBranchType === "OR") && value.filterBranches.length === 0 && value.filters.length === 0) {
|
|
11673
|
+
ctx.addIssue({
|
|
11674
|
+
code: z70.ZodIssueCode.custom,
|
|
11675
|
+
message: "Logical LIST_BRANCH nodes must include at least one child branch or filter.",
|
|
11676
|
+
path: ["filterBranches"]
|
|
11677
|
+
});
|
|
11678
|
+
}
|
|
11679
|
+
if (value.filterBranchType === "UNIFIED_EVENTS" && value.filters.length > 0) {
|
|
11680
|
+
ctx.addIssue({
|
|
11681
|
+
code: z70.ZodIssueCode.custom,
|
|
11682
|
+
message: "UNIFIED_EVENTS nodes do not accept direct filters.",
|
|
11683
|
+
path: ["filters"]
|
|
11684
|
+
});
|
|
11685
|
+
}
|
|
11686
|
+
});
|
|
11573
11687
|
var WorkflowListBranchSchema = z70.object({
|
|
11574
11688
|
branchName: NonEmptyStringSchema,
|
|
11575
11689
|
filterBranch: WorkflowListBranchFilterNodeSchema,
|
|
@@ -11577,20 +11691,51 @@ var WorkflowListBranchSchema = z70.object({
|
|
|
11577
11691
|
nextActionId: NonEmptyStringSchema.optional()
|
|
11578
11692
|
}).passthrough();
|
|
11579
11693
|
var AssociationSpecSchema = z70.object({
|
|
11580
|
-
associationCategory:
|
|
11694
|
+
associationCategory: AssociationCategorySchema,
|
|
11581
11695
|
associationTypeId: z70.number().int()
|
|
11582
11696
|
}).passthrough();
|
|
11583
11697
|
var StaticValueSchema = z70.object({
|
|
11584
11698
|
type: z70.literal("STATIC_VALUE"),
|
|
11585
|
-
staticValue:
|
|
11699
|
+
staticValue: StringOrPlanRefSchema
|
|
11586
11700
|
}).passthrough();
|
|
11587
11701
|
var ObjectPropertyValueSchema = z70.object({
|
|
11588
11702
|
type: z70.literal("OBJECT_PROPERTY"),
|
|
11589
11703
|
propertyName: NonEmptyStringSchema
|
|
11590
11704
|
}).passthrough();
|
|
11591
|
-
var
|
|
11705
|
+
var FieldDataValueSchema = z70.object({
|
|
11706
|
+
type: z70.literal("FIELD_DATA"),
|
|
11707
|
+
actionId: NonEmptyStringSchema,
|
|
11708
|
+
dataKey: NonEmptyStringSchema
|
|
11709
|
+
}).passthrough();
|
|
11710
|
+
var TimestampValueSchema = z70.object({
|
|
11711
|
+
type: z70.literal("TIMESTAMP"),
|
|
11712
|
+
timestampType: NonEmptyStringSchema.optional()
|
|
11713
|
+
}).passthrough();
|
|
11714
|
+
var IncrementValueSchema = z70.object({
|
|
11715
|
+
type: z70.literal("INCREMENT"),
|
|
11716
|
+
incrementAmount: z70.number()
|
|
11717
|
+
}).passthrough();
|
|
11718
|
+
var StaticAppendValueSchema = z70.object({
|
|
11719
|
+
type: z70.literal("STATIC_APPEND_VALUE"),
|
|
11720
|
+
staticAppendValue: z70.string()
|
|
11721
|
+
}).passthrough();
|
|
11722
|
+
var EnrollmentEventPropertyValueSchema = z70.object({
|
|
11723
|
+
type: z70.literal("ENROLLMENT_EVENT_PROPERTY"),
|
|
11724
|
+
enrollmentEventPropertyToken: z70.string()
|
|
11725
|
+
}).passthrough();
|
|
11726
|
+
var FetchedObjectPropertyValueSchema = z70.object({
|
|
11727
|
+
type: z70.literal("FETCHED_OBJECT_PROPERTY"),
|
|
11728
|
+
propertyToken: z70.string()
|
|
11729
|
+
}).passthrough();
|
|
11730
|
+
var ActionValueSchema = z70.discriminatedUnion("type", [
|
|
11592
11731
|
StaticValueSchema,
|
|
11593
|
-
ObjectPropertyValueSchema
|
|
11732
|
+
ObjectPropertyValueSchema,
|
|
11733
|
+
FieldDataValueSchema,
|
|
11734
|
+
TimestampValueSchema,
|
|
11735
|
+
IncrementValueSchema,
|
|
11736
|
+
StaticAppendValueSchema,
|
|
11737
|
+
EnrollmentEventPropertyValueSchema,
|
|
11738
|
+
FetchedObjectPropertyValueSchema
|
|
11594
11739
|
]);
|
|
11595
11740
|
var AssociationValueSchema = z70.union([
|
|
11596
11741
|
z70.object({
|
|
@@ -11609,12 +11754,42 @@ var TimeOfDaySchema = z70.object({
|
|
|
11609
11754
|
hour: z70.number().int().min(0).max(23),
|
|
11610
11755
|
minute: z70.number().int().min(0).max(59)
|
|
11611
11756
|
}).passthrough();
|
|
11757
|
+
var RelativeDatetimeValueSchema = z70.object({
|
|
11758
|
+
type: z70.literal("RELATIVE_DATETIME"),
|
|
11759
|
+
timeDelay: z70.object({
|
|
11760
|
+
delta: z70.number().int(),
|
|
11761
|
+
timeUnit: TimeUnitSchema,
|
|
11762
|
+
daysOfWeek: z70.array(WeekdaySchema),
|
|
11763
|
+
timeOfDay: TimeOfDaySchema.optional()
|
|
11764
|
+
}).passthrough()
|
|
11765
|
+
}).passthrough();
|
|
11612
11766
|
var RelativeTimeSchema = z70.object({
|
|
11613
11767
|
delta: z70.number().int(),
|
|
11614
|
-
timeUnit:
|
|
11768
|
+
timeUnit: TimeUnitSchema,
|
|
11615
11769
|
timeOfDay: TimeOfDaySchema,
|
|
11616
|
-
daysOfWeek: z70.array(
|
|
11770
|
+
daysOfWeek: z70.array(WeekdaySchema)
|
|
11771
|
+
}).passthrough();
|
|
11772
|
+
var RecipientSelectionSchema = z70.object({
|
|
11773
|
+
user_ids: z70.array(NonEmptyStringSchema).optional(),
|
|
11774
|
+
team_ids: z70.array(NonEmptyStringSchema).optional(),
|
|
11775
|
+
owner_properties: z70.array(NonEmptyStringSchema).optional()
|
|
11617
11776
|
}).passthrough();
|
|
11777
|
+
var requireAtLeastOneRecipient = (value, ctx) => {
|
|
11778
|
+
const recipientCounts = [
|
|
11779
|
+
value.fields?.user_ids?.length ?? 0,
|
|
11780
|
+
value.fields?.team_ids?.length ?? 0,
|
|
11781
|
+
value.fields?.owner_properties?.length ?? 0
|
|
11782
|
+
];
|
|
11783
|
+
if (!recipientCounts.some((count) => count > 0)) {
|
|
11784
|
+
ctx.addIssue({
|
|
11785
|
+
code: z70.ZodIssueCode.custom,
|
|
11786
|
+
message: "At least one of user_ids, team_ids, or owner_properties must contain a recipient.",
|
|
11787
|
+
path: ["fields"]
|
|
11788
|
+
});
|
|
11789
|
+
}
|
|
11790
|
+
};
|
|
11791
|
+
var GenericObjectSchema = z70.record(z70.string(), z70.unknown());
|
|
11792
|
+
var NotificationRecipientArraySchema = z70.array(NonEmptyStringSchema);
|
|
11618
11793
|
var ActionFieldDataInputSchema = z70.object({
|
|
11619
11794
|
actionId: NonEmptyStringSchema,
|
|
11620
11795
|
dataKey: NonEmptyStringSchema,
|
|
@@ -11622,8 +11797,107 @@ var ActionFieldDataInputSchema = z70.object({
|
|
|
11622
11797
|
}).passthrough();
|
|
11623
11798
|
var StaticBranchInputValueSchema = z70.union([
|
|
11624
11799
|
ActionFieldDataInputSchema,
|
|
11625
|
-
ObjectPropertyValueSchema
|
|
11800
|
+
ObjectPropertyValueSchema,
|
|
11801
|
+
FetchedObjectPropertyValueSchema
|
|
11626
11802
|
]);
|
|
11803
|
+
var hasSourcePattern = (sourceCode, pattern) => pattern.test(sourceCode);
|
|
11804
|
+
var collectLiteralOutputFieldKeys = (sourceCode) => {
|
|
11805
|
+
const matches = [...sourceCode.matchAll(/outputFields\s*:\s*\{([\s\S]*?)\}/g)];
|
|
11806
|
+
const keys = /* @__PURE__ */ new Set();
|
|
11807
|
+
for (const match of matches) {
|
|
11808
|
+
const body = match[1] ?? "";
|
|
11809
|
+
for (const keyMatch of body.matchAll(/(?:^|[,{]\s*)(['"]?)([A-Za-z_$][\w$-]*)\1\s*:/g)) {
|
|
11810
|
+
keys.add(keyMatch[2]);
|
|
11811
|
+
}
|
|
11812
|
+
}
|
|
11813
|
+
return [...keys];
|
|
11814
|
+
};
|
|
11815
|
+
var validateCustomCodeSource = (value, ctx) => {
|
|
11816
|
+
const sourceCode = value.sourceCode;
|
|
11817
|
+
try {
|
|
11818
|
+
new Function(sourceCode);
|
|
11819
|
+
} catch (error) {
|
|
11820
|
+
ctx.addIssue({
|
|
11821
|
+
code: z70.ZodIssueCode.custom,
|
|
11822
|
+
message: `sourceCode must be valid JavaScript: ${error instanceof Error ? error.message : "syntax error"}`,
|
|
11823
|
+
path: ["sourceCode"]
|
|
11824
|
+
});
|
|
11825
|
+
return;
|
|
11826
|
+
}
|
|
11827
|
+
if (!hasSourcePattern(sourceCode, /\b(?:exports|module\.exports)\.main\s*=/)) {
|
|
11828
|
+
ctx.addIssue({
|
|
11829
|
+
code: z70.ZodIssueCode.custom,
|
|
11830
|
+
message: "sourceCode must define exports.main or module.exports.main.",
|
|
11831
|
+
path: ["sourceCode"]
|
|
11832
|
+
});
|
|
11833
|
+
}
|
|
11834
|
+
const hasCallbackContract = hasSourcePattern(sourceCode, /\bcallback\s*\(/);
|
|
11835
|
+
const hasReturnContract = hasSourcePattern(sourceCode, /\breturn\s+(?:await\s+)?\{[\s\S]*?outputFields\s*:/);
|
|
11836
|
+
if (!hasCallbackContract && !hasReturnContract) {
|
|
11837
|
+
ctx.addIssue({
|
|
11838
|
+
code: z70.ZodIssueCode.custom,
|
|
11839
|
+
message: "sourceCode must either call callback(...) or return an object containing outputFields.",
|
|
11840
|
+
path: ["sourceCode"]
|
|
11841
|
+
});
|
|
11842
|
+
}
|
|
11843
|
+
const literalOutputKeys = collectLiteralOutputFieldKeys(sourceCode);
|
|
11844
|
+
const declaredOutputNames = new Set((value.outputFields ?? []).map((field) => field.name));
|
|
11845
|
+
if (declaredOutputNames.size > 0) {
|
|
11846
|
+
for (const field of value.outputFields ?? []) {
|
|
11847
|
+
if (!hasSourcePattern(sourceCode, new RegExp(`\\b${field.name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`))) {
|
|
11848
|
+
ctx.addIssue({
|
|
11849
|
+
code: z70.ZodIssueCode.custom,
|
|
11850
|
+
message: `Declared output field '${field.name}' is not referenced in sourceCode.`,
|
|
11851
|
+
path: ["outputFields"]
|
|
11852
|
+
});
|
|
11853
|
+
}
|
|
11854
|
+
}
|
|
11855
|
+
}
|
|
11856
|
+
for (const literalKey of literalOutputKeys) {
|
|
11857
|
+
if (!declaredOutputNames.has(literalKey)) {
|
|
11858
|
+
ctx.addIssue({
|
|
11859
|
+
code: z70.ZodIssueCode.custom,
|
|
11860
|
+
message: `sourceCode emits outputFields.${literalKey} but it is not declared in outputFields.`,
|
|
11861
|
+
path: ["outputFields"]
|
|
11862
|
+
});
|
|
11863
|
+
}
|
|
11864
|
+
}
|
|
11865
|
+
for (const [index, inputField] of (value.inputFields ?? []).entries()) {
|
|
11866
|
+
if (!hasSourcePattern(sourceCode, new RegExp(`\\b${inputField.name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`))) {
|
|
11867
|
+
ctx.addIssue({
|
|
11868
|
+
code: z70.ZodIssueCode.custom,
|
|
11869
|
+
message: `Declared input field '${inputField.name}' is not referenced in sourceCode.`,
|
|
11870
|
+
path: ["inputFields", index, "name"]
|
|
11871
|
+
});
|
|
11872
|
+
}
|
|
11873
|
+
}
|
|
11874
|
+
for (const [index, secretName] of (value.secretNames ?? []).entries()) {
|
|
11875
|
+
if (!hasSourcePattern(sourceCode, new RegExp(`\\b${secretName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`))) {
|
|
11876
|
+
ctx.addIssue({
|
|
11877
|
+
code: z70.ZodIssueCode.custom,
|
|
11878
|
+
message: `Declared secret '${secretName}' is not referenced in sourceCode.`,
|
|
11879
|
+
path: ["secretNames", index]
|
|
11880
|
+
});
|
|
11881
|
+
}
|
|
11882
|
+
}
|
|
11883
|
+
const dangerousPatterns = [
|
|
11884
|
+
{ pattern: /\beval\s*\(/, message: "sourceCode must not use eval()." },
|
|
11885
|
+
{ pattern: /\bFunction\s*\(/, message: "sourceCode must not construct functions dynamically." },
|
|
11886
|
+
{ pattern: /\brequire\s*\(\s*['"]child_process['"]\s*\)/, message: "sourceCode must not import child_process." },
|
|
11887
|
+
{ pattern: /\bexec(?:Sync)?\s*\(/, message: "sourceCode must not execute shell commands." },
|
|
11888
|
+
{ pattern: /\bspawn\s*\(/, message: "sourceCode must not spawn subprocesses." },
|
|
11889
|
+
{ pattern: /\bfs\.(?:writeFile|writeFileSync|appendFile|appendFileSync)\s*\(/, message: "sourceCode must not write to the filesystem." }
|
|
11890
|
+
];
|
|
11891
|
+
for (const { pattern, message } of dangerousPatterns) {
|
|
11892
|
+
if (hasSourcePattern(sourceCode, pattern)) {
|
|
11893
|
+
ctx.addIssue({
|
|
11894
|
+
code: z70.ZodIssueCode.custom,
|
|
11895
|
+
message,
|
|
11896
|
+
path: ["sourceCode"]
|
|
11897
|
+
});
|
|
11898
|
+
}
|
|
11899
|
+
}
|
|
11900
|
+
};
|
|
11627
11901
|
var SingleConnectionActionBaseSchema = z70.object({
|
|
11628
11902
|
actionId: NonEmptyStringSchema,
|
|
11629
11903
|
actionTypeVersion: z70.number().int().optional(),
|
|
@@ -11634,23 +11908,27 @@ var buildSingleConnectionActionSchema = (actionTypeId, fields51) => SingleConnec
|
|
|
11634
11908
|
actionTypeId: z70.literal(actionTypeId),
|
|
11635
11909
|
fields: fields51
|
|
11636
11910
|
});
|
|
11637
|
-
var BooleanStringSchema = z70.enum(["true", "false"]);
|
|
11638
11911
|
var DelayForSetAmountOfTimeActionSchema = buildSingleConnectionActionSchema("0-1", z70.object({
|
|
11639
11912
|
delta: NonEmptyStringSchema,
|
|
11640
|
-
time_unit:
|
|
11913
|
+
time_unit: TimeUnitSchema,
|
|
11914
|
+
days_of_week: z70.array(WeekdaySchema).optional(),
|
|
11915
|
+
time_of_day: TimeOfDaySchema.optional(),
|
|
11916
|
+
time_zone_strategy: NonEmptyStringSchema.optional()
|
|
11917
|
+
}).passthrough());
|
|
11918
|
+
var SendEmailActionSchema = buildSingleConnectionActionSchema("0-4", z70.object({
|
|
11919
|
+
content_id: NonEmptyStringSchema
|
|
11641
11920
|
}).passthrough());
|
|
11642
|
-
var RotateRecordToOwnerActionSchema = buildSingleConnectionActionSchema("0-11",
|
|
11643
|
-
user_ids: z70.array(NonEmptyStringSchema).min(1),
|
|
11921
|
+
var RotateRecordToOwnerActionSchema = buildSingleConnectionActionSchema("0-11", RecipientSelectionSchema.extend({
|
|
11644
11922
|
target_property: NonEmptyStringSchema,
|
|
11645
11923
|
overwrite_current_owner: BooleanStringSchema
|
|
11646
|
-
}).
|
|
11924
|
+
})).superRefine(requireAtLeastOneRecipient);
|
|
11647
11925
|
var CreateRecordPropertySchema = z70.object({
|
|
11648
11926
|
targetProperty: NonEmptyStringSchema,
|
|
11649
|
-
value: ActionValueSchema
|
|
11927
|
+
value: z70.union([ActionValueSchema, RelativeDatetimeValueSchema])
|
|
11650
11928
|
}).passthrough();
|
|
11651
11929
|
var CreateRecordActionSchema = buildSingleConnectionActionSchema("0-14", z70.object({
|
|
11652
11930
|
object_type_id: NonEmptyStringSchema,
|
|
11653
|
-
properties: z70.array(CreateRecordPropertySchema)
|
|
11931
|
+
properties: z70.array(CreateRecordPropertySchema),
|
|
11654
11932
|
associations: z70.array(ActionAssociationSchema).optional(),
|
|
11655
11933
|
use_explicit_associations: BooleanStringSchema.optional()
|
|
11656
11934
|
}).passthrough());
|
|
@@ -11670,15 +11948,43 @@ var StopTrackingIntentSignalsActionSchema = buildSingleConnectionActionSchema("0
|
|
|
11670
11948
|
targetCompany: NonEmptyStringSchema
|
|
11671
11949
|
}).passthrough());
|
|
11672
11950
|
var ValidateAndFormatPhoneNumberActionSchema = buildSingleConnectionActionSchema("0-225935194", z70.object({
|
|
11673
|
-
defaultCountryCodeMode:
|
|
11674
|
-
|
|
11951
|
+
defaultCountryCodeMode: CountryCodeModeSchema,
|
|
11952
|
+
propertyValue: NonEmptyStringSchema.optional(),
|
|
11953
|
+
staticDefaultCountryCode: NonEmptyStringSchema.optional()
|
|
11954
|
+
}).passthrough()).superRefine((value, ctx) => {
|
|
11955
|
+
if (value.fields.defaultCountryCodeMode === "static_default_country_code" && !value.fields.staticDefaultCountryCode) {
|
|
11956
|
+
ctx.addIssue({
|
|
11957
|
+
code: z70.ZodIssueCode.custom,
|
|
11958
|
+
message: "staticDefaultCountryCode is required when defaultCountryCodeMode is static_default_country_code.",
|
|
11959
|
+
path: ["fields", "staticDefaultCountryCode"]
|
|
11960
|
+
});
|
|
11961
|
+
}
|
|
11962
|
+
if (value.fields.defaultCountryCodeMode !== "static_default_country_code" && value.fields.staticDefaultCountryCode) {
|
|
11963
|
+
ctx.addIssue({
|
|
11964
|
+
code: z70.ZodIssueCode.custom,
|
|
11965
|
+
message: "staticDefaultCountryCode is only valid when defaultCountryCodeMode is static_default_country_code.",
|
|
11966
|
+
path: ["fields", "staticDefaultCountryCode"]
|
|
11967
|
+
});
|
|
11968
|
+
}
|
|
11969
|
+
});
|
|
11675
11970
|
var DelayUntilEventOccursActionSchema = buildSingleConnectionActionSchema("0-29", z70.object({
|
|
11676
|
-
expiration_minutes: NonEmptyStringSchema
|
|
11971
|
+
expiration_minutes: NonEmptyStringSchema,
|
|
11972
|
+
event_filter_branches: z70.array(GenericObjectSchema).optional(),
|
|
11973
|
+
target_object_override: NonEmptyStringSchema.optional()
|
|
11677
11974
|
}).passthrough());
|
|
11678
|
-
var
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
}).passthrough();
|
|
11975
|
+
var RelativeDelayActionSchema = buildSingleConnectionActionSchema("0-28", z70.object({
|
|
11976
|
+
delay: RelativeTimeSchema,
|
|
11977
|
+
direction: RelativeDelayDirectionSchema
|
|
11978
|
+
}).passthrough());
|
|
11979
|
+
var TaskOwnerAssignmentSchema = z70.discriminatedUnion("type", [
|
|
11980
|
+
z70.object({
|
|
11981
|
+
type: z70.literal("CUSTOM"),
|
|
11982
|
+
value: z70.union([StaticValueSchema, ObjectPropertyValueSchema])
|
|
11983
|
+
}).passthrough(),
|
|
11984
|
+
z70.object({
|
|
11985
|
+
type: z70.literal("ENROLLED_OBJECT_OWNER")
|
|
11986
|
+
}).passthrough()
|
|
11987
|
+
]);
|
|
11682
11988
|
var CreateTaskActionSchema = buildSingleConnectionActionSchema("0-3", z70.object({
|
|
11683
11989
|
task_type: NonEmptyStringSchema,
|
|
11684
11990
|
subject: NonEmptyStringSchema,
|
|
@@ -11688,24 +11994,25 @@ var CreateTaskActionSchema = buildSingleConnectionActionSchema("0-3", z70.object
|
|
|
11688
11994
|
priority: NonEmptyStringSchema.optional(),
|
|
11689
11995
|
due_time: RelativeTimeSchema.optional(),
|
|
11690
11996
|
reminder_time: RelativeTimeSchema.optional(),
|
|
11691
|
-
owner_assignment: TaskOwnerAssignmentSchema.optional()
|
|
11997
|
+
owner_assignment: TaskOwnerAssignmentSchema.optional(),
|
|
11998
|
+
queue_id: NonEmptyStringSchema.optional()
|
|
11692
11999
|
}).passthrough());
|
|
11693
12000
|
var SetMarketingContactStatusActionSchema = buildSingleConnectionActionSchema("0-31", z70.object({
|
|
11694
12001
|
targetContact: NonEmptyStringSchema,
|
|
11695
|
-
marketableType:
|
|
12002
|
+
marketableType: MarketingContactStatusSchema
|
|
11696
12003
|
}).passthrough());
|
|
11697
12004
|
var DelayUntilDateActionSchema = buildSingleConnectionActionSchema("0-35", z70.object({
|
|
11698
|
-
date: ActionValueSchema,
|
|
12005
|
+
date: z70.union([ActionValueSchema, RelativeDatetimeValueSchema]),
|
|
11699
12006
|
delta: NonEmptyStringSchema,
|
|
11700
|
-
time_unit:
|
|
12007
|
+
time_unit: TimeUnitSchema,
|
|
11701
12008
|
time_of_day: TimeOfDaySchema
|
|
11702
12009
|
}).passthrough());
|
|
11703
12010
|
var ManageCommunicationSubscriptionsActionSchema = buildSingleConnectionActionSchema("0-43347357", z70.object({
|
|
11704
12011
|
targetContact: NonEmptyStringSchema,
|
|
11705
|
-
channel:
|
|
11706
|
-
optState:
|
|
12012
|
+
channel: CommunicationChannelSchema,
|
|
12013
|
+
optState: CommunicationOptStateSchema,
|
|
11707
12014
|
subscriptionId: NonEmptyStringSchema,
|
|
11708
|
-
legalBasis:
|
|
12015
|
+
legalBasis: LegalBasisSchema,
|
|
11709
12016
|
legalBasisExplanation: z70.string()
|
|
11710
12017
|
}).passthrough());
|
|
11711
12018
|
var AssignConversationOwnerActionSchema = buildSingleConnectionActionSchema("0-44475148", z70.object({
|
|
@@ -11715,10 +12022,25 @@ var AssignConversationOwnerActionSchema = buildSingleConnectionActionSchema("0-4
|
|
|
11715
12022
|
var EnrollInSequenceActionSchema = buildSingleConnectionActionSchema("0-46510720", z70.object({
|
|
11716
12023
|
sequenceId: NonEmptyStringSchema,
|
|
11717
12024
|
shouldUseContactTimeZone: BooleanStringSchema,
|
|
11718
|
-
senderType:
|
|
12025
|
+
senderType: SenderTypeSchema,
|
|
11719
12026
|
contactOwnerProperty: NonEmptyStringSchema.optional(),
|
|
11720
12027
|
userId: NonEmptyStringSchema.optional()
|
|
11721
|
-
}).passthrough())
|
|
12028
|
+
}).passthrough()).superRefine((value, ctx) => {
|
|
12029
|
+
if (value.fields.senderType === "CONTACT_OWNER" && !value.fields.contactOwnerProperty) {
|
|
12030
|
+
ctx.addIssue({
|
|
12031
|
+
code: z70.ZodIssueCode.custom,
|
|
12032
|
+
message: "contactOwnerProperty is required when senderType is CONTACT_OWNER.",
|
|
12033
|
+
path: ["fields", "contactOwnerProperty"]
|
|
12034
|
+
});
|
|
12035
|
+
}
|
|
12036
|
+
if (value.fields.senderType === "SPECIFIC_USER" && !value.fields.userId) {
|
|
12037
|
+
ctx.addIssue({
|
|
12038
|
+
code: z70.ZodIssueCode.custom,
|
|
12039
|
+
message: "userId is required when senderType is SPECIFIC_USER.",
|
|
12040
|
+
path: ["fields", "userId"]
|
|
12041
|
+
});
|
|
12042
|
+
}
|
|
12043
|
+
});
|
|
11722
12044
|
var UnenrollFromSequenceActionSchema = buildSingleConnectionActionSchema("0-4702372", z70.object({}).passthrough());
|
|
11723
12045
|
var EditRecordsSetPropertyActionSchema = buildSingleConnectionActionSchema("0-5", z70.object({
|
|
11724
12046
|
property_name: NonEmptyStringSchema,
|
|
@@ -11750,21 +12072,114 @@ var ApplyAssociationLabelsActionSchema = buildSingleConnectionActionSchema("0-73
|
|
|
11750
12072
|
fromObjectType: NonEmptyStringSchema,
|
|
11751
12073
|
toObjectType: NonEmptyStringSchema,
|
|
11752
12074
|
labelToApply: NonEmptyStringSchema,
|
|
11753
|
-
applyLabelToAllAssociatedObjects: BooleanStringSchema
|
|
12075
|
+
applyLabelToAllAssociatedObjects: BooleanStringSchema,
|
|
12076
|
+
matchBy: NonEmptyStringSchema.optional(),
|
|
12077
|
+
enrolledObjectPropertyNameToMatch: NonEmptyStringSchema.optional(),
|
|
12078
|
+
associatedObjectPropertyNameToMatch: NonEmptyStringSchema.optional(),
|
|
12079
|
+
associatedObjectPropertyName: NonEmptyStringSchema.optional(),
|
|
12080
|
+
associatedObjectPropertyOperator: NonEmptyStringSchema.optional(),
|
|
12081
|
+
associatedObjectPropertyValue: NonEmptyStringSchema.optional()
|
|
11754
12082
|
}).passthrough());
|
|
11755
|
-
var SendInternalEmailNotificationActionSchema = buildSingleConnectionActionSchema("0-8",
|
|
11756
|
-
user_ids: z70.array(NonEmptyStringSchema).min(1),
|
|
12083
|
+
var SendInternalEmailNotificationActionSchema = buildSingleConnectionActionSchema("0-8", RecipientSelectionSchema.extend({
|
|
11757
12084
|
subject: NonEmptyStringSchema,
|
|
11758
|
-
body: NonEmptyStringSchema
|
|
11759
|
-
|
|
11760
|
-
|
|
11761
|
-
|
|
11762
|
-
user_ids: z70.array(NonEmptyStringSchema).min(1),
|
|
11763
|
-
delivery_method: z70.enum(["APP", "MOBILE"]),
|
|
12085
|
+
body: NonEmptyStringSchema
|
|
12086
|
+
})).superRefine(requireAtLeastOneRecipient);
|
|
12087
|
+
var SendInAppNotificationActionSchema = buildSingleConnectionActionSchema("0-9", RecipientSelectionSchema.extend({
|
|
12088
|
+
delivery_method: NotificationDeliveryMethodSchema,
|
|
11764
12089
|
subject: NonEmptyStringSchema,
|
|
11765
|
-
body: NonEmptyStringSchema
|
|
11766
|
-
|
|
12090
|
+
body: NonEmptyStringSchema
|
|
12091
|
+
})).superRefine(requireAtLeastOneRecipient);
|
|
12092
|
+
var SendInternalMarketingEmailActionSchema = buildSingleConnectionActionSchema("0-23", z70.object({
|
|
12093
|
+
email_content_id: NonEmptyStringSchema,
|
|
12094
|
+
recipient_emails: z70.array(NonEmptyStringSchema).min(1)
|
|
12095
|
+
}).passthrough());
|
|
12096
|
+
var AdsAudienceActionSchema = buildSingleConnectionActionSchema("0-30", z70.object({
|
|
12097
|
+
audience_id: NonEmptyStringSchema
|
|
12098
|
+
}).passthrough());
|
|
12099
|
+
var RenderTemplateVariableSchema = z70.object({
|
|
12100
|
+
name: NonEmptyStringSchema,
|
|
12101
|
+
value: z70.union([ActionValueSchema, GenericObjectSchema])
|
|
12102
|
+
}).passthrough();
|
|
12103
|
+
var RenderTemplateActionSchema = buildSingleConnectionActionSchema("0-33", z70.object({
|
|
12104
|
+
variables: z70.array(RenderTemplateVariableSchema),
|
|
12105
|
+
template: z70.string(),
|
|
12106
|
+
locale: NonEmptyStringSchema.optional()
|
|
12107
|
+
}).passthrough());
|
|
12108
|
+
var EnrichRecordActionSchema = buildSingleConnectionActionSchema("0-177946906", z70.object({
|
|
12109
|
+
object_to_enrich: NonEmptyStringSchema,
|
|
12110
|
+
bi_enrichment_overwrite: BooleanStringSchema.optional()
|
|
12111
|
+
}).passthrough());
|
|
12112
|
+
var SendSurveyActionSchema = buildSingleConnectionActionSchema("0-199186210", z70.object({
|
|
12113
|
+
sendTo: NonEmptyStringSchema,
|
|
12114
|
+
survey: NonEmptyStringSchema
|
|
12115
|
+
}).passthrough());
|
|
12116
|
+
var SendSmsMessageActionSchema = buildSingleConnectionActionSchema("0-40900952", z70.object({
|
|
12117
|
+
rootMicId: NonEmptyStringSchema,
|
|
12118
|
+
targetContact: NonEmptyStringSchema
|
|
12119
|
+
}).passthrough());
|
|
12120
|
+
var UpdateAssociationLabelsActionSchema = buildSingleConnectionActionSchema("0-61139484", z70.object({
|
|
12121
|
+
fromObjectType: NonEmptyStringSchema,
|
|
12122
|
+
toObjectType: NonEmptyStringSchema,
|
|
12123
|
+
labelToUpdate: NonEmptyStringSchema,
|
|
12124
|
+
deleteExistingLabel: BooleanStringSchema,
|
|
12125
|
+
labelToApply: NonEmptyStringSchema
|
|
11767
12126
|
}).passthrough());
|
|
12127
|
+
var SendSlackNotificationActionSchema = buildSingleConnectionActionSchema("1-179507819", z70.object({
|
|
12128
|
+
message: z70.string(),
|
|
12129
|
+
slackChannelIds: NotificationRecipientArraySchema.optional(),
|
|
12130
|
+
slackUserIds: NotificationRecipientArraySchema.optional(),
|
|
12131
|
+
notifyOwner: NotificationRecipientArraySchema.optional()
|
|
12132
|
+
}).passthrough()).superRefine((value, ctx) => {
|
|
12133
|
+
const recipients = [
|
|
12134
|
+
value.fields.slackChannelIds?.length ?? 0,
|
|
12135
|
+
value.fields.slackUserIds?.length ?? 0,
|
|
12136
|
+
value.fields.notifyOwner?.length ?? 0
|
|
12137
|
+
];
|
|
12138
|
+
if (!recipients.some((count) => count > 0)) {
|
|
12139
|
+
ctx.addIssue({
|
|
12140
|
+
code: z70.ZodIssueCode.custom,
|
|
12141
|
+
message: "At least one Slack recipient target must be provided.",
|
|
12142
|
+
path: ["fields"]
|
|
12143
|
+
});
|
|
12144
|
+
}
|
|
12145
|
+
});
|
|
12146
|
+
var CustomCodeInputFieldSchema = z70.object({
|
|
12147
|
+
name: NonEmptyStringSchema,
|
|
12148
|
+
value: z70.union([ActionValueSchema, GenericObjectSchema])
|
|
12149
|
+
}).passthrough();
|
|
12150
|
+
var CustomCodeOutputFieldSchema = z70.object({
|
|
12151
|
+
name: NonEmptyStringSchema,
|
|
12152
|
+
type: CustomCodeOutputTypeSchema,
|
|
12153
|
+
options: z70.array(NonEmptyStringSchema).optional()
|
|
12154
|
+
}).passthrough();
|
|
12155
|
+
var CustomCodeActionSchema = z70.object({
|
|
12156
|
+
actionId: NonEmptyStringSchema,
|
|
12157
|
+
connection: WorkflowConnectionSchema.optional(),
|
|
12158
|
+
inputFields: z70.array(CustomCodeInputFieldSchema).optional(),
|
|
12159
|
+
outputFields: z70.array(CustomCodeOutputFieldSchema).optional(),
|
|
12160
|
+
runtime: CustomCodeRuntimeSchema,
|
|
12161
|
+
secretNames: z70.array(NonEmptyStringSchema).optional(),
|
|
12162
|
+
sourceCode: z70.string(),
|
|
12163
|
+
type: z70.literal("CUSTOM_CODE")
|
|
12164
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
12165
|
+
for (const [index, field] of (value.outputFields ?? []).entries()) {
|
|
12166
|
+
if (field.type === "ENUMERATION" && (!field.options || field.options.length === 0)) {
|
|
12167
|
+
ctx.addIssue({
|
|
12168
|
+
code: z70.ZodIssueCode.custom,
|
|
12169
|
+
message: "ENUMERATION output fields must include options.",
|
|
12170
|
+
path: ["outputFields", index, "options"]
|
|
12171
|
+
});
|
|
12172
|
+
}
|
|
12173
|
+
}
|
|
12174
|
+
validateCustomCodeSource(value, ctx);
|
|
12175
|
+
});
|
|
12176
|
+
var WebhookActionSchema = z70.object({
|
|
12177
|
+
actionId: NonEmptyStringSchema,
|
|
12178
|
+
method: WebhookMethodSchema,
|
|
12179
|
+
queryParams: z70.array(GenericObjectSchema),
|
|
12180
|
+
type: z70.literal("WEBHOOK"),
|
|
12181
|
+
webhookUrl: NonEmptyStringSchema
|
|
12182
|
+
}).passthrough();
|
|
11768
12183
|
var StaticBranchWorkflowActionSchema = z70.object({
|
|
11769
12184
|
actionId: NonEmptyStringSchema,
|
|
11770
12185
|
inputValue: StaticBranchInputValueSchema,
|
|
@@ -11788,6 +12203,7 @@ var ListBranchWorkflowActionSchema = z70.object({
|
|
|
11788
12203
|
var WorkflowActionSchemasByDefinitionKey = {
|
|
11789
12204
|
AB_TEST_BRANCH: AbTestBranchWorkflowActionSchema,
|
|
11790
12205
|
"0-1": DelayForSetAmountOfTimeActionSchema,
|
|
12206
|
+
"0-4": SendEmailActionSchema,
|
|
11791
12207
|
"0-11": RotateRecordToOwnerActionSchema,
|
|
11792
12208
|
"0-14": CreateRecordActionSchema,
|
|
11793
12209
|
"0-15": GoToWorkflowActionSchema,
|
|
@@ -11797,9 +12213,13 @@ var WorkflowActionSchemasByDefinitionKey = {
|
|
|
11797
12213
|
"0-219160146": TrackIntentSignalsActionSchema,
|
|
11798
12214
|
"0-219161394": StopTrackingIntentSignalsActionSchema,
|
|
11799
12215
|
"0-225935194": ValidateAndFormatPhoneNumberActionSchema,
|
|
12216
|
+
"0-23": SendInternalMarketingEmailActionSchema,
|
|
12217
|
+
"0-28": RelativeDelayActionSchema,
|
|
11800
12218
|
"0-29": DelayUntilEventOccursActionSchema,
|
|
12219
|
+
"0-30": AdsAudienceActionSchema,
|
|
11801
12220
|
"0-3": CreateTaskActionSchema,
|
|
11802
12221
|
"0-31": SetMarketingContactStatusActionSchema,
|
|
12222
|
+
"0-33": RenderTemplateActionSchema,
|
|
11803
12223
|
"0-35": DelayUntilDateActionSchema,
|
|
11804
12224
|
"0-43347357": ManageCommunicationSubscriptionsActionSchema,
|
|
11805
12225
|
"0-44475148": AssignConversationOwnerActionSchema,
|
|
@@ -11807,18 +12227,26 @@ var WorkflowActionSchemasByDefinitionKey = {
|
|
|
11807
12227
|
"0-4702372": UnenrollFromSequenceActionSchema,
|
|
11808
12228
|
"0-5": EditRecordsSetPropertyActionSchema,
|
|
11809
12229
|
"0-61139476": RemoveAssociationLabelsActionSchema,
|
|
12230
|
+
"0-61139484": UpdateAssociationLabelsActionSchema,
|
|
11810
12231
|
"0-63189541": CreateAssociationsActionSchema,
|
|
11811
12232
|
"0-63809083": AddToStaticListActionSchema,
|
|
11812
12233
|
"0-63863438": RemoveFromStaticListActionSchema,
|
|
11813
12234
|
"0-73444249": ApplyAssociationLabelsActionSchema,
|
|
11814
12235
|
"0-8": SendInternalEmailNotificationActionSchema,
|
|
11815
12236
|
"0-9": SendInAppNotificationActionSchema,
|
|
12237
|
+
"0-177946906": EnrichRecordActionSchema,
|
|
12238
|
+
"0-199186210": SendSurveyActionSchema,
|
|
12239
|
+
"0-40900952": SendSmsMessageActionSchema,
|
|
12240
|
+
"1-179507819": SendSlackNotificationActionSchema,
|
|
12241
|
+
CUSTOM_CODE: CustomCodeActionSchema,
|
|
11816
12242
|
LIST_BRANCH: ListBranchWorkflowActionSchema,
|
|
11817
|
-
STATIC_BRANCH: StaticBranchWorkflowActionSchema
|
|
12243
|
+
STATIC_BRANCH: StaticBranchWorkflowActionSchema,
|
|
12244
|
+
WEBHOOK: WebhookActionSchema
|
|
11818
12245
|
};
|
|
11819
12246
|
var WorkflowDefinitionActionSchema = z70.union([
|
|
11820
12247
|
AbTestBranchWorkflowActionSchema,
|
|
11821
12248
|
DelayForSetAmountOfTimeActionSchema,
|
|
12249
|
+
SendEmailActionSchema,
|
|
11822
12250
|
RotateRecordToOwnerActionSchema,
|
|
11823
12251
|
CreateRecordActionSchema,
|
|
11824
12252
|
GoToWorkflowActionSchema,
|
|
@@ -11828,9 +12256,13 @@ var WorkflowDefinitionActionSchema = z70.union([
|
|
|
11828
12256
|
TrackIntentSignalsActionSchema,
|
|
11829
12257
|
StopTrackingIntentSignalsActionSchema,
|
|
11830
12258
|
ValidateAndFormatPhoneNumberActionSchema,
|
|
12259
|
+
SendInternalMarketingEmailActionSchema,
|
|
12260
|
+
RelativeDelayActionSchema,
|
|
11831
12261
|
DelayUntilEventOccursActionSchema,
|
|
12262
|
+
AdsAudienceActionSchema,
|
|
11832
12263
|
CreateTaskActionSchema,
|
|
11833
12264
|
SetMarketingContactStatusActionSchema,
|
|
12265
|
+
RenderTemplateActionSchema,
|
|
11834
12266
|
DelayUntilDateActionSchema,
|
|
11835
12267
|
ManageCommunicationSubscriptionsActionSchema,
|
|
11836
12268
|
AssignConversationOwnerActionSchema,
|
|
@@ -11838,14 +12270,21 @@ var WorkflowDefinitionActionSchema = z70.union([
|
|
|
11838
12270
|
UnenrollFromSequenceActionSchema,
|
|
11839
12271
|
EditRecordsSetPropertyActionSchema,
|
|
11840
12272
|
RemoveAssociationLabelsActionSchema,
|
|
12273
|
+
UpdateAssociationLabelsActionSchema,
|
|
11841
12274
|
CreateAssociationsActionSchema,
|
|
11842
12275
|
AddToStaticListActionSchema,
|
|
11843
12276
|
RemoveFromStaticListActionSchema,
|
|
11844
12277
|
ApplyAssociationLabelsActionSchema,
|
|
11845
12278
|
SendInternalEmailNotificationActionSchema,
|
|
11846
12279
|
SendInAppNotificationActionSchema,
|
|
12280
|
+
EnrichRecordActionSchema,
|
|
12281
|
+
SendSurveyActionSchema,
|
|
12282
|
+
SendSmsMessageActionSchema,
|
|
12283
|
+
SendSlackNotificationActionSchema,
|
|
12284
|
+
CustomCodeActionSchema,
|
|
11847
12285
|
ListBranchWorkflowActionSchema,
|
|
11848
|
-
StaticBranchWorkflowActionSchema
|
|
12286
|
+
StaticBranchWorkflowActionSchema,
|
|
12287
|
+
WebhookActionSchema
|
|
11849
12288
|
]);
|
|
11850
12289
|
|
|
11851
12290
|
// ../shared/pure/workflow-action-types.ts
|
|
@@ -11857,7 +12296,10 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11857
12296
|
connectionType: "SINGLE_CONNECTION",
|
|
11858
12297
|
fields: [
|
|
11859
12298
|
{ name: "delta", type: "string", required: true, description: "Duration value (e.g. '1440' for minutes)" },
|
|
11860
|
-
{ name: "time_unit", type: "string", required: true, description: "Unit: MINUTES, HOURS, or DAYS" }
|
|
12299
|
+
{ name: "time_unit", type: "string", required: true, description: "Unit: MINUTES, HOURS, or DAYS" },
|
|
12300
|
+
{ name: "days_of_week", type: "array", required: false, description: "Optional allowed execution weekdays when the delay should only release on selected days." },
|
|
12301
|
+
{ name: "time_of_day", type: "object", required: false, description: "Optional release time of day: { hour, minute }." },
|
|
12302
|
+
{ name: "time_zone_strategy", type: "string", required: false, description: "Optional timezone handling mode used by HubSpot when evaluating the delay." }
|
|
11861
12303
|
]
|
|
11862
12304
|
},
|
|
11863
12305
|
"0-3": {
|
|
@@ -11870,6 +12312,8 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11870
12312
|
{ name: "subject", type: "string", required: true, description: "Task subject line" },
|
|
11871
12313
|
{ name: "body", type: "string", required: true, description: "Task body (HTML)" },
|
|
11872
12314
|
{ name: "priority", type: "string", required: false, description: "Priority: NONE, LOW, MEDIUM, HIGH" },
|
|
12315
|
+
{ name: "owner_assignment", type: "object", required: false, description: "Optional owner assignment spec for the created task, for example { type: 'CUSTOM', value: { type: 'OBJECT_PROPERTY', propertyName: 'hubspot_owner_id' } }." },
|
|
12316
|
+
{ name: "queue_id", type: "string", required: false, description: "Optional task queue identifier used in some harvested payloads." },
|
|
11873
12317
|
{ name: "associations", type: "array", required: false, description: "Association targets. On CONTACT_FLOW, use [{ target: { associationCategory: 'HUBSPOT_DEFINED', associationTypeId: 204 }, value: { type: 'ENROLLED_OBJECT' } }]." },
|
|
11874
12318
|
{ name: "use_explicit_associations", type: "string", required: false, description: "'true' to use explicit associations. On CONTACT_FLOW create-task actions, set this to 'true' with the enrolled-contact association to avoid HubSpot HTTP 500 errors." }
|
|
11875
12319
|
]
|
|
@@ -11886,11 +12330,11 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11886
12330
|
"0-5": {
|
|
11887
12331
|
actionTypeId: "0-5",
|
|
11888
12332
|
name: "Edit records / Set property",
|
|
11889
|
-
description: "Set,
|
|
12333
|
+
description: "Set, copy, append, increment, timestamp, or clear CRM property values on the enrolled record or on an associated record.",
|
|
11890
12334
|
connectionType: "SINGLE_CONNECTION",
|
|
11891
12335
|
fields: [
|
|
11892
12336
|
{ name: "property_name", type: "string", required: true, description: "Internal property name to set" },
|
|
11893
|
-
{ name: "value", type: "object", required: true, description: "
|
|
12337
|
+
{ name: "value", type: "object", required: true, description: "Typed value payload. Common variants are STATIC_VALUE, OBJECT_PROPERTY, INCREMENT, FIELD_DATA, TIMESTAMP, STATIC_APPEND_VALUE, ENROLLMENT_EVENT_PROPERTY, and FETCHED_OBJECT_PROPERTY. STATIC_VALUE must include type explicitly or HubSpot returns HTTP 500." },
|
|
11894
12338
|
{ name: "association", type: "object", required: false, description: "Association spec if setting on an associated record: { associationCategory: 'HUBSPOT_DEFINED', associationTypeId: <number> }" }
|
|
11895
12339
|
]
|
|
11896
12340
|
},
|
|
@@ -11900,7 +12344,9 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11900
12344
|
description: "Send an internal email to selected users or teams",
|
|
11901
12345
|
connectionType: "SINGLE_CONNECTION",
|
|
11902
12346
|
fields: [
|
|
11903
|
-
{ name: "user_ids", type: "array", required:
|
|
12347
|
+
{ name: "user_ids", type: "array", required: false, description: "Array of user ID strings to notify" },
|
|
12348
|
+
{ name: "team_ids", type: "array", required: false, description: "Optional array of team IDs to notify." },
|
|
12349
|
+
{ name: "owner_properties", type: "array", required: false, description: "Optional owner-property keys used by some payloads to target owners dynamically." },
|
|
11904
12350
|
{ name: "subject", type: "string", required: true, description: "Email subject" },
|
|
11905
12351
|
{ name: "body", type: "string", required: true, description: "Email body (HTML)" }
|
|
11906
12352
|
]
|
|
@@ -11911,7 +12357,9 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11911
12357
|
description: "Send a notification to specified users or teams in HubSpot",
|
|
11912
12358
|
connectionType: "SINGLE_CONNECTION",
|
|
11913
12359
|
fields: [
|
|
11914
|
-
{ name: "user_ids", type: "array", required:
|
|
12360
|
+
{ name: "user_ids", type: "array", required: false, description: "Array of user ID strings to notify" },
|
|
12361
|
+
{ name: "team_ids", type: "array", required: false, description: "Optional array of team IDs to notify." },
|
|
12362
|
+
{ name: "owner_properties", type: "array", required: false, description: "Optional owner-property keys used by some payloads to target owners dynamically." },
|
|
11915
12363
|
{ name: "delivery_method", type: "string", required: true, description: "Delivery method: APP" },
|
|
11916
12364
|
{ name: "subject", type: "string", required: true, description: "Notification subject" },
|
|
11917
12365
|
{ name: "body", type: "string", required: true, description: "Notification body" }
|
|
@@ -11923,7 +12371,8 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11923
12371
|
description: "Evenly distribute enrolled records to selected users or teams. IMPORTANT: user_ids must contain HubSpot user IDs (owners table user_id column), NOT owner IDs (owners table owner_id column) \u2014 these are different values for the same person. Using owner IDs will cause an internal HubSpot error. CONTACT_FLOW requires all three fields (user_ids, target_property, overwrite_current_owner). PLATFORM_FLOW auto-fills target_property and overwrite_current_owner when only user_ids is provided.",
|
|
11924
12372
|
connectionType: "SINGLE_CONNECTION",
|
|
11925
12373
|
fields: [
|
|
11926
|
-
{ name: "user_ids", type: "array", required:
|
|
12374
|
+
{ name: "user_ids", type: "array", required: false, description: "Array of HubSpot user ID strings to rotate between. IMPORTANT: query the owners table and use the user_id column, NOT owner_id. owner_id and user_id are different values \u2014 using owner_id will cause HubSpot API errors." },
|
|
12375
|
+
{ name: "team_ids", type: "array", required: false, description: "Optional array of team IDs to include in the rotation." },
|
|
11927
12376
|
{ name: "target_property", type: "string", required: true, description: "Owner property to set, e.g. 'hubspot_owner_id'. Required on CONTACT_FLOW; auto-filled on PLATFORM_FLOW." },
|
|
11928
12377
|
{ name: "overwrite_current_owner", type: "string", required: true, description: "'true' or 'false' \u2014 whether to overwrite existing owner. Required on CONTACT_FLOW; auto-filled as 'false' on PLATFORM_FLOW." }
|
|
11929
12378
|
]
|
|
@@ -11931,13 +12380,13 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11931
12380
|
"0-14": {
|
|
11932
12381
|
actionTypeId: "0-14",
|
|
11933
12382
|
name: "Create record",
|
|
11934
|
-
description: "Create a CRM record
|
|
12383
|
+
description: "Create a CRM record and optionally initialize its properties and associations in the same workflow step.",
|
|
11935
12384
|
connectionType: "SINGLE_CONNECTION",
|
|
11936
12385
|
fields: [
|
|
11937
12386
|
{ name: "object_type_id", type: "string", required: true, description: "Object type ID to create (e.g. '0-3' for deals, '0-5' for tickets)" },
|
|
11938
|
-
{ name: "properties", type: "array", required: true, description: "Array of { targetProperty, value
|
|
11939
|
-
{ name: "associations", type: "array", required: false, description: "Association targets for the new record" },
|
|
11940
|
-
{ name: "use_explicit_associations", type: "string", required: false, description: "'true' to use explicit associations" }
|
|
12387
|
+
{ name: "properties", type: "array", required: true, description: "Array of { targetProperty, value } records. Harvested values use OBJECT_PROPERTY, STATIC_VALUE, RELATIVE_DATETIME, and STATIC_APPEND_VALUE variants. STATIC_VALUE payloads must include type: 'STATIC_VALUE' or HubSpot returns HTTP 500." },
|
|
12388
|
+
{ name: "associations", type: "array", required: false, description: "Association targets for the new record. Harvested variants include ENROLLED_OBJECT and COPY_ASSOCIATION association values." },
|
|
12389
|
+
{ name: "use_explicit_associations", type: "string", required: false, description: "'true' to use explicit associations. Harvested payloads almost always set this when associations are present." }
|
|
11941
12390
|
]
|
|
11942
12391
|
},
|
|
11943
12392
|
"0-15": {
|
|
@@ -11977,10 +12426,22 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11977
12426
|
"0-29": {
|
|
11978
12427
|
actionTypeId: "0-29",
|
|
11979
12428
|
name: "Delay until an event occurs",
|
|
11980
|
-
description: "
|
|
12429
|
+
description: "Pause the workflow until a qualifying event occurs or the timeout expires.",
|
|
12430
|
+
connectionType: "SINGLE_CONNECTION",
|
|
12431
|
+
fields: [
|
|
12432
|
+
{ name: "expiration_minutes", type: "string", required: true, description: "How long the workflow should wait for the event before timing out" },
|
|
12433
|
+
{ name: "event_filter_branches", type: "array", required: false, description: "Optional event filter tree used to define which completed event releases the delay. This follows the same branch-node concepts as LIST_BRANCH event filtering." },
|
|
12434
|
+
{ name: "target_object_override", type: "string", required: false, description: "Optional object override used by some harvested event-delay payloads." }
|
|
12435
|
+
]
|
|
12436
|
+
},
|
|
12437
|
+
"0-28": {
|
|
12438
|
+
actionTypeId: "0-28",
|
|
12439
|
+
name: "Relative delay",
|
|
12440
|
+
description: "Delay execution relative to a target time using a direction such as BEFORE or AFTER.",
|
|
11981
12441
|
connectionType: "SINGLE_CONNECTION",
|
|
11982
12442
|
fields: [
|
|
11983
|
-
{ name: "
|
|
12443
|
+
{ name: "delay", type: "object", required: true, description: "Relative delay payload with delta, timeUnit, timeOfDay, and daysOfWeek." },
|
|
12444
|
+
{ name: "direction", type: "string", required: true, description: "Direction of the relative delay, for example BEFORE." }
|
|
11984
12445
|
]
|
|
11985
12446
|
},
|
|
11986
12447
|
"0-30": {
|
|
@@ -11988,16 +12449,18 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
11988
12449
|
name: "Add to / Remove from ads audience",
|
|
11989
12450
|
description: "Add or remove contacts from an ads audience",
|
|
11990
12451
|
connectionType: "SINGLE_CONNECTION",
|
|
11991
|
-
fields: [
|
|
12452
|
+
fields: [
|
|
12453
|
+
{ name: "audience_id", type: "string", required: true, description: "Ads audience identifier targeted by the action." }
|
|
12454
|
+
]
|
|
11992
12455
|
},
|
|
11993
12456
|
"0-31": {
|
|
11994
12457
|
actionTypeId: "0-31",
|
|
11995
12458
|
name: "Set marketing contact status",
|
|
11996
|
-
description: "
|
|
12459
|
+
description: "Change the contact's marketing-contact status for billing and messaging eligibility.",
|
|
11997
12460
|
connectionType: "SINGLE_CONNECTION",
|
|
11998
12461
|
fields: [
|
|
11999
12462
|
{ name: "targetContact", type: "string", required: true, description: "Target contact token or fetched object reference, usually '{{ enrolled_object }}' in contact workflows" },
|
|
12000
|
-
{ name: "marketableType", type: "string", required: true, description: "Marketing status to apply
|
|
12463
|
+
{ name: "marketableType", type: "string", required: true, description: "Marketing status to apply. Harvested values include MARKETABLE, MARKETABLE_UNTIL_RENEWAL, and NON_MARKETABLE." }
|
|
12001
12464
|
]
|
|
12002
12465
|
},
|
|
12003
12466
|
"0-35": {
|
|
@@ -12012,6 +12475,17 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12012
12475
|
{ name: "time_of_day", type: "object", required: true, description: "Required time of day: { hour: number, minute: number }. HubSpot UI rejects delay-until-date actions without it. If the workflow continues after this delay, the next action should be a STATIC_BRANCH on hs_delay_status rather than a direct business-action connection." }
|
|
12013
12476
|
]
|
|
12014
12477
|
},
|
|
12478
|
+
"0-33": {
|
|
12479
|
+
actionTypeId: "0-33",
|
|
12480
|
+
name: "Render template",
|
|
12481
|
+
description: "Render a template string using named variables resolved from enrolled-record properties or prior workflow outputs.",
|
|
12482
|
+
connectionType: "SINGLE_CONNECTION",
|
|
12483
|
+
fields: [
|
|
12484
|
+
{ name: "variables", type: "array", required: true, description: "Named variable bindings used inside the template." },
|
|
12485
|
+
{ name: "template", type: "string", required: true, description: "Template source string with variable references." },
|
|
12486
|
+
{ name: "locale", type: "string", required: false, description: "Optional locale identifier used during rendering." }
|
|
12487
|
+
]
|
|
12488
|
+
},
|
|
12015
12489
|
"0-63809083": {
|
|
12016
12490
|
actionTypeId: "0-63809083",
|
|
12017
12491
|
name: "Add to static list",
|
|
@@ -12033,12 +12507,12 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12033
12507
|
"0-43347357": {
|
|
12034
12508
|
actionTypeId: "0-43347357",
|
|
12035
12509
|
name: "Manage communication subscriptions",
|
|
12036
|
-
description: "Update subscription status, legal basis, and
|
|
12510
|
+
description: "Update a contact's communication subscription status, legal basis, and channel-level consent for a specific subscription definition.",
|
|
12037
12511
|
connectionType: "SINGLE_CONNECTION",
|
|
12038
12512
|
fields: [
|
|
12039
12513
|
{ name: "targetContact", type: "string", required: true, description: "Target contact token or fetched object reference, e.g. '{{ enrolled_object }}'" },
|
|
12040
|
-
{ name: "channel", type: "string", required: true, description: "Communication channel,
|
|
12041
|
-
{ name: "optState", type: "string", required: true, description: "Subscription status, e.g.
|
|
12514
|
+
{ name: "channel", type: "string", required: true, description: "Communication channel. Harvested values include EMAIL, SMS, and WHATSAPP." },
|
|
12515
|
+
{ name: "optState", type: "string", required: true, description: "Subscription status, e.g. OPT_IN or OPT_OUT." },
|
|
12042
12516
|
{ name: "subscriptionId", type: "string", required: true, description: "HubSpot subscription type ID to update" },
|
|
12043
12517
|
{ name: "legalBasis", type: "string", required: true, description: "Legal basis, e.g. LEGITIMATE_INTEREST_CLIENT, LEGITIMATE_INTEREST_OTHER, PERFORMANCE_OF_CONTRACT, CONSENT_WITH_NOTICE, NON_GDPR" },
|
|
12044
12518
|
{ name: "legalBasisExplanation", type: "string", required: true, description: "Free-text explanation for the selected legal basis" }
|
|
@@ -12047,14 +12521,14 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12047
12521
|
"0-46510720": {
|
|
12048
12522
|
actionTypeId: "0-46510720",
|
|
12049
12523
|
name: "Enroll in a sequence",
|
|
12050
|
-
description: "
|
|
12524
|
+
description: "Enroll contacts into a sales sequence with either the contact owner or a specific user as the sender.",
|
|
12051
12525
|
connectionType: "SINGLE_CONNECTION",
|
|
12052
12526
|
fields: [
|
|
12053
12527
|
{ name: "sequenceId", type: "string", required: true, description: "HubSpot sequence ID to enroll the contact into" },
|
|
12054
12528
|
{ name: "shouldUseContactTimeZone", type: "string", required: true, description: "'true' or 'false' to send based on the contact's time zone" },
|
|
12055
|
-
{ name: "senderType", type: "string", required: true, description: "Sequence sender mode
|
|
12056
|
-
{ name: "contactOwnerProperty", type: "string", required: false, description: "
|
|
12057
|
-
{ name: "userId", type: "string", required: false, description: "
|
|
12529
|
+
{ name: "senderType", type: "string", required: true, description: "Sequence sender mode. Harvested values include CONTACT_OWNER and SPECIFIC_USER." },
|
|
12530
|
+
{ name: "contactOwnerProperty", type: "string", required: false, description: "Required when senderType is CONTACT_OWNER, usually hubspot_owner_id." },
|
|
12531
|
+
{ name: "userId", type: "string", required: false, description: "Required when senderType is SPECIFIC_USER. Must be a HubSpot user ID, not owner_id." }
|
|
12058
12532
|
]
|
|
12059
12533
|
},
|
|
12060
12534
|
"0-4702372": {
|
|
@@ -12095,7 +12569,13 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12095
12569
|
{ name: "fromObjectType", type: "string", required: true, description: "HubSpot object type ID on the source side of the association pair" },
|
|
12096
12570
|
{ name: "toObjectType", type: "string", required: true, description: "HubSpot object type ID on the destination side of the association pair" },
|
|
12097
12571
|
{ name: "labelToApply", type: "string", required: true, description: "Association label type ID to apply" },
|
|
12098
|
-
{ name: "applyLabelToAllAssociatedObjects", type: "string", required: true, description: "'true' or 'false' to control whether the label applies to all associated objects" }
|
|
12572
|
+
{ name: "applyLabelToAllAssociatedObjects", type: "string", required: true, description: "'true' or 'false' to control whether the label applies to all associated objects" },
|
|
12573
|
+
{ name: "matchBy", type: "string", required: false, description: "Optional matching strategy used to target specific associated records." },
|
|
12574
|
+
{ name: "enrolledObjectPropertyNameToMatch", type: "string", required: false, description: "Optional enrolled-record property used for association matching." },
|
|
12575
|
+
{ name: "associatedObjectPropertyNameToMatch", type: "string", required: false, description: "Optional associated-record property used for association matching." },
|
|
12576
|
+
{ name: "associatedObjectPropertyName", type: "string", required: false, description: "Optional associated-record property name used by property-based label application variants." },
|
|
12577
|
+
{ name: "associatedObjectPropertyOperator", type: "string", required: false, description: "Optional operator used with associatedObjectPropertyName." },
|
|
12578
|
+
{ name: "associatedObjectPropertyValue", type: "string", required: false, description: "Optional comparison value used with associatedObjectPropertyName." }
|
|
12099
12579
|
]
|
|
12100
12580
|
},
|
|
12101
12581
|
"0-61139476": {
|
|
@@ -12136,7 +12616,9 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12136
12616
|
description: "Format phone numbers for calling compatibility",
|
|
12137
12617
|
connectionType: "SINGLE_CONNECTION",
|
|
12138
12618
|
fields: [
|
|
12139
|
-
{ name: "defaultCountryCodeMode", type: "string", required: true, description: "Default country code mode
|
|
12619
|
+
{ name: "defaultCountryCodeMode", type: "string", required: true, description: "Default country code mode: static_default_country_code, dynamic_default_country_code, or none." },
|
|
12620
|
+
{ name: "propertyValue", type: "string", required: false, description: "Optional property token or value source for the phone number being normalized." },
|
|
12621
|
+
{ name: "staticDefaultCountryCode", type: "string", required: false, description: "Required when defaultCountryCodeMode is static_default_country_code. Omit it for the other modes." }
|
|
12140
12622
|
]
|
|
12141
12623
|
},
|
|
12142
12624
|
"0-177946906": {
|
|
@@ -12144,14 +12626,20 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12144
12626
|
name: "Enrich record",
|
|
12145
12627
|
description: "Enrich contacts or companies with additional data",
|
|
12146
12628
|
connectionType: "SINGLE_CONNECTION",
|
|
12147
|
-
fields: [
|
|
12629
|
+
fields: [
|
|
12630
|
+
{ name: "object_to_enrich", type: "string", required: true, description: "Object token or identifier indicating which record should be enriched." },
|
|
12631
|
+
{ name: "bi_enrichment_overwrite", type: "string", required: false, description: "Optional boolean-string controlling whether enrichment should overwrite existing values." }
|
|
12632
|
+
]
|
|
12148
12633
|
},
|
|
12149
12634
|
"0-199186210": {
|
|
12150
12635
|
actionTypeId: "0-199186210",
|
|
12151
12636
|
name: "Send survey",
|
|
12152
12637
|
description: "Send a custom survey to enrolled contacts (BETA)",
|
|
12153
12638
|
connectionType: "SINGLE_CONNECTION",
|
|
12154
|
-
fields: [
|
|
12639
|
+
fields: [
|
|
12640
|
+
{ name: "survey", type: "string", required: true, description: "Survey identifier to send." },
|
|
12641
|
+
{ name: "sendTo", type: "string", required: true, description: "Target recipient token or recipient mode." }
|
|
12642
|
+
]
|
|
12155
12643
|
},
|
|
12156
12644
|
"0-25085031": {
|
|
12157
12645
|
actionTypeId: "0-25085031",
|
|
@@ -12165,7 +12653,23 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12165
12653
|
name: "Send SMS message",
|
|
12166
12654
|
description: "Send SMS to enrolled or associated contacts",
|
|
12167
12655
|
connectionType: "SINGLE_CONNECTION",
|
|
12168
|
-
fields: [
|
|
12656
|
+
fields: [
|
|
12657
|
+
{ name: "rootMicId", type: "string", required: true, description: "Messaging integration or campaign identifier used by the SMS action." },
|
|
12658
|
+
{ name: "targetContact", type: "string", required: true, description: "Target contact token or fetched object reference." }
|
|
12659
|
+
]
|
|
12660
|
+
},
|
|
12661
|
+
"0-61139484": {
|
|
12662
|
+
actionTypeId: "0-61139484",
|
|
12663
|
+
name: "Update association labels",
|
|
12664
|
+
description: "Replace or apply association labels on existing CRM record associations.",
|
|
12665
|
+
connectionType: "SINGLE_CONNECTION",
|
|
12666
|
+
fields: [
|
|
12667
|
+
{ name: "fromObjectType", type: "string", required: true, description: "HubSpot object type ID on the source side of the association pair." },
|
|
12668
|
+
{ name: "toObjectType", type: "string", required: true, description: "HubSpot object type ID on the destination side of the association pair." },
|
|
12669
|
+
{ name: "labelToUpdate", type: "string", required: true, description: "Existing association label type ID to replace." },
|
|
12670
|
+
{ name: "deleteExistingLabel", type: "string", required: true, description: "'true' or 'false' controlling whether the existing label should be removed before applying the new one." },
|
|
12671
|
+
{ name: "labelToApply", type: "string", required: true, description: "Association label type ID to apply." }
|
|
12672
|
+
]
|
|
12169
12673
|
},
|
|
12170
12674
|
"0-172351286": {
|
|
12171
12675
|
actionTypeId: "0-172351286",
|
|
@@ -12246,7 +12750,36 @@ var BUILT_IN_ACTION_TYPES = {
|
|
|
12246
12750
|
name: "Send Slack notification",
|
|
12247
12751
|
description: "Send a Slack message via integrated Slack workspace",
|
|
12248
12752
|
connectionType: "SINGLE_CONNECTION",
|
|
12249
|
-
fields: [
|
|
12753
|
+
fields: [
|
|
12754
|
+
{ name: "message", type: "string", required: true, description: "Slack message body." },
|
|
12755
|
+
{ name: "slackChannelIds", type: "array", required: false, description: "Optional target Slack channel IDs. Provide at least one recipient target across the Slack recipient fields." },
|
|
12756
|
+
{ name: "slackUserIds", type: "array", required: false, description: "Optional target Slack user IDs. Provide at least one recipient target across the Slack recipient fields." },
|
|
12757
|
+
{ name: "notifyOwner", type: "array", required: false, description: "Optional owner-targeting values harvested as an array in corpus payloads. Provide at least one recipient target across the Slack recipient fields." }
|
|
12758
|
+
]
|
|
12759
|
+
},
|
|
12760
|
+
CUSTOM_CODE: {
|
|
12761
|
+
actionTypeId: "CUSTOM_CODE",
|
|
12762
|
+
name: "Custom code",
|
|
12763
|
+
description: "Run a HubSpot server-side custom code step with declared inputs, outputs, runtime, and optional secrets.",
|
|
12764
|
+
connectionType: "SINGLE_CONNECTION",
|
|
12765
|
+
fields: [
|
|
12766
|
+
{ name: "secretNames", type: "array", required: false, description: "Optional list of secret names exposed to the runtime." },
|
|
12767
|
+
{ name: "sourceCode", type: "string", required: true, description: "Custom code source body. It must be valid JavaScript, define exports.main or module.exports.main, and either call callback(...) or return an object containing outputFields." },
|
|
12768
|
+
{ name: "runtime", type: "string", required: true, description: "Execution runtime. Harvested corpus currently uses NODE20X." },
|
|
12769
|
+
{ name: "inputFields", type: "array", required: false, description: "Optional named inputs passed into the custom code runtime. Harvested input variants include OBJECT_PROPERTY, FIELD_DATA, ENROLLMENT_EVENT_PROPERTY, and FETCHED_OBJECT_PROPERTY." },
|
|
12770
|
+
{ name: "outputFields", type: "array", required: false, description: "Optional declared output fields produced by the custom code action. Output types include NUMBER, DATE, STRING, ENUMERATION, DATETIME, and BOOLEAN. ENUMERATION outputs must include an options array." }
|
|
12771
|
+
]
|
|
12772
|
+
},
|
|
12773
|
+
WEBHOOK: {
|
|
12774
|
+
actionTypeId: "WEBHOOK",
|
|
12775
|
+
name: "Webhook",
|
|
12776
|
+
description: "Send an outbound HTTP request from the workflow to an external webhook endpoint.",
|
|
12777
|
+
connectionType: "SINGLE_CONNECTION",
|
|
12778
|
+
fields: [
|
|
12779
|
+
{ name: "method", type: "string", required: true, description: "HTTP method used for the webhook request. Supported values are GET, POST, PUT, PATCH, and DELETE." },
|
|
12780
|
+
{ name: "webhookUrl", type: "string", required: true, description: "Target webhook URL." },
|
|
12781
|
+
{ name: "queryParams", type: "array", required: false, description: "Optional query parameter definitions attached to the request." }
|
|
12782
|
+
]
|
|
12250
12783
|
},
|
|
12251
12784
|
"1-100451": {
|
|
12252
12785
|
actionTypeId: "1-100451",
|
|
@@ -12291,6 +12824,10 @@ var WORKFLOW_ACTION_CREATE_METADATA_BY_ID = {
|
|
|
12291
12824
|
],
|
|
12292
12825
|
createGuidanceText: "For CONTACT_FLOW create-task actions, include associations with target { associationCategory: 'HUBSPOT_DEFINED', associationTypeId: 204 }, value { type: 'ENROLLED_OBJECT' }, and use_explicit_associations: 'true'. Omitting these can cause HubSpot to return HTTP 500 even when task_type, subject, and body are present."
|
|
12293
12826
|
},
|
|
12827
|
+
"0-4": {
|
|
12828
|
+
resourceRequirements: [],
|
|
12829
|
+
createGuidanceText: "Use a real automated marketing email content_id. The ID is not currently queryable from the synced portal metadata, so treat it as not exposed unless you already know it."
|
|
12830
|
+
},
|
|
12294
12831
|
"0-8": {
|
|
12295
12832
|
resourceRequirements: [
|
|
12296
12833
|
{
|
|
@@ -12327,6 +12864,14 @@ var WORKFLOW_ACTION_CREATE_METADATA_BY_ID = {
|
|
|
12327
12864
|
],
|
|
12328
12865
|
createGuidanceText: "On CONTACT_FLOW, always send user_ids, target_property, and overwrite_current_owner together. Use owners.user_id values, never owner_id."
|
|
12329
12866
|
},
|
|
12867
|
+
"0-23": {
|
|
12868
|
+
resourceRequirements: [],
|
|
12869
|
+
createGuidanceText: "This action is API-incompatible in harvested testing. Keep the type and examples in the catalog, but avoid generating it automatically for write plans."
|
|
12870
|
+
},
|
|
12871
|
+
"0-28": {
|
|
12872
|
+
resourceRequirements: [],
|
|
12873
|
+
createGuidanceText: "Use a relative delay payload in fields.delay with delta, timeUnit, timeOfDay, and daysOfWeek, plus a direction such as BEFORE."
|
|
12874
|
+
},
|
|
12330
12875
|
"0-15": {
|
|
12331
12876
|
resourceRequirements: [
|
|
12332
12877
|
{
|
|
@@ -12343,6 +12888,14 @@ var WORKFLOW_ACTION_CREATE_METADATA_BY_ID = {
|
|
|
12343
12888
|
resourceRequirements: [],
|
|
12344
12889
|
createGuidanceText: "When using STATIC_VALUE dates, send a future Unix-milliseconds timestamp. time_of_day is required for reliable creation. If the delay action continues to another step, route it into a STATIC_BRANCH that reads inputValue { actionId: '<delay_action_id>', dataKey: 'hs_delay_status', type: 'FIELD_DATA' } and continues from the DATE_MET_AS_PLANNED branch instead of connecting directly to the next business action."
|
|
12345
12890
|
},
|
|
12891
|
+
"0-30": {
|
|
12892
|
+
resourceRequirements: [],
|
|
12893
|
+
createGuidanceText: "Use a real ads audience identifier in audience_id. This value is not currently queryable from synced portal metadata."
|
|
12894
|
+
},
|
|
12895
|
+
"0-33": {
|
|
12896
|
+
resourceRequirements: [],
|
|
12897
|
+
createGuidanceText: "Render-template actions should use simple variable bindings backed by enrolled-object properties or prior action outputs."
|
|
12898
|
+
},
|
|
12346
12899
|
"0-14": {
|
|
12347
12900
|
resourceRequirements: [],
|
|
12348
12901
|
createGuidanceText: "Prefer standard object types and explicit STATIC_VALUE property payloads for creation examples. Avoid portal-specific custom object IDs in default templates."
|
|
@@ -12355,99 +12908,1698 @@ var WORKFLOW_ACTION_CREATE_METADATA_BY_ID = {
|
|
|
12355
12908
|
resolutionMode: "queryable",
|
|
12356
12909
|
sourceHint: "lists.list_id"
|
|
12357
12910
|
}
|
|
12358
|
-
],
|
|
12359
|
-
createGuidanceText: "Resolve listId from the lists table before creating the workflow."
|
|
12911
|
+
],
|
|
12912
|
+
createGuidanceText: "Resolve listId from the lists table before creating the workflow."
|
|
12913
|
+
},
|
|
12914
|
+
"0-63863438": {
|
|
12915
|
+
resourceRequirements: [
|
|
12916
|
+
{
|
|
12917
|
+
fieldName: "listId",
|
|
12918
|
+
resourceKind: "list",
|
|
12919
|
+
resolutionMode: "queryable",
|
|
12920
|
+
sourceHint: "lists.list_id"
|
|
12921
|
+
}
|
|
12922
|
+
],
|
|
12923
|
+
createGuidanceText: "Resolve listId from the lists table before creating the workflow."
|
|
12924
|
+
},
|
|
12925
|
+
"0-43347357": {
|
|
12926
|
+
resourceRequirements: [
|
|
12927
|
+
{
|
|
12928
|
+
fieldName: "subscriptionId",
|
|
12929
|
+
resourceKind: "subscription_definition",
|
|
12930
|
+
resolutionMode: "not_exposed",
|
|
12931
|
+
sourceHint: "HubSpot communication subscription definition ID"
|
|
12932
|
+
}
|
|
12933
|
+
],
|
|
12934
|
+
createGuidanceText: "Use a real communication subscription definition ID. targetContact can often be '{{ enrolled_object }}' for contact workflows."
|
|
12935
|
+
},
|
|
12936
|
+
"0-46510720": {
|
|
12937
|
+
resourceRequirements: [
|
|
12938
|
+
{
|
|
12939
|
+
fieldName: "sequenceId",
|
|
12940
|
+
resourceKind: "sequence",
|
|
12941
|
+
resolutionMode: "not_exposed",
|
|
12942
|
+
sourceHint: "HubSpot sequence ID"
|
|
12943
|
+
},
|
|
12944
|
+
{
|
|
12945
|
+
fieldName: "userId",
|
|
12946
|
+
resourceKind: "user",
|
|
12947
|
+
resolutionMode: "queryable",
|
|
12948
|
+
sourceHint: "owners.user_id",
|
|
12949
|
+
notes: "Only needed when senderType is SPECIFIC_USER."
|
|
12950
|
+
}
|
|
12951
|
+
],
|
|
12952
|
+
createGuidanceText: "Use a real sequenceId. Prefer CONTACT_OWNER plus contactOwnerProperty for generic templates, or SPECIFIC_USER plus a valid owners.user_id."
|
|
12953
|
+
},
|
|
12954
|
+
"0-63189541": {
|
|
12955
|
+
resourceRequirements: [
|
|
12956
|
+
{
|
|
12957
|
+
fieldName: "labelToApply",
|
|
12958
|
+
resourceKind: "association_label",
|
|
12959
|
+
resolutionMode: "partially_queryable",
|
|
12960
|
+
sourceHint: "Association label typeId",
|
|
12961
|
+
notes: "May come from existing association labels or a label created earlier in the same plan."
|
|
12962
|
+
}
|
|
12963
|
+
],
|
|
12964
|
+
createGuidanceText: "For match fields, prefer bare property names over 'objectTypeId/propertyName' prefixes in create templates."
|
|
12965
|
+
},
|
|
12966
|
+
"0-73444249": {
|
|
12967
|
+
resourceRequirements: [
|
|
12968
|
+
{
|
|
12969
|
+
fieldName: "labelToApply",
|
|
12970
|
+
resourceKind: "association_label",
|
|
12971
|
+
resolutionMode: "partially_queryable",
|
|
12972
|
+
sourceHint: "Association label typeId"
|
|
12973
|
+
}
|
|
12974
|
+
],
|
|
12975
|
+
createGuidanceText: "Use an existing association label typeId for the relevant object pair."
|
|
12976
|
+
},
|
|
12977
|
+
"0-61139476": {
|
|
12978
|
+
resourceRequirements: [
|
|
12979
|
+
{
|
|
12980
|
+
fieldName: "labelToRemove",
|
|
12981
|
+
resourceKind: "association_label",
|
|
12982
|
+
resolutionMode: "partially_queryable",
|
|
12983
|
+
sourceHint: "Association label typeId"
|
|
12984
|
+
}
|
|
12985
|
+
],
|
|
12986
|
+
createGuidanceText: "Use an existing association label typeId for the relevant object pair."
|
|
12987
|
+
},
|
|
12988
|
+
"0-61139484": {
|
|
12989
|
+
resourceRequirements: [
|
|
12990
|
+
{
|
|
12991
|
+
fieldName: "labelToUpdate",
|
|
12992
|
+
resourceKind: "association_label",
|
|
12993
|
+
resolutionMode: "partially_queryable",
|
|
12994
|
+
sourceHint: "Association label typeId to replace"
|
|
12995
|
+
},
|
|
12996
|
+
{
|
|
12997
|
+
fieldName: "labelToApply",
|
|
12998
|
+
resourceKind: "association_label",
|
|
12999
|
+
resolutionMode: "partially_queryable",
|
|
13000
|
+
sourceHint: "Association label typeId to apply"
|
|
13001
|
+
}
|
|
13002
|
+
],
|
|
13003
|
+
createGuidanceText: "Use valid association label type IDs for both labelToUpdate and labelToApply, and ensure the from/to object pair matches the label schema."
|
|
13004
|
+
},
|
|
13005
|
+
"0-177946906": {
|
|
13006
|
+
resourceRequirements: [],
|
|
13007
|
+
createGuidanceText: "Use the enrolled record token or another valid object reference for object_to_enrich. bi_enrichment_overwrite is optional."
|
|
13008
|
+
},
|
|
13009
|
+
"0-199186210": {
|
|
13010
|
+
resourceRequirements: [],
|
|
13011
|
+
createGuidanceText: "Use a real survey identifier and a valid recipient selector in sendTo. These values are not currently queryable from synced portal metadata."
|
|
13012
|
+
},
|
|
13013
|
+
"0-40900952": {
|
|
13014
|
+
resourceRequirements: [],
|
|
13015
|
+
createGuidanceText: "Use a real messaging integration identifier in rootMicId and a valid contact token or fetched object reference in targetContact."
|
|
13016
|
+
},
|
|
13017
|
+
"1-179507819": {
|
|
13018
|
+
resourceRequirements: [],
|
|
13019
|
+
createGuidanceText: "Slack notification actions may target channel IDs, user IDs, or owner-derived recipients. Provide a message and at least one recipient target."
|
|
13020
|
+
},
|
|
13021
|
+
CUSTOM_CODE: {
|
|
13022
|
+
resourceRequirements: [],
|
|
13023
|
+
createGuidanceText: "Custom code actions should declare runtime, sourceCode, and any required secrets or input/output field contracts. Avoid embedding portal-specific endpoints or credentials in reusable examples."
|
|
13024
|
+
},
|
|
13025
|
+
WEBHOOK: {
|
|
13026
|
+
resourceRequirements: [],
|
|
13027
|
+
createGuidanceText: "Webhook actions should use a concrete HTTP method and target URL, with queryParams only when required. Sanitize any example endpoints."
|
|
13028
|
+
},
|
|
13029
|
+
"0-44475148": {
|
|
13030
|
+
resourceRequirements: [
|
|
13031
|
+
{
|
|
13032
|
+
fieldName: "Target Inbox",
|
|
13033
|
+
resourceKind: "inbox",
|
|
13034
|
+
resolutionMode: "not_exposed",
|
|
13035
|
+
sourceHint: "HubSpot conversation inbox ID"
|
|
13036
|
+
},
|
|
13037
|
+
{
|
|
13038
|
+
fieldName: "Conversation User",
|
|
13039
|
+
resourceKind: "user",
|
|
13040
|
+
resolutionMode: "queryable",
|
|
13041
|
+
sourceHint: "owners.user_id"
|
|
13042
|
+
}
|
|
13043
|
+
],
|
|
13044
|
+
createGuidanceText: "Use a real inbox ID and a real HubSpot user ID. Conversation User should be a HubSpot user ID, not an owner ID."
|
|
13045
|
+
}
|
|
13046
|
+
};
|
|
13047
|
+
|
|
13048
|
+
// ../shared/pure/workflow-action-corpus-metadata.ts
|
|
13049
|
+
var WORKFLOW_ACTION_CORPUS_METADATA_BY_ID = {
|
|
13050
|
+
"0-1": {
|
|
13051
|
+
"exampleCount": 1754,
|
|
13052
|
+
"portalCount": 13,
|
|
13053
|
+
"workflowCount": 468,
|
|
13054
|
+
"fieldFrequency": [
|
|
13055
|
+
{
|
|
13056
|
+
"name": "days_of_week",
|
|
13057
|
+
"bucket": "rare_optional",
|
|
13058
|
+
"observedCount": 9,
|
|
13059
|
+
"totalCount": 1754
|
|
13060
|
+
},
|
|
13061
|
+
{
|
|
13062
|
+
"name": "delta",
|
|
13063
|
+
"bucket": "always_observed",
|
|
13064
|
+
"observedCount": 1754,
|
|
13065
|
+
"totalCount": 1754
|
|
13066
|
+
},
|
|
13067
|
+
{
|
|
13068
|
+
"name": "time_of_day",
|
|
13069
|
+
"bucket": "rare_optional",
|
|
13070
|
+
"observedCount": 135,
|
|
13071
|
+
"totalCount": 1754
|
|
13072
|
+
},
|
|
13073
|
+
{
|
|
13074
|
+
"name": "time_unit",
|
|
13075
|
+
"bucket": "always_observed",
|
|
13076
|
+
"observedCount": 1754,
|
|
13077
|
+
"totalCount": 1754
|
|
13078
|
+
},
|
|
13079
|
+
{
|
|
13080
|
+
"name": "time_zone_strategy",
|
|
13081
|
+
"bucket": "rare_optional",
|
|
13082
|
+
"observedCount": 101,
|
|
13083
|
+
"totalCount": 1754
|
|
13084
|
+
}
|
|
13085
|
+
],
|
|
13086
|
+
"variantInventory": [
|
|
13087
|
+
{
|
|
13088
|
+
"key": "default",
|
|
13089
|
+
"exampleCount": 1754,
|
|
13090
|
+
"description": "Observed harvested variant: default."
|
|
13091
|
+
}
|
|
13092
|
+
]
|
|
13093
|
+
},
|
|
13094
|
+
"0-3": {
|
|
13095
|
+
"exampleCount": 149,
|
|
13096
|
+
"portalCount": 7,
|
|
13097
|
+
"workflowCount": 134,
|
|
13098
|
+
"fieldFrequency": [
|
|
13099
|
+
{
|
|
13100
|
+
"name": "associations",
|
|
13101
|
+
"bucket": "common_optional",
|
|
13102
|
+
"observedCount": 147,
|
|
13103
|
+
"totalCount": 149
|
|
13104
|
+
},
|
|
13105
|
+
{
|
|
13106
|
+
"name": "body",
|
|
13107
|
+
"bucket": "always_observed",
|
|
13108
|
+
"observedCount": 149,
|
|
13109
|
+
"totalCount": 149
|
|
13110
|
+
},
|
|
13111
|
+
{
|
|
13112
|
+
"name": "due_time",
|
|
13113
|
+
"bucket": "rare_optional",
|
|
13114
|
+
"observedCount": 23,
|
|
13115
|
+
"totalCount": 149
|
|
13116
|
+
},
|
|
13117
|
+
{
|
|
13118
|
+
"name": "owner_assignment",
|
|
13119
|
+
"bucket": "common_optional",
|
|
13120
|
+
"observedCount": 138,
|
|
13121
|
+
"totalCount": 149
|
|
13122
|
+
},
|
|
13123
|
+
{
|
|
13124
|
+
"name": "priority",
|
|
13125
|
+
"bucket": "common_optional",
|
|
13126
|
+
"observedCount": 147,
|
|
13127
|
+
"totalCount": 149
|
|
13128
|
+
},
|
|
13129
|
+
{
|
|
13130
|
+
"name": "queue_id",
|
|
13131
|
+
"bucket": "rare_optional",
|
|
13132
|
+
"observedCount": 7,
|
|
13133
|
+
"totalCount": 149
|
|
13134
|
+
},
|
|
13135
|
+
{
|
|
13136
|
+
"name": "reminder_time",
|
|
13137
|
+
"bucket": "rare_optional",
|
|
13138
|
+
"observedCount": 18,
|
|
13139
|
+
"totalCount": 149
|
|
13140
|
+
},
|
|
13141
|
+
{
|
|
13142
|
+
"name": "subject",
|
|
13143
|
+
"bucket": "always_observed",
|
|
13144
|
+
"observedCount": 149,
|
|
13145
|
+
"totalCount": 149
|
|
13146
|
+
},
|
|
13147
|
+
{
|
|
13148
|
+
"name": "task_type",
|
|
13149
|
+
"bucket": "always_observed",
|
|
13150
|
+
"observedCount": 149,
|
|
13151
|
+
"totalCount": 149
|
|
13152
|
+
},
|
|
13153
|
+
{
|
|
13154
|
+
"name": "use_explicit_associations",
|
|
13155
|
+
"bucket": "always_observed",
|
|
13156
|
+
"observedCount": 149,
|
|
13157
|
+
"totalCount": 149
|
|
13158
|
+
}
|
|
13159
|
+
],
|
|
13160
|
+
"variantInventory": [
|
|
13161
|
+
{
|
|
13162
|
+
"key": "TODO",
|
|
13163
|
+
"exampleCount": 133,
|
|
13164
|
+
"description": "Observed harvested variant: TODO."
|
|
13165
|
+
},
|
|
13166
|
+
{
|
|
13167
|
+
"key": "EMAIL",
|
|
13168
|
+
"exampleCount": 9,
|
|
13169
|
+
"description": "Observed harvested variant: EMAIL."
|
|
13170
|
+
},
|
|
13171
|
+
{
|
|
13172
|
+
"key": "CALL",
|
|
13173
|
+
"exampleCount": 7,
|
|
13174
|
+
"description": "Observed harvested variant: CALL."
|
|
13175
|
+
}
|
|
13176
|
+
]
|
|
13177
|
+
},
|
|
13178
|
+
"0-4": {
|
|
13179
|
+
"exampleCount": 1869,
|
|
13180
|
+
"portalCount": 13,
|
|
13181
|
+
"workflowCount": 452,
|
|
13182
|
+
"fieldFrequency": [
|
|
13183
|
+
{
|
|
13184
|
+
"name": "content_id",
|
|
13185
|
+
"bucket": "always_observed",
|
|
13186
|
+
"observedCount": 1869,
|
|
13187
|
+
"totalCount": 1869
|
|
13188
|
+
}
|
|
13189
|
+
],
|
|
13190
|
+
"variantInventory": [
|
|
13191
|
+
{
|
|
13192
|
+
"key": "default",
|
|
13193
|
+
"exampleCount": 1869,
|
|
13194
|
+
"description": "Observed harvested variant: default."
|
|
13195
|
+
}
|
|
13196
|
+
]
|
|
13197
|
+
},
|
|
13198
|
+
"0-5": {
|
|
13199
|
+
"exampleCount": 4124,
|
|
13200
|
+
"portalCount": 13,
|
|
13201
|
+
"workflowCount": 1031,
|
|
13202
|
+
"fieldFrequency": [
|
|
13203
|
+
{
|
|
13204
|
+
"name": "association",
|
|
13205
|
+
"bucket": "rare_optional",
|
|
13206
|
+
"observedCount": 330,
|
|
13207
|
+
"totalCount": 4124
|
|
13208
|
+
},
|
|
13209
|
+
{
|
|
13210
|
+
"name": "property_name",
|
|
13211
|
+
"bucket": "always_observed",
|
|
13212
|
+
"observedCount": 4124,
|
|
13213
|
+
"totalCount": 4124
|
|
13214
|
+
},
|
|
13215
|
+
{
|
|
13216
|
+
"name": "value",
|
|
13217
|
+
"bucket": "always_observed",
|
|
13218
|
+
"observedCount": 4124,
|
|
13219
|
+
"totalCount": 4124
|
|
13220
|
+
}
|
|
13221
|
+
],
|
|
13222
|
+
"variantInventory": [
|
|
13223
|
+
{
|
|
13224
|
+
"key": "STATIC_VALUE",
|
|
13225
|
+
"exampleCount": 3619,
|
|
13226
|
+
"description": "Uses a literal static value payload."
|
|
13227
|
+
},
|
|
13228
|
+
{
|
|
13229
|
+
"key": "FIELD_DATA",
|
|
13230
|
+
"exampleCount": 201,
|
|
13231
|
+
"description": "Uses output from a previous workflow action."
|
|
13232
|
+
},
|
|
13233
|
+
{
|
|
13234
|
+
"key": "OBJECT_PROPERTY",
|
|
13235
|
+
"exampleCount": 96,
|
|
13236
|
+
"description": "Copies a value from an enrolled-object property."
|
|
13237
|
+
},
|
|
13238
|
+
{
|
|
13239
|
+
"key": "FETCHED_OBJECT_PROPERTY",
|
|
13240
|
+
"exampleCount": 83,
|
|
13241
|
+
"description": "Uses a property from a fetched associated record."
|
|
13242
|
+
},
|
|
13243
|
+
{
|
|
13244
|
+
"key": "TIMESTAMP",
|
|
13245
|
+
"exampleCount": 76,
|
|
13246
|
+
"description": "Uses a workflow execution timestamp."
|
|
13247
|
+
},
|
|
13248
|
+
{
|
|
13249
|
+
"key": "STATIC_APPEND_VALUE",
|
|
13250
|
+
"exampleCount": 39,
|
|
13251
|
+
"description": "Appends a static suffix or token to an existing value."
|
|
13252
|
+
},
|
|
13253
|
+
{
|
|
13254
|
+
"key": "ENROLLMENT_EVENT_PROPERTY",
|
|
13255
|
+
"exampleCount": 8,
|
|
13256
|
+
"description": "Uses a property from the enrollment event payload."
|
|
13257
|
+
},
|
|
13258
|
+
{
|
|
13259
|
+
"key": "INCREMENT",
|
|
13260
|
+
"exampleCount": 2,
|
|
13261
|
+
"description": "Increments a numeric property."
|
|
13262
|
+
}
|
|
13263
|
+
]
|
|
13264
|
+
},
|
|
13265
|
+
"0-8": {
|
|
13266
|
+
"exampleCount": 509,
|
|
13267
|
+
"portalCount": 9,
|
|
13268
|
+
"workflowCount": 248,
|
|
13269
|
+
"fieldFrequency": [
|
|
13270
|
+
{
|
|
13271
|
+
"name": "body",
|
|
13272
|
+
"bucket": "always_observed",
|
|
13273
|
+
"observedCount": 509,
|
|
13274
|
+
"totalCount": 509
|
|
13275
|
+
},
|
|
13276
|
+
{
|
|
13277
|
+
"name": "owner_properties",
|
|
13278
|
+
"bucket": "rare_optional",
|
|
13279
|
+
"observedCount": 44,
|
|
13280
|
+
"totalCount": 509
|
|
13281
|
+
},
|
|
13282
|
+
{
|
|
13283
|
+
"name": "subject",
|
|
13284
|
+
"bucket": "always_observed",
|
|
13285
|
+
"observedCount": 509,
|
|
13286
|
+
"totalCount": 509
|
|
13287
|
+
},
|
|
13288
|
+
{
|
|
13289
|
+
"name": "team_ids",
|
|
13290
|
+
"bucket": "rare_optional",
|
|
13291
|
+
"observedCount": 7,
|
|
13292
|
+
"totalCount": 509
|
|
13293
|
+
},
|
|
13294
|
+
{
|
|
13295
|
+
"name": "user_ids",
|
|
13296
|
+
"bucket": "common_optional",
|
|
13297
|
+
"observedCount": 466,
|
|
13298
|
+
"totalCount": 509
|
|
13299
|
+
}
|
|
13300
|
+
],
|
|
13301
|
+
"variantInventory": [
|
|
13302
|
+
{
|
|
13303
|
+
"key": "user_recipients",
|
|
13304
|
+
"exampleCount": 460,
|
|
13305
|
+
"description": "Targets explicit HubSpot users."
|
|
13306
|
+
},
|
|
13307
|
+
{
|
|
13308
|
+
"key": "owner_property_recipients",
|
|
13309
|
+
"exampleCount": 42,
|
|
13310
|
+
"description": "Targets owners resolved through owner properties."
|
|
13311
|
+
},
|
|
13312
|
+
{
|
|
13313
|
+
"key": "team_recipients",
|
|
13314
|
+
"exampleCount": 7,
|
|
13315
|
+
"description": "Targets a team instead of explicit users."
|
|
13316
|
+
}
|
|
13317
|
+
]
|
|
13318
|
+
},
|
|
13319
|
+
"0-9": {
|
|
13320
|
+
"exampleCount": 19,
|
|
13321
|
+
"portalCount": 4,
|
|
13322
|
+
"workflowCount": 13,
|
|
13323
|
+
"fieldFrequency": [
|
|
13324
|
+
{
|
|
13325
|
+
"name": "body",
|
|
13326
|
+
"bucket": "always_observed",
|
|
13327
|
+
"observedCount": 19,
|
|
13328
|
+
"totalCount": 19
|
|
13329
|
+
},
|
|
13330
|
+
{
|
|
13331
|
+
"name": "delivery_method",
|
|
13332
|
+
"bucket": "always_observed",
|
|
13333
|
+
"observedCount": 19,
|
|
13334
|
+
"totalCount": 19
|
|
13335
|
+
},
|
|
13336
|
+
{
|
|
13337
|
+
"name": "owner_properties",
|
|
13338
|
+
"bucket": "rare_optional",
|
|
13339
|
+
"observedCount": 4,
|
|
13340
|
+
"totalCount": 19
|
|
13341
|
+
},
|
|
13342
|
+
{
|
|
13343
|
+
"name": "subject",
|
|
13344
|
+
"bucket": "always_observed",
|
|
13345
|
+
"observedCount": 19,
|
|
13346
|
+
"totalCount": 19
|
|
13347
|
+
},
|
|
13348
|
+
{
|
|
13349
|
+
"name": "team_ids",
|
|
13350
|
+
"bucket": "common_optional",
|
|
13351
|
+
"observedCount": 6,
|
|
13352
|
+
"totalCount": 19
|
|
13353
|
+
},
|
|
13354
|
+
{
|
|
13355
|
+
"name": "user_ids",
|
|
13356
|
+
"bucket": "common_optional",
|
|
13357
|
+
"observedCount": 8,
|
|
13358
|
+
"totalCount": 19
|
|
13359
|
+
}
|
|
13360
|
+
],
|
|
13361
|
+
"variantInventory": [
|
|
13362
|
+
{
|
|
13363
|
+
"key": "APP",
|
|
13364
|
+
"exampleCount": 19,
|
|
13365
|
+
"description": "Delivers the notification in the HubSpot app."
|
|
13366
|
+
}
|
|
13367
|
+
]
|
|
13368
|
+
},
|
|
13369
|
+
"0-11": {
|
|
13370
|
+
"exampleCount": 42,
|
|
13371
|
+
"portalCount": 4,
|
|
13372
|
+
"workflowCount": 18,
|
|
13373
|
+
"fieldFrequency": [
|
|
13374
|
+
{
|
|
13375
|
+
"name": "overwrite_current_owner",
|
|
13376
|
+
"bucket": "always_observed",
|
|
13377
|
+
"observedCount": 42,
|
|
13378
|
+
"totalCount": 42
|
|
13379
|
+
},
|
|
13380
|
+
{
|
|
13381
|
+
"name": "target_property",
|
|
13382
|
+
"bucket": "always_observed",
|
|
13383
|
+
"observedCount": 42,
|
|
13384
|
+
"totalCount": 42
|
|
13385
|
+
},
|
|
13386
|
+
{
|
|
13387
|
+
"name": "team_ids",
|
|
13388
|
+
"bucket": "rare_optional",
|
|
13389
|
+
"observedCount": 3,
|
|
13390
|
+
"totalCount": 42
|
|
13391
|
+
},
|
|
13392
|
+
{
|
|
13393
|
+
"name": "user_ids",
|
|
13394
|
+
"bucket": "common_optional",
|
|
13395
|
+
"observedCount": 39,
|
|
13396
|
+
"totalCount": 42
|
|
13397
|
+
}
|
|
13398
|
+
],
|
|
13399
|
+
"variantInventory": [
|
|
13400
|
+
{
|
|
13401
|
+
"key": "user_rotation",
|
|
13402
|
+
"exampleCount": 39,
|
|
13403
|
+
"description": "Rotates ownership across explicit users."
|
|
13404
|
+
},
|
|
13405
|
+
{
|
|
13406
|
+
"key": "team_rotation",
|
|
13407
|
+
"exampleCount": 3,
|
|
13408
|
+
"description": "Rotates ownership across teams."
|
|
13409
|
+
}
|
|
13410
|
+
]
|
|
13411
|
+
},
|
|
13412
|
+
"0-14": {
|
|
13413
|
+
"exampleCount": 43,
|
|
13414
|
+
"portalCount": 6,
|
|
13415
|
+
"workflowCount": 31,
|
|
13416
|
+
"fieldFrequency": [
|
|
13417
|
+
{
|
|
13418
|
+
"name": "associations",
|
|
13419
|
+
"bucket": "common_optional",
|
|
13420
|
+
"observedCount": 42,
|
|
13421
|
+
"totalCount": 43
|
|
13422
|
+
},
|
|
13423
|
+
{
|
|
13424
|
+
"name": "object_type_id",
|
|
13425
|
+
"bucket": "always_observed",
|
|
13426
|
+
"observedCount": 43,
|
|
13427
|
+
"totalCount": 43
|
|
13428
|
+
},
|
|
13429
|
+
{
|
|
13430
|
+
"name": "properties",
|
|
13431
|
+
"bucket": "always_observed",
|
|
13432
|
+
"observedCount": 43,
|
|
13433
|
+
"totalCount": 43
|
|
13434
|
+
},
|
|
13435
|
+
{
|
|
13436
|
+
"name": "use_explicit_associations",
|
|
13437
|
+
"bucket": "always_observed",
|
|
13438
|
+
"observedCount": 43,
|
|
13439
|
+
"totalCount": 43
|
|
13440
|
+
}
|
|
13441
|
+
],
|
|
13442
|
+
"variantInventory": [
|
|
13443
|
+
{
|
|
13444
|
+
"key": "STATIC_VALUE",
|
|
13445
|
+
"exampleCount": 18,
|
|
13446
|
+
"description": "Uses a literal static value payload."
|
|
13447
|
+
},
|
|
13448
|
+
{
|
|
13449
|
+
"key": "OBJECT_PROPERTY+STATIC_VALUE",
|
|
13450
|
+
"exampleCount": 12,
|
|
13451
|
+
"description": "Observed harvested variant: OBJECT_PROPERTY+STATIC_VALUE."
|
|
13452
|
+
},
|
|
13453
|
+
{
|
|
13454
|
+
"key": "OBJECT_PROPERTY+RELATIVE_DATETIME+STATIC_VALUE",
|
|
13455
|
+
"exampleCount": 8,
|
|
13456
|
+
"description": "Observed harvested variant: OBJECT_PROPERTY+RELATIVE_DATETIME+STATIC_VALUE."
|
|
13457
|
+
},
|
|
13458
|
+
{
|
|
13459
|
+
"key": "OBJECT_PROPERTY+STATIC_APPEND_VALUE+STATIC_VALUE",
|
|
13460
|
+
"exampleCount": 3,
|
|
13461
|
+
"description": "Observed harvested variant: OBJECT_PROPERTY+STATIC_APPEND_VALUE+STATIC_VALUE."
|
|
13462
|
+
},
|
|
13463
|
+
{
|
|
13464
|
+
"key": "RELATIVE_DATETIME+STATIC_VALUE",
|
|
13465
|
+
"exampleCount": 1,
|
|
13466
|
+
"description": "Observed harvested variant: RELATIVE_DATETIME+STATIC_VALUE."
|
|
13467
|
+
},
|
|
13468
|
+
{
|
|
13469
|
+
"key": "STATIC_APPEND_VALUE+STATIC_VALUE",
|
|
13470
|
+
"exampleCount": 1,
|
|
13471
|
+
"description": "Observed harvested variant: STATIC_APPEND_VALUE+STATIC_VALUE."
|
|
13472
|
+
}
|
|
13473
|
+
]
|
|
13474
|
+
},
|
|
13475
|
+
"0-15": {
|
|
13476
|
+
"exampleCount": 61,
|
|
13477
|
+
"portalCount": 3,
|
|
13478
|
+
"workflowCount": 41,
|
|
13479
|
+
"fieldFrequency": [
|
|
13480
|
+
{
|
|
13481
|
+
"name": "flow_id",
|
|
13482
|
+
"bucket": "always_observed",
|
|
13483
|
+
"observedCount": 61,
|
|
13484
|
+
"totalCount": 61
|
|
13485
|
+
}
|
|
13486
|
+
],
|
|
13487
|
+
"variantInventory": [
|
|
13488
|
+
{
|
|
13489
|
+
"key": "default",
|
|
13490
|
+
"exampleCount": 61,
|
|
13491
|
+
"description": "Observed harvested variant: default."
|
|
13492
|
+
}
|
|
13493
|
+
]
|
|
13494
|
+
},
|
|
13495
|
+
"0-23": {
|
|
13496
|
+
"exampleCount": 1,
|
|
13497
|
+
"portalCount": 1,
|
|
13498
|
+
"workflowCount": 1,
|
|
13499
|
+
"fieldFrequency": [
|
|
13500
|
+
{
|
|
13501
|
+
"name": "email_content_id",
|
|
13502
|
+
"bucket": "always_observed",
|
|
13503
|
+
"observedCount": 1,
|
|
13504
|
+
"totalCount": 1
|
|
13505
|
+
},
|
|
13506
|
+
{
|
|
13507
|
+
"name": "recipient_emails",
|
|
13508
|
+
"bucket": "always_observed",
|
|
13509
|
+
"observedCount": 1,
|
|
13510
|
+
"totalCount": 1
|
|
13511
|
+
}
|
|
13512
|
+
],
|
|
13513
|
+
"variantInventory": [
|
|
13514
|
+
{
|
|
13515
|
+
"key": "default",
|
|
13516
|
+
"exampleCount": 1,
|
|
13517
|
+
"description": "Observed harvested variant: default."
|
|
13518
|
+
}
|
|
13519
|
+
]
|
|
13520
|
+
},
|
|
13521
|
+
"0-28": {
|
|
13522
|
+
"exampleCount": 18,
|
|
13523
|
+
"portalCount": 2,
|
|
13524
|
+
"workflowCount": 8,
|
|
13525
|
+
"fieldFrequency": [
|
|
13526
|
+
{
|
|
13527
|
+
"name": "delay",
|
|
13528
|
+
"bucket": "always_observed",
|
|
13529
|
+
"observedCount": 18,
|
|
13530
|
+
"totalCount": 18
|
|
13531
|
+
},
|
|
13532
|
+
{
|
|
13533
|
+
"name": "direction",
|
|
13534
|
+
"bucket": "always_observed",
|
|
13535
|
+
"observedCount": 18,
|
|
13536
|
+
"totalCount": 18
|
|
13537
|
+
}
|
|
13538
|
+
],
|
|
13539
|
+
"variantInventory": [
|
|
13540
|
+
{
|
|
13541
|
+
"key": "AFTER",
|
|
13542
|
+
"exampleCount": 9,
|
|
13543
|
+
"description": "Schedules the delay after the reference point."
|
|
13544
|
+
},
|
|
13545
|
+
{
|
|
13546
|
+
"key": "BEFORE",
|
|
13547
|
+
"exampleCount": 9,
|
|
13548
|
+
"description": "Schedules the delay before the reference point."
|
|
13549
|
+
}
|
|
13550
|
+
]
|
|
13551
|
+
},
|
|
13552
|
+
"0-29": {
|
|
13553
|
+
"exampleCount": 283,
|
|
13554
|
+
"portalCount": 4,
|
|
13555
|
+
"workflowCount": 181,
|
|
13556
|
+
"fieldFrequency": [
|
|
13557
|
+
{
|
|
13558
|
+
"name": "event_filter_branches",
|
|
13559
|
+
"bucket": "common_optional",
|
|
13560
|
+
"observedCount": 276,
|
|
13561
|
+
"totalCount": 283
|
|
13562
|
+
},
|
|
13563
|
+
{
|
|
13564
|
+
"name": "expiration_minutes",
|
|
13565
|
+
"bucket": "always_observed",
|
|
13566
|
+
"observedCount": 283,
|
|
13567
|
+
"totalCount": 283
|
|
13568
|
+
},
|
|
13569
|
+
{
|
|
13570
|
+
"name": "target_object_override",
|
|
13571
|
+
"bucket": "rare_optional",
|
|
13572
|
+
"observedCount": 2,
|
|
13573
|
+
"totalCount": 283
|
|
13574
|
+
}
|
|
13575
|
+
],
|
|
13576
|
+
"variantInventory": [
|
|
13577
|
+
{
|
|
13578
|
+
"key": "event_filtered",
|
|
13579
|
+
"exampleCount": 276,
|
|
13580
|
+
"description": "Waits on a filtered event branch tree."
|
|
13581
|
+
},
|
|
13582
|
+
{
|
|
13583
|
+
"key": "timeout_only",
|
|
13584
|
+
"exampleCount": 7,
|
|
13585
|
+
"description": "Only uses the expiration timeout fields."
|
|
13586
|
+
}
|
|
13587
|
+
]
|
|
13588
|
+
},
|
|
13589
|
+
"0-30": {
|
|
13590
|
+
"exampleCount": 7,
|
|
13591
|
+
"portalCount": 2,
|
|
13592
|
+
"workflowCount": 5,
|
|
13593
|
+
"fieldFrequency": [
|
|
13594
|
+
{
|
|
13595
|
+
"name": "audience_id",
|
|
13596
|
+
"bucket": "always_observed",
|
|
13597
|
+
"observedCount": 7,
|
|
13598
|
+
"totalCount": 7
|
|
13599
|
+
}
|
|
13600
|
+
],
|
|
13601
|
+
"variantInventory": [
|
|
13602
|
+
{
|
|
13603
|
+
"key": "audience_membership",
|
|
13604
|
+
"exampleCount": 7,
|
|
13605
|
+
"description": "Adds or removes a record from a configured audience."
|
|
13606
|
+
}
|
|
13607
|
+
]
|
|
13608
|
+
},
|
|
13609
|
+
"0-31": {
|
|
13610
|
+
"exampleCount": 336,
|
|
13611
|
+
"portalCount": 10,
|
|
13612
|
+
"workflowCount": 228,
|
|
13613
|
+
"fieldFrequency": [
|
|
13614
|
+
{
|
|
13615
|
+
"name": "marketableType",
|
|
13616
|
+
"bucket": "always_observed",
|
|
13617
|
+
"observedCount": 336,
|
|
13618
|
+
"totalCount": 336
|
|
13619
|
+
},
|
|
13620
|
+
{
|
|
13621
|
+
"name": "targetContact",
|
|
13622
|
+
"bucket": "common_optional",
|
|
13623
|
+
"observedCount": 335,
|
|
13624
|
+
"totalCount": 336
|
|
13625
|
+
}
|
|
13626
|
+
],
|
|
13627
|
+
"variantInventory": [
|
|
13628
|
+
{
|
|
13629
|
+
"key": "MARKETABLE",
|
|
13630
|
+
"exampleCount": 215,
|
|
13631
|
+
"description": "Marks the contact as marketable."
|
|
13632
|
+
},
|
|
13633
|
+
{
|
|
13634
|
+
"key": "MARKETABLE_UNTIL_RENEWAL",
|
|
13635
|
+
"exampleCount": 121,
|
|
13636
|
+
"description": "Marks the contact as marketable until renewal."
|
|
13637
|
+
}
|
|
13638
|
+
]
|
|
13639
|
+
},
|
|
13640
|
+
"0-33": {
|
|
13641
|
+
"exampleCount": 21,
|
|
13642
|
+
"portalCount": 2,
|
|
13643
|
+
"workflowCount": 12,
|
|
13644
|
+
"fieldFrequency": [
|
|
13645
|
+
{
|
|
13646
|
+
"name": "locale",
|
|
13647
|
+
"bucket": "always_observed",
|
|
13648
|
+
"observedCount": 21,
|
|
13649
|
+
"totalCount": 21
|
|
13650
|
+
},
|
|
13651
|
+
{
|
|
13652
|
+
"name": "template",
|
|
13653
|
+
"bucket": "always_observed",
|
|
13654
|
+
"observedCount": 21,
|
|
13655
|
+
"totalCount": 21
|
|
13656
|
+
},
|
|
13657
|
+
{
|
|
13658
|
+
"name": "variables",
|
|
13659
|
+
"bucket": "common_optional",
|
|
13660
|
+
"observedCount": 20,
|
|
13661
|
+
"totalCount": 21
|
|
13662
|
+
}
|
|
13663
|
+
],
|
|
13664
|
+
"variantInventory": [
|
|
13665
|
+
{
|
|
13666
|
+
"key": "localized_template",
|
|
13667
|
+
"exampleCount": 20,
|
|
13668
|
+
"description": "Supplies an explicit locale for template rendering."
|
|
13669
|
+
},
|
|
13670
|
+
{
|
|
13671
|
+
"key": "default_locale_template",
|
|
13672
|
+
"exampleCount": 1,
|
|
13673
|
+
"description": "Relies on the default locale."
|
|
13674
|
+
}
|
|
13675
|
+
]
|
|
13676
|
+
},
|
|
13677
|
+
"0-35": {
|
|
13678
|
+
"exampleCount": 240,
|
|
13679
|
+
"portalCount": 5,
|
|
13680
|
+
"workflowCount": 206,
|
|
13681
|
+
"fieldFrequency": [
|
|
13682
|
+
{
|
|
13683
|
+
"name": "date",
|
|
13684
|
+
"bucket": "always_observed",
|
|
13685
|
+
"observedCount": 240,
|
|
13686
|
+
"totalCount": 240
|
|
13687
|
+
},
|
|
13688
|
+
{
|
|
13689
|
+
"name": "delta",
|
|
13690
|
+
"bucket": "always_observed",
|
|
13691
|
+
"observedCount": 240,
|
|
13692
|
+
"totalCount": 240
|
|
13693
|
+
},
|
|
13694
|
+
{
|
|
13695
|
+
"name": "time_of_day",
|
|
13696
|
+
"bucket": "common_optional",
|
|
13697
|
+
"observedCount": 230,
|
|
13698
|
+
"totalCount": 240
|
|
13699
|
+
},
|
|
13700
|
+
{
|
|
13701
|
+
"name": "time_unit",
|
|
13702
|
+
"bucket": "always_observed",
|
|
13703
|
+
"observedCount": 240,
|
|
13704
|
+
"totalCount": 240
|
|
13705
|
+
}
|
|
13706
|
+
],
|
|
13707
|
+
"variantInventory": [
|
|
13708
|
+
{
|
|
13709
|
+
"key": "STATIC_VALUE",
|
|
13710
|
+
"exampleCount": 227,
|
|
13711
|
+
"description": "Uses a literal static value payload."
|
|
13712
|
+
},
|
|
13713
|
+
{
|
|
13714
|
+
"key": "OBJECT_PROPERTY",
|
|
13715
|
+
"exampleCount": 13,
|
|
13716
|
+
"description": "Copies a value from an enrolled-object property."
|
|
13717
|
+
}
|
|
13718
|
+
]
|
|
13719
|
+
},
|
|
13720
|
+
"0-169425243": {
|
|
13721
|
+
"exampleCount": 21,
|
|
13722
|
+
"portalCount": 2,
|
|
13723
|
+
"workflowCount": 10,
|
|
13724
|
+
"fieldFrequency": [
|
|
13725
|
+
{
|
|
13726
|
+
"name": "note_body",
|
|
13727
|
+
"bucket": "always_observed",
|
|
13728
|
+
"observedCount": 21,
|
|
13729
|
+
"totalCount": 21
|
|
13730
|
+
},
|
|
13731
|
+
{
|
|
13732
|
+
"name": "pin_note",
|
|
13733
|
+
"bucket": "always_observed",
|
|
13734
|
+
"observedCount": 21,
|
|
13735
|
+
"totalCount": 21
|
|
13736
|
+
}
|
|
13737
|
+
],
|
|
13738
|
+
"variantInventory": [
|
|
13739
|
+
{
|
|
13740
|
+
"key": "default",
|
|
13741
|
+
"exampleCount": 21,
|
|
13742
|
+
"description": "Observed harvested variant: default."
|
|
13743
|
+
}
|
|
13744
|
+
]
|
|
13745
|
+
},
|
|
13746
|
+
"0-177946906": {
|
|
13747
|
+
"exampleCount": 2,
|
|
13748
|
+
"portalCount": 1,
|
|
13749
|
+
"workflowCount": 1,
|
|
13750
|
+
"fieldFrequency": [
|
|
13751
|
+
{
|
|
13752
|
+
"name": "bi_enrichment_overwrite",
|
|
13753
|
+
"bucket": "always_observed",
|
|
13754
|
+
"observedCount": 2,
|
|
13755
|
+
"totalCount": 2
|
|
13756
|
+
},
|
|
13757
|
+
{
|
|
13758
|
+
"name": "object_to_enrich",
|
|
13759
|
+
"bucket": "always_observed",
|
|
13760
|
+
"observedCount": 2,
|
|
13761
|
+
"totalCount": 2
|
|
13762
|
+
}
|
|
13763
|
+
],
|
|
13764
|
+
"variantInventory": [
|
|
13765
|
+
{
|
|
13766
|
+
"key": "default",
|
|
13767
|
+
"exampleCount": 2,
|
|
13768
|
+
"description": "Observed harvested variant: default."
|
|
13769
|
+
}
|
|
13770
|
+
]
|
|
13771
|
+
},
|
|
13772
|
+
"0-18224765": {
|
|
13773
|
+
"exampleCount": 5,
|
|
13774
|
+
"portalCount": 3,
|
|
13775
|
+
"workflowCount": 5,
|
|
13776
|
+
"fieldFrequency": [],
|
|
13777
|
+
"variantInventory": [
|
|
13778
|
+
{
|
|
13779
|
+
"key": "default",
|
|
13780
|
+
"exampleCount": 5,
|
|
13781
|
+
"description": "Observed harvested variant: default."
|
|
13782
|
+
}
|
|
13783
|
+
]
|
|
13784
|
+
},
|
|
13785
|
+
"0-195318603": {
|
|
13786
|
+
"exampleCount": 0,
|
|
13787
|
+
"portalCount": 0,
|
|
13788
|
+
"workflowCount": 0,
|
|
13789
|
+
"fieldFrequency": [],
|
|
13790
|
+
"variantInventory": []
|
|
13791
|
+
},
|
|
13792
|
+
"0-199186210": {
|
|
13793
|
+
"exampleCount": 4,
|
|
13794
|
+
"portalCount": 1,
|
|
13795
|
+
"workflowCount": 1,
|
|
13796
|
+
"fieldFrequency": [
|
|
13797
|
+
{
|
|
13798
|
+
"name": "sendTo",
|
|
13799
|
+
"bucket": "always_observed",
|
|
13800
|
+
"observedCount": 4,
|
|
13801
|
+
"totalCount": 4
|
|
13802
|
+
},
|
|
13803
|
+
{
|
|
13804
|
+
"name": "survey",
|
|
13805
|
+
"bucket": "always_observed",
|
|
13806
|
+
"observedCount": 4,
|
|
13807
|
+
"totalCount": 4
|
|
13808
|
+
}
|
|
13809
|
+
],
|
|
13810
|
+
"variantInventory": [
|
|
13811
|
+
{
|
|
13812
|
+
"key": "default",
|
|
13813
|
+
"exampleCount": 4,
|
|
13814
|
+
"description": "Observed harvested variant: default."
|
|
13815
|
+
}
|
|
13816
|
+
]
|
|
13817
|
+
},
|
|
13818
|
+
"0-219160146": {
|
|
13819
|
+
"exampleCount": 0,
|
|
13820
|
+
"portalCount": 0,
|
|
13821
|
+
"workflowCount": 0,
|
|
13822
|
+
"fieldFrequency": [],
|
|
13823
|
+
"variantInventory": []
|
|
13824
|
+
},
|
|
13825
|
+
"0-219161394": {
|
|
13826
|
+
"exampleCount": 0,
|
|
13827
|
+
"portalCount": 0,
|
|
13828
|
+
"workflowCount": 0,
|
|
13829
|
+
"fieldFrequency": [],
|
|
13830
|
+
"variantInventory": []
|
|
13831
|
+
},
|
|
13832
|
+
"0-225935194": {
|
|
13833
|
+
"exampleCount": 2,
|
|
13834
|
+
"portalCount": 2,
|
|
13835
|
+
"workflowCount": 2,
|
|
13836
|
+
"fieldFrequency": [
|
|
13837
|
+
{
|
|
13838
|
+
"name": "defaultCountryCodeMode",
|
|
13839
|
+
"bucket": "always_observed",
|
|
13840
|
+
"observedCount": 2,
|
|
13841
|
+
"totalCount": 2
|
|
13842
|
+
},
|
|
13843
|
+
{
|
|
13844
|
+
"name": "propertyValue",
|
|
13845
|
+
"bucket": "always_observed",
|
|
13846
|
+
"observedCount": 2,
|
|
13847
|
+
"totalCount": 2
|
|
13848
|
+
},
|
|
13849
|
+
{
|
|
13850
|
+
"name": "staticDefaultCountryCode",
|
|
13851
|
+
"bucket": "always_observed",
|
|
13852
|
+
"observedCount": 2,
|
|
13853
|
+
"totalCount": 2
|
|
13854
|
+
}
|
|
13855
|
+
],
|
|
13856
|
+
"variantInventory": [
|
|
13857
|
+
{
|
|
13858
|
+
"key": "static_default_country_code",
|
|
13859
|
+
"exampleCount": 2,
|
|
13860
|
+
"description": "Uses a static country code when validating phone numbers."
|
|
13861
|
+
}
|
|
13862
|
+
]
|
|
13863
|
+
},
|
|
13864
|
+
"0-40900952": {
|
|
13865
|
+
"exampleCount": 84,
|
|
13866
|
+
"portalCount": 1,
|
|
13867
|
+
"workflowCount": 31,
|
|
13868
|
+
"fieldFrequency": [
|
|
13869
|
+
{
|
|
13870
|
+
"name": "rootMicId",
|
|
13871
|
+
"bucket": "common_optional",
|
|
13872
|
+
"observedCount": 82,
|
|
13873
|
+
"totalCount": 84
|
|
13874
|
+
},
|
|
13875
|
+
{
|
|
13876
|
+
"name": "targetContact",
|
|
13877
|
+
"bucket": "always_observed",
|
|
13878
|
+
"observedCount": 84,
|
|
13879
|
+
"totalCount": 84
|
|
13880
|
+
}
|
|
13881
|
+
],
|
|
13882
|
+
"variantInventory": [
|
|
13883
|
+
{
|
|
13884
|
+
"key": "default",
|
|
13885
|
+
"exampleCount": 84,
|
|
13886
|
+
"description": "Observed harvested variant: default."
|
|
13887
|
+
}
|
|
13888
|
+
]
|
|
13889
|
+
},
|
|
13890
|
+
"0-43347357": {
|
|
13891
|
+
"exampleCount": 161,
|
|
13892
|
+
"portalCount": 6,
|
|
13893
|
+
"workflowCount": 124,
|
|
13894
|
+
"fieldFrequency": [
|
|
13895
|
+
{
|
|
13896
|
+
"name": "channel",
|
|
13897
|
+
"bucket": "always_observed",
|
|
13898
|
+
"observedCount": 161,
|
|
13899
|
+
"totalCount": 161
|
|
13900
|
+
},
|
|
13901
|
+
{
|
|
13902
|
+
"name": "legalBasis",
|
|
13903
|
+
"bucket": "always_observed",
|
|
13904
|
+
"observedCount": 161,
|
|
13905
|
+
"totalCount": 161
|
|
13906
|
+
},
|
|
13907
|
+
{
|
|
13908
|
+
"name": "legalBasisExplanation",
|
|
13909
|
+
"bucket": "common_optional",
|
|
13910
|
+
"observedCount": 159,
|
|
13911
|
+
"totalCount": 161
|
|
13912
|
+
},
|
|
13913
|
+
{
|
|
13914
|
+
"name": "optState",
|
|
13915
|
+
"bucket": "always_observed",
|
|
13916
|
+
"observedCount": 161,
|
|
13917
|
+
"totalCount": 161
|
|
13918
|
+
},
|
|
13919
|
+
{
|
|
13920
|
+
"name": "subscriptionId",
|
|
13921
|
+
"bucket": "always_observed",
|
|
13922
|
+
"observedCount": 161,
|
|
13923
|
+
"totalCount": 161
|
|
13924
|
+
},
|
|
13925
|
+
{
|
|
13926
|
+
"name": "targetContact",
|
|
13927
|
+
"bucket": "common_optional",
|
|
13928
|
+
"observedCount": 160,
|
|
13929
|
+
"totalCount": 161
|
|
13930
|
+
}
|
|
13931
|
+
],
|
|
13932
|
+
"variantInventory": [
|
|
13933
|
+
{
|
|
13934
|
+
"key": "EMAIL:OPT_IN",
|
|
13935
|
+
"exampleCount": 141,
|
|
13936
|
+
"description": "Observed harvested variant: EMAIL:OPT_IN."
|
|
13937
|
+
},
|
|
13938
|
+
{
|
|
13939
|
+
"key": "SMS:OPT_IN",
|
|
13940
|
+
"exampleCount": 13,
|
|
13941
|
+
"description": "Observed harvested variant: SMS:OPT_IN."
|
|
13942
|
+
},
|
|
13943
|
+
{
|
|
13944
|
+
"key": "EMAIL:OPT_OUT",
|
|
13945
|
+
"exampleCount": 6,
|
|
13946
|
+
"description": "Observed harvested variant: EMAIL:OPT_OUT."
|
|
13947
|
+
},
|
|
13948
|
+
{
|
|
13949
|
+
"key": "SMS:OPT_OUT",
|
|
13950
|
+
"exampleCount": 1,
|
|
13951
|
+
"description": "Observed harvested variant: SMS:OPT_OUT."
|
|
13952
|
+
}
|
|
13953
|
+
]
|
|
13954
|
+
},
|
|
13955
|
+
"0-44475148": {
|
|
13956
|
+
"exampleCount": 0,
|
|
13957
|
+
"portalCount": 0,
|
|
13958
|
+
"workflowCount": 0,
|
|
13959
|
+
"fieldFrequency": [],
|
|
13960
|
+
"variantInventory": []
|
|
13961
|
+
},
|
|
13962
|
+
"0-46510720": {
|
|
13963
|
+
"exampleCount": 7,
|
|
13964
|
+
"portalCount": 1,
|
|
13965
|
+
"workflowCount": 7,
|
|
13966
|
+
"fieldFrequency": [
|
|
13967
|
+
{
|
|
13968
|
+
"name": "contactOwnerProperty",
|
|
13969
|
+
"bucket": "always_observed",
|
|
13970
|
+
"observedCount": 7,
|
|
13971
|
+
"totalCount": 7
|
|
13972
|
+
},
|
|
13973
|
+
{
|
|
13974
|
+
"name": "senderType",
|
|
13975
|
+
"bucket": "always_observed",
|
|
13976
|
+
"observedCount": 7,
|
|
13977
|
+
"totalCount": 7
|
|
13978
|
+
},
|
|
13979
|
+
{
|
|
13980
|
+
"name": "sequenceId",
|
|
13981
|
+
"bucket": "always_observed",
|
|
13982
|
+
"observedCount": 7,
|
|
13983
|
+
"totalCount": 7
|
|
13984
|
+
},
|
|
13985
|
+
{
|
|
13986
|
+
"name": "shouldUseContactTimeZone",
|
|
13987
|
+
"bucket": "common_optional",
|
|
13988
|
+
"observedCount": 6,
|
|
13989
|
+
"totalCount": 7
|
|
13990
|
+
}
|
|
13991
|
+
],
|
|
13992
|
+
"variantInventory": [
|
|
13993
|
+
{
|
|
13994
|
+
"key": "CONTACT_OWNER",
|
|
13995
|
+
"exampleCount": 7,
|
|
13996
|
+
"description": "Uses the enrolled record owner as the sender."
|
|
13997
|
+
}
|
|
13998
|
+
]
|
|
13999
|
+
},
|
|
14000
|
+
"0-4702372": {
|
|
14001
|
+
"exampleCount": 4,
|
|
14002
|
+
"portalCount": 2,
|
|
14003
|
+
"workflowCount": 4,
|
|
14004
|
+
"fieldFrequency": [],
|
|
14005
|
+
"variantInventory": [
|
|
14006
|
+
{
|
|
14007
|
+
"key": "default",
|
|
14008
|
+
"exampleCount": 4,
|
|
14009
|
+
"description": "Observed harvested variant: default."
|
|
14010
|
+
}
|
|
14011
|
+
]
|
|
14012
|
+
},
|
|
14013
|
+
"0-61139476": {
|
|
14014
|
+
"exampleCount": 2,
|
|
14015
|
+
"portalCount": 1,
|
|
14016
|
+
"workflowCount": 1,
|
|
14017
|
+
"fieldFrequency": [
|
|
14018
|
+
{
|
|
14019
|
+
"name": "fromObjectType",
|
|
14020
|
+
"bucket": "always_observed",
|
|
14021
|
+
"observedCount": 2,
|
|
14022
|
+
"totalCount": 2
|
|
14023
|
+
},
|
|
14024
|
+
{
|
|
14025
|
+
"name": "fullyDissociate",
|
|
14026
|
+
"bucket": "always_observed",
|
|
14027
|
+
"observedCount": 2,
|
|
14028
|
+
"totalCount": 2
|
|
14029
|
+
},
|
|
14030
|
+
{
|
|
14031
|
+
"name": "labelToRemove",
|
|
14032
|
+
"bucket": "always_observed",
|
|
14033
|
+
"observedCount": 2,
|
|
14034
|
+
"totalCount": 2
|
|
14035
|
+
},
|
|
14036
|
+
{
|
|
14037
|
+
"name": "toObjectType",
|
|
14038
|
+
"bucket": "always_observed",
|
|
14039
|
+
"observedCount": 2,
|
|
14040
|
+
"totalCount": 2
|
|
14041
|
+
}
|
|
14042
|
+
],
|
|
14043
|
+
"variantInventory": [
|
|
14044
|
+
{
|
|
14045
|
+
"key": "default",
|
|
14046
|
+
"exampleCount": 2,
|
|
14047
|
+
"description": "Observed harvested variant: default."
|
|
14048
|
+
}
|
|
14049
|
+
]
|
|
14050
|
+
},
|
|
14051
|
+
"0-61139484": {
|
|
14052
|
+
"exampleCount": 7,
|
|
14053
|
+
"portalCount": 1,
|
|
14054
|
+
"workflowCount": 2,
|
|
14055
|
+
"fieldFrequency": [
|
|
14056
|
+
{
|
|
14057
|
+
"name": "deleteExistingLabel",
|
|
14058
|
+
"bucket": "always_observed",
|
|
14059
|
+
"observedCount": 7,
|
|
14060
|
+
"totalCount": 7
|
|
14061
|
+
},
|
|
14062
|
+
{
|
|
14063
|
+
"name": "fromObjectType",
|
|
14064
|
+
"bucket": "always_observed",
|
|
14065
|
+
"observedCount": 7,
|
|
14066
|
+
"totalCount": 7
|
|
14067
|
+
},
|
|
14068
|
+
{
|
|
14069
|
+
"name": "labelToApply",
|
|
14070
|
+
"bucket": "always_observed",
|
|
14071
|
+
"observedCount": 7,
|
|
14072
|
+
"totalCount": 7
|
|
14073
|
+
},
|
|
14074
|
+
{
|
|
14075
|
+
"name": "labelToUpdate",
|
|
14076
|
+
"bucket": "always_observed",
|
|
14077
|
+
"observedCount": 7,
|
|
14078
|
+
"totalCount": 7
|
|
14079
|
+
},
|
|
14080
|
+
{
|
|
14081
|
+
"name": "toObjectType",
|
|
14082
|
+
"bucket": "always_observed",
|
|
14083
|
+
"observedCount": 7,
|
|
14084
|
+
"totalCount": 7
|
|
14085
|
+
}
|
|
14086
|
+
],
|
|
14087
|
+
"variantInventory": [
|
|
14088
|
+
{
|
|
14089
|
+
"key": "replace_existing",
|
|
14090
|
+
"exampleCount": 7,
|
|
14091
|
+
"description": "Deletes an existing label before applying the new label."
|
|
14092
|
+
}
|
|
14093
|
+
]
|
|
14094
|
+
},
|
|
14095
|
+
"0-63189541": {
|
|
14096
|
+
"exampleCount": 330,
|
|
14097
|
+
"portalCount": 3,
|
|
14098
|
+
"workflowCount": 207,
|
|
14099
|
+
"fieldFrequency": [
|
|
14100
|
+
{
|
|
14101
|
+
"name": "associatedObjectPropertyNameToMatch",
|
|
14102
|
+
"bucket": "common_optional",
|
|
14103
|
+
"observedCount": 329,
|
|
14104
|
+
"totalCount": 330
|
|
14105
|
+
},
|
|
14106
|
+
{
|
|
14107
|
+
"name": "createAssociationOnly",
|
|
14108
|
+
"bucket": "always_observed",
|
|
14109
|
+
"observedCount": 330,
|
|
14110
|
+
"totalCount": 330
|
|
14111
|
+
},
|
|
14112
|
+
{
|
|
14113
|
+
"name": "enrolledObjectPropertyNameToMatch",
|
|
14114
|
+
"bucket": "always_observed",
|
|
14115
|
+
"observedCount": 330,
|
|
14116
|
+
"totalCount": 330
|
|
14117
|
+
},
|
|
14118
|
+
{
|
|
14119
|
+
"name": "fromObjectType",
|
|
14120
|
+
"bucket": "always_observed",
|
|
14121
|
+
"observedCount": 330,
|
|
14122
|
+
"totalCount": 330
|
|
14123
|
+
},
|
|
14124
|
+
{
|
|
14125
|
+
"name": "labelToApply",
|
|
14126
|
+
"bucket": "common_optional",
|
|
14127
|
+
"observedCount": 219,
|
|
14128
|
+
"totalCount": 330
|
|
14129
|
+
},
|
|
14130
|
+
{
|
|
14131
|
+
"name": "matchBy",
|
|
14132
|
+
"bucket": "always_observed",
|
|
14133
|
+
"observedCount": 330,
|
|
14134
|
+
"totalCount": 330
|
|
14135
|
+
},
|
|
14136
|
+
{
|
|
14137
|
+
"name": "toObjectType",
|
|
14138
|
+
"bucket": "always_observed",
|
|
14139
|
+
"observedCount": 330,
|
|
14140
|
+
"totalCount": 330
|
|
14141
|
+
}
|
|
14142
|
+
],
|
|
14143
|
+
"variantInventory": [
|
|
14144
|
+
{
|
|
14145
|
+
"key": "fromAndToObjects",
|
|
14146
|
+
"exampleCount": 330,
|
|
14147
|
+
"description": "Observed harvested variant: fromAndToObjects."
|
|
14148
|
+
}
|
|
14149
|
+
]
|
|
14150
|
+
},
|
|
14151
|
+
"0-63809083": {
|
|
14152
|
+
"exampleCount": 442,
|
|
14153
|
+
"portalCount": 8,
|
|
14154
|
+
"workflowCount": 279,
|
|
14155
|
+
"fieldFrequency": [
|
|
14156
|
+
{
|
|
14157
|
+
"name": "listId",
|
|
14158
|
+
"bucket": "common_optional",
|
|
14159
|
+
"observedCount": 441,
|
|
14160
|
+
"totalCount": 442
|
|
14161
|
+
}
|
|
14162
|
+
],
|
|
14163
|
+
"variantInventory": [
|
|
14164
|
+
{
|
|
14165
|
+
"key": "default",
|
|
14166
|
+
"exampleCount": 442,
|
|
14167
|
+
"description": "Observed harvested variant: default."
|
|
14168
|
+
}
|
|
14169
|
+
]
|
|
14170
|
+
},
|
|
14171
|
+
"0-63863438": {
|
|
14172
|
+
"exampleCount": 18,
|
|
14173
|
+
"portalCount": 3,
|
|
14174
|
+
"workflowCount": 11,
|
|
14175
|
+
"fieldFrequency": [
|
|
14176
|
+
{
|
|
14177
|
+
"name": "listId",
|
|
14178
|
+
"bucket": "always_observed",
|
|
14179
|
+
"observedCount": 18,
|
|
14180
|
+
"totalCount": 18
|
|
14181
|
+
}
|
|
14182
|
+
],
|
|
14183
|
+
"variantInventory": [
|
|
14184
|
+
{
|
|
14185
|
+
"key": "default",
|
|
14186
|
+
"exampleCount": 18,
|
|
14187
|
+
"description": "Observed harvested variant: default."
|
|
14188
|
+
}
|
|
14189
|
+
]
|
|
14190
|
+
},
|
|
14191
|
+
"0-73444249": {
|
|
14192
|
+
"exampleCount": 16,
|
|
14193
|
+
"portalCount": 3,
|
|
14194
|
+
"workflowCount": 10,
|
|
14195
|
+
"fieldFrequency": [
|
|
14196
|
+
{
|
|
14197
|
+
"name": "applyLabelToAllAssociatedObjects",
|
|
14198
|
+
"bucket": "always_observed",
|
|
14199
|
+
"observedCount": 16,
|
|
14200
|
+
"totalCount": 16
|
|
14201
|
+
},
|
|
14202
|
+
{
|
|
14203
|
+
"name": "associatedObjectPropertyName",
|
|
14204
|
+
"bucket": "common_optional",
|
|
14205
|
+
"observedCount": 7,
|
|
14206
|
+
"totalCount": 16
|
|
14207
|
+
},
|
|
14208
|
+
{
|
|
14209
|
+
"name": "associatedObjectPropertyNameToMatch",
|
|
14210
|
+
"bucket": "common_optional",
|
|
14211
|
+
"observedCount": 5,
|
|
14212
|
+
"totalCount": 16
|
|
14213
|
+
},
|
|
14214
|
+
{
|
|
14215
|
+
"name": "associatedObjectPropertyOperator",
|
|
14216
|
+
"bucket": "common_optional",
|
|
14217
|
+
"observedCount": 7,
|
|
14218
|
+
"totalCount": 16
|
|
14219
|
+
},
|
|
14220
|
+
{
|
|
14221
|
+
"name": "associatedObjectPropertyValue",
|
|
14222
|
+
"bucket": "common_optional",
|
|
14223
|
+
"observedCount": 7,
|
|
14224
|
+
"totalCount": 16
|
|
14225
|
+
},
|
|
14226
|
+
{
|
|
14227
|
+
"name": "enrolledObjectPropertyNameToMatch",
|
|
14228
|
+
"bucket": "common_optional",
|
|
14229
|
+
"observedCount": 5,
|
|
14230
|
+
"totalCount": 16
|
|
14231
|
+
},
|
|
14232
|
+
{
|
|
14233
|
+
"name": "fromObjectType",
|
|
14234
|
+
"bucket": "always_observed",
|
|
14235
|
+
"observedCount": 16,
|
|
14236
|
+
"totalCount": 16
|
|
14237
|
+
},
|
|
14238
|
+
{
|
|
14239
|
+
"name": "labelToApply",
|
|
14240
|
+
"bucket": "always_observed",
|
|
14241
|
+
"observedCount": 16,
|
|
14242
|
+
"totalCount": 16
|
|
14243
|
+
},
|
|
14244
|
+
{
|
|
14245
|
+
"name": "matchBy",
|
|
14246
|
+
"bucket": "common_optional",
|
|
14247
|
+
"observedCount": 12,
|
|
14248
|
+
"totalCount": 16
|
|
14249
|
+
},
|
|
14250
|
+
{
|
|
14251
|
+
"name": "toObjectType",
|
|
14252
|
+
"bucket": "always_observed",
|
|
14253
|
+
"observedCount": 16,
|
|
14254
|
+
"totalCount": 16
|
|
14255
|
+
}
|
|
14256
|
+
],
|
|
14257
|
+
"variantInventory": [
|
|
14258
|
+
{
|
|
14259
|
+
"key": "property_match",
|
|
14260
|
+
"exampleCount": 12,
|
|
14261
|
+
"description": "Matches records using property-based association criteria."
|
|
14262
|
+
},
|
|
14263
|
+
{
|
|
14264
|
+
"key": "all_associated",
|
|
14265
|
+
"exampleCount": 4,
|
|
14266
|
+
"description": "Applies the label to all associated records."
|
|
14267
|
+
}
|
|
14268
|
+
]
|
|
14269
|
+
},
|
|
14270
|
+
"1-179507819": {
|
|
14271
|
+
"exampleCount": 20,
|
|
14272
|
+
"portalCount": 1,
|
|
14273
|
+
"workflowCount": 11,
|
|
14274
|
+
"fieldFrequency": [
|
|
14275
|
+
{
|
|
14276
|
+
"name": "message",
|
|
14277
|
+
"bucket": "always_observed",
|
|
14278
|
+
"observedCount": 20,
|
|
14279
|
+
"totalCount": 20
|
|
14280
|
+
},
|
|
14281
|
+
{
|
|
14282
|
+
"name": "notifyOwner",
|
|
14283
|
+
"bucket": "common_optional",
|
|
14284
|
+
"observedCount": 17,
|
|
14285
|
+
"totalCount": 20
|
|
14286
|
+
},
|
|
14287
|
+
{
|
|
14288
|
+
"name": "slackChannelIds",
|
|
14289
|
+
"bucket": "common_optional",
|
|
14290
|
+
"observedCount": 12,
|
|
14291
|
+
"totalCount": 20
|
|
14292
|
+
},
|
|
14293
|
+
{
|
|
14294
|
+
"name": "slackUserIds",
|
|
14295
|
+
"bucket": "common_optional",
|
|
14296
|
+
"observedCount": 10,
|
|
14297
|
+
"totalCount": 20
|
|
14298
|
+
}
|
|
14299
|
+
],
|
|
14300
|
+
"variantInventory": [
|
|
14301
|
+
{
|
|
14302
|
+
"key": "channel_delivery",
|
|
14303
|
+
"exampleCount": 11,
|
|
14304
|
+
"description": "Sends the Slack notification to channels."
|
|
14305
|
+
},
|
|
14306
|
+
{
|
|
14307
|
+
"key": "owner_delivery",
|
|
14308
|
+
"exampleCount": 4,
|
|
14309
|
+
"description": "Sends the Slack notification to resolved record owners."
|
|
14310
|
+
},
|
|
14311
|
+
{
|
|
14312
|
+
"key": "user_delivery",
|
|
14313
|
+
"exampleCount": 4,
|
|
14314
|
+
"description": "Sends the Slack notification to specific Slack users."
|
|
14315
|
+
},
|
|
14316
|
+
{
|
|
14317
|
+
"key": "message_only",
|
|
14318
|
+
"exampleCount": 1,
|
|
14319
|
+
"description": "Carries only the message payload in harvested examples."
|
|
14320
|
+
}
|
|
14321
|
+
]
|
|
14322
|
+
},
|
|
14323
|
+
"AB_TEST_BRANCH": {
|
|
14324
|
+
"exampleCount": 41,
|
|
14325
|
+
"portalCount": 2,
|
|
14326
|
+
"workflowCount": 24,
|
|
14327
|
+
"fieldFrequency": [
|
|
14328
|
+
{
|
|
14329
|
+
"name": "testBranches",
|
|
14330
|
+
"bucket": "always_observed",
|
|
14331
|
+
"observedCount": 41,
|
|
14332
|
+
"totalCount": 41
|
|
14333
|
+
}
|
|
14334
|
+
],
|
|
14335
|
+
"variantInventory": [
|
|
14336
|
+
{
|
|
14337
|
+
"key": "10_branches",
|
|
14338
|
+
"exampleCount": 9,
|
|
14339
|
+
"description": "Observed harvested variant: 10_branches."
|
|
14340
|
+
},
|
|
14341
|
+
{
|
|
14342
|
+
"key": "6_branches",
|
|
14343
|
+
"exampleCount": 7,
|
|
14344
|
+
"description": "Observed harvested variant: 6_branches."
|
|
14345
|
+
},
|
|
14346
|
+
{
|
|
14347
|
+
"key": "2_branches",
|
|
14348
|
+
"exampleCount": 6,
|
|
14349
|
+
"description": "Two weighted branch targets."
|
|
14350
|
+
},
|
|
14351
|
+
{
|
|
14352
|
+
"key": "4_branches",
|
|
14353
|
+
"exampleCount": 6,
|
|
14354
|
+
"description": "Observed harvested variant: 4_branches."
|
|
14355
|
+
},
|
|
14356
|
+
{
|
|
14357
|
+
"key": "5_branches",
|
|
14358
|
+
"exampleCount": 5,
|
|
14359
|
+
"description": "Observed harvested variant: 5_branches."
|
|
14360
|
+
},
|
|
14361
|
+
{
|
|
14362
|
+
"key": "9_branches",
|
|
14363
|
+
"exampleCount": 3,
|
|
14364
|
+
"description": "Observed harvested variant: 9_branches."
|
|
14365
|
+
},
|
|
14366
|
+
{
|
|
14367
|
+
"key": "7_branches",
|
|
14368
|
+
"exampleCount": 2,
|
|
14369
|
+
"description": "Observed harvested variant: 7_branches."
|
|
14370
|
+
},
|
|
14371
|
+
{
|
|
14372
|
+
"key": "1_branches",
|
|
14373
|
+
"exampleCount": 1,
|
|
14374
|
+
"description": "Single weighted branch target."
|
|
14375
|
+
}
|
|
14376
|
+
]
|
|
12360
14377
|
},
|
|
12361
|
-
"
|
|
12362
|
-
|
|
14378
|
+
"CUSTOM_CODE": {
|
|
14379
|
+
"exampleCount": 682,
|
|
14380
|
+
"portalCount": 7,
|
|
14381
|
+
"workflowCount": 222,
|
|
14382
|
+
"fieldFrequency": [
|
|
12363
14383
|
{
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
14384
|
+
"name": "inputFields",
|
|
14385
|
+
"bucket": "always_observed",
|
|
14386
|
+
"observedCount": 682,
|
|
14387
|
+
"totalCount": 682
|
|
14388
|
+
},
|
|
14389
|
+
{
|
|
14390
|
+
"name": "outputFields",
|
|
14391
|
+
"bucket": "always_observed",
|
|
14392
|
+
"observedCount": 682,
|
|
14393
|
+
"totalCount": 682
|
|
14394
|
+
},
|
|
14395
|
+
{
|
|
14396
|
+
"name": "runtime",
|
|
14397
|
+
"bucket": "always_observed",
|
|
14398
|
+
"observedCount": 682,
|
|
14399
|
+
"totalCount": 682
|
|
14400
|
+
},
|
|
14401
|
+
{
|
|
14402
|
+
"name": "secretNames",
|
|
14403
|
+
"bucket": "always_observed",
|
|
14404
|
+
"observedCount": 682,
|
|
14405
|
+
"totalCount": 682
|
|
14406
|
+
},
|
|
14407
|
+
{
|
|
14408
|
+
"name": "sourceCode",
|
|
14409
|
+
"bucket": "always_observed",
|
|
14410
|
+
"observedCount": 682,
|
|
14411
|
+
"totalCount": 682
|
|
12368
14412
|
}
|
|
12369
14413
|
],
|
|
12370
|
-
|
|
12371
|
-
},
|
|
12372
|
-
"0-43347357": {
|
|
12373
|
-
resourceRequirements: [
|
|
14414
|
+
"variantInventory": [
|
|
12374
14415
|
{
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
14416
|
+
"key": "inputs:OBJECT_PROPERTY|outputs:STRING|secrets:yes",
|
|
14417
|
+
"exampleCount": 74,
|
|
14418
|
+
"description": "Observed harvested variant: inputs:OBJECT_PROPERTY|outputs:STRING|secrets:yes."
|
|
14419
|
+
},
|
|
14420
|
+
{
|
|
14421
|
+
"key": "inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:ENUMERATION+STRING|secrets:yes",
|
|
14422
|
+
"exampleCount": 73,
|
|
14423
|
+
"description": "Observed harvested variant: inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:ENUMERATION+STRING|secrets:yes."
|
|
14424
|
+
},
|
|
14425
|
+
{
|
|
14426
|
+
"key": "inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:BOOLEAN|secrets:no",
|
|
14427
|
+
"exampleCount": 67,
|
|
14428
|
+
"description": "Observed harvested variant: inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:BOOLEAN|secrets:no."
|
|
14429
|
+
},
|
|
14430
|
+
{
|
|
14431
|
+
"key": "inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:NUMBER+STRING|secrets:no",
|
|
14432
|
+
"exampleCount": 52,
|
|
14433
|
+
"description": "Observed harvested variant: inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:NUMBER+STRING|secrets:no."
|
|
14434
|
+
},
|
|
14435
|
+
{
|
|
14436
|
+
"key": "inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:none|secrets:yes",
|
|
14437
|
+
"exampleCount": 33,
|
|
14438
|
+
"description": "Observed harvested variant: inputs:FETCHED_OBJECT_PROPERTY+OBJECT_PROPERTY|outputs:none|secrets:yes."
|
|
14439
|
+
},
|
|
14440
|
+
{
|
|
14441
|
+
"key": "inputs:OBJECT_PROPERTY|outputs:STRING|secrets:no",
|
|
14442
|
+
"exampleCount": 33,
|
|
14443
|
+
"description": "Observed harvested variant: inputs:OBJECT_PROPERTY|outputs:STRING|secrets:no."
|
|
14444
|
+
},
|
|
14445
|
+
{
|
|
14446
|
+
"key": "inputs:OBJECT_PROPERTY|outputs:none|secrets:yes",
|
|
14447
|
+
"exampleCount": 24,
|
|
14448
|
+
"description": "Observed harvested variant: inputs:OBJECT_PROPERTY|outputs:none|secrets:yes."
|
|
14449
|
+
},
|
|
14450
|
+
{
|
|
14451
|
+
"key": "inputs:OBJECT_PROPERTY|outputs:NUMBER+STRING|secrets:yes",
|
|
14452
|
+
"exampleCount": 22,
|
|
14453
|
+
"description": "Observed harvested variant: inputs:OBJECT_PROPERTY|outputs:NUMBER+STRING|secrets:yes."
|
|
12379
14454
|
}
|
|
12380
|
-
]
|
|
12381
|
-
createGuidanceText: "Use a real communication subscription definition ID. targetContact can often be '{{ enrolled_object }}' for contact workflows."
|
|
14455
|
+
]
|
|
12382
14456
|
},
|
|
12383
|
-
"
|
|
12384
|
-
|
|
14457
|
+
"LIST_BRANCH": {
|
|
14458
|
+
"exampleCount": 1724,
|
|
14459
|
+
"portalCount": 12,
|
|
14460
|
+
"workflowCount": 670,
|
|
14461
|
+
"fieldFrequency": [
|
|
12385
14462
|
{
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
|
|
12389
|
-
|
|
14463
|
+
"name": "defaultBranch",
|
|
14464
|
+
"bucket": "always_observed",
|
|
14465
|
+
"observedCount": 1724,
|
|
14466
|
+
"totalCount": 1724
|
|
12390
14467
|
},
|
|
12391
14468
|
{
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
14469
|
+
"name": "defaultBranchName",
|
|
14470
|
+
"bucket": "always_observed",
|
|
14471
|
+
"observedCount": 1724,
|
|
14472
|
+
"totalCount": 1724
|
|
14473
|
+
},
|
|
14474
|
+
{
|
|
14475
|
+
"name": "listBranches",
|
|
14476
|
+
"bucket": "always_observed",
|
|
14477
|
+
"observedCount": 1724,
|
|
14478
|
+
"totalCount": 1724
|
|
12397
14479
|
}
|
|
12398
14480
|
],
|
|
12399
|
-
|
|
12400
|
-
},
|
|
12401
|
-
"0-63189541": {
|
|
12402
|
-
resourceRequirements: [
|
|
14481
|
+
"variantInventory": [
|
|
12403
14482
|
{
|
|
12404
|
-
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
14483
|
+
"key": "AND+ASSOCIATION+OR+PROPERTY",
|
|
14484
|
+
"exampleCount": 703,
|
|
14485
|
+
"description": "Observed harvested variant: AND+ASSOCIATION+OR+PROPERTY."
|
|
14486
|
+
},
|
|
14487
|
+
{
|
|
14488
|
+
"key": "AND+OR+PROPERTY",
|
|
14489
|
+
"exampleCount": 663,
|
|
14490
|
+
"description": "Observed harvested variant: AND+OR+PROPERTY."
|
|
14491
|
+
},
|
|
14492
|
+
{
|
|
14493
|
+
"key": "AND+IN_LIST+OR+PROPERTY",
|
|
14494
|
+
"exampleCount": 67,
|
|
14495
|
+
"description": "Observed harvested variant: AND+IN_LIST+OR+PROPERTY."
|
|
14496
|
+
},
|
|
14497
|
+
{
|
|
14498
|
+
"key": "AND+IN_LIST+OR",
|
|
14499
|
+
"exampleCount": 59,
|
|
14500
|
+
"description": "Observed harvested variant: AND+IN_LIST+OR."
|
|
14501
|
+
},
|
|
14502
|
+
{
|
|
14503
|
+
"key": "AND+ASSOCIATION+EMAIL_EVENT+FORM_SUBMISSION_ON_PAGE+OR+PROPERTY",
|
|
14504
|
+
"exampleCount": 58,
|
|
14505
|
+
"description": "Observed harvested variant: AND+ASSOCIATION+EMAIL_EVENT+FORM_SUBMISSION_ON_PAGE+OR+PROPERTY."
|
|
14506
|
+
},
|
|
14507
|
+
{
|
|
14508
|
+
"key": "AND+EMAIL_EVENT+OR",
|
|
14509
|
+
"exampleCount": 43,
|
|
14510
|
+
"description": "Observed harvested variant: AND+EMAIL_EVENT+OR."
|
|
14511
|
+
},
|
|
14512
|
+
{
|
|
14513
|
+
"key": "AND+ASSOCIATION+FORM_SUBMISSION_ON_PAGE+OR+PROPERTY",
|
|
14514
|
+
"exampleCount": 36,
|
|
14515
|
+
"description": "Observed harvested variant: AND+ASSOCIATION+FORM_SUBMISSION_ON_PAGE+OR+PROPERTY."
|
|
14516
|
+
},
|
|
14517
|
+
{
|
|
14518
|
+
"key": "AND+ASSOCIATION+FORM_SUBMISSION+OR+PROPERTY",
|
|
14519
|
+
"exampleCount": 29,
|
|
14520
|
+
"description": "Observed harvested variant: AND+ASSOCIATION+FORM_SUBMISSION+OR+PROPERTY."
|
|
12409
14521
|
}
|
|
12410
|
-
]
|
|
12411
|
-
createGuidanceText: "For match fields, prefer bare property names over 'objectTypeId/propertyName' prefixes in create templates."
|
|
14522
|
+
]
|
|
12412
14523
|
},
|
|
12413
|
-
"
|
|
12414
|
-
|
|
14524
|
+
"STATIC_BRANCH": {
|
|
14525
|
+
"exampleCount": 721,
|
|
14526
|
+
"portalCount": 10,
|
|
14527
|
+
"workflowCount": 338,
|
|
14528
|
+
"fieldFrequency": [
|
|
12415
14529
|
{
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
14530
|
+
"name": "defaultBranch",
|
|
14531
|
+
"bucket": "always_observed",
|
|
14532
|
+
"observedCount": 721,
|
|
14533
|
+
"totalCount": 721
|
|
14534
|
+
},
|
|
14535
|
+
{
|
|
14536
|
+
"name": "defaultBranchName",
|
|
14537
|
+
"bucket": "always_observed",
|
|
14538
|
+
"observedCount": 721,
|
|
14539
|
+
"totalCount": 721
|
|
14540
|
+
},
|
|
14541
|
+
{
|
|
14542
|
+
"name": "inputValue",
|
|
14543
|
+
"bucket": "always_observed",
|
|
14544
|
+
"observedCount": 721,
|
|
14545
|
+
"totalCount": 721
|
|
14546
|
+
},
|
|
14547
|
+
{
|
|
14548
|
+
"name": "staticBranches",
|
|
14549
|
+
"bucket": "always_observed",
|
|
14550
|
+
"observedCount": 721,
|
|
14551
|
+
"totalCount": 721
|
|
12420
14552
|
}
|
|
12421
14553
|
],
|
|
12422
|
-
|
|
12423
|
-
},
|
|
12424
|
-
"0-61139476": {
|
|
12425
|
-
resourceRequirements: [
|
|
14554
|
+
"variantInventory": [
|
|
12426
14555
|
{
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
14556
|
+
"key": "FIELD_DATA",
|
|
14557
|
+
"exampleCount": 493,
|
|
14558
|
+
"description": "Uses output from a previous workflow action."
|
|
14559
|
+
},
|
|
14560
|
+
{
|
|
14561
|
+
"key": "OBJECT_PROPERTY",
|
|
14562
|
+
"exampleCount": 225,
|
|
14563
|
+
"description": "Copies a value from an enrolled-object property."
|
|
14564
|
+
},
|
|
14565
|
+
{
|
|
14566
|
+
"key": "FETCHED_OBJECT_PROPERTY",
|
|
14567
|
+
"exampleCount": 3,
|
|
14568
|
+
"description": "Uses a property from a fetched associated record."
|
|
12431
14569
|
}
|
|
12432
|
-
]
|
|
12433
|
-
createGuidanceText: "Use an existing association label typeId for the relevant object pair."
|
|
14570
|
+
]
|
|
12434
14571
|
},
|
|
12435
|
-
"
|
|
12436
|
-
|
|
14572
|
+
"WEBHOOK": {
|
|
14573
|
+
"exampleCount": 2,
|
|
14574
|
+
"portalCount": 2,
|
|
14575
|
+
"workflowCount": 2,
|
|
14576
|
+
"fieldFrequency": [
|
|
12437
14577
|
{
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
14578
|
+
"name": "method",
|
|
14579
|
+
"bucket": "always_observed",
|
|
14580
|
+
"observedCount": 2,
|
|
14581
|
+
"totalCount": 2
|
|
12442
14582
|
},
|
|
12443
14583
|
{
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
14584
|
+
"name": "queryParams",
|
|
14585
|
+
"bucket": "always_observed",
|
|
14586
|
+
"observedCount": 2,
|
|
14587
|
+
"totalCount": 2
|
|
14588
|
+
},
|
|
14589
|
+
{
|
|
14590
|
+
"name": "webhookUrl",
|
|
14591
|
+
"bucket": "always_observed",
|
|
14592
|
+
"observedCount": 2,
|
|
14593
|
+
"totalCount": 2
|
|
12448
14594
|
}
|
|
12449
14595
|
],
|
|
12450
|
-
|
|
14596
|
+
"variantInventory": [
|
|
14597
|
+
{
|
|
14598
|
+
"key": "POST",
|
|
14599
|
+
"exampleCount": 2,
|
|
14600
|
+
"description": "Observed harvested variant: POST."
|
|
14601
|
+
}
|
|
14602
|
+
]
|
|
12451
14603
|
}
|
|
12452
14604
|
};
|
|
12453
14605
|
|
|
@@ -12533,6 +14685,10 @@ var KNOWN_GUARDRAILS_BY_ACTION_TYPE_ID = {
|
|
|
12533
14685
|
{
|
|
12534
14686
|
code: "USER_IDS_ARRAY",
|
|
12535
14687
|
message: "user_ids must be an array of HubSpot user ID strings."
|
|
14688
|
+
},
|
|
14689
|
+
{
|
|
14690
|
+
code: "RECIPIENT_SOURCE_REQUIRED",
|
|
14691
|
+
message: "At least one of user_ids or team_ids must contain a rotation target."
|
|
12536
14692
|
}
|
|
12537
14693
|
],
|
|
12538
14694
|
"0-3": [
|
|
@@ -12541,6 +14697,66 @@ var KNOWN_GUARDRAILS_BY_ACTION_TYPE_ID = {
|
|
|
12541
14697
|
message: "In CONTACT_FLOW, include use_explicit_associations: 'true' and an enrolled-contact association via associationTypeId 204 or HubSpot may return HTTP 500."
|
|
12542
14698
|
}
|
|
12543
14699
|
],
|
|
14700
|
+
"0-225935194": [
|
|
14701
|
+
{
|
|
14702
|
+
code: "STATIC_COUNTRY_CODE_MODE_REQUIREMENT",
|
|
14703
|
+
message: "staticDefaultCountryCode is required only when defaultCountryCodeMode is static_default_country_code."
|
|
14704
|
+
}
|
|
14705
|
+
],
|
|
14706
|
+
"0-46510720": [
|
|
14707
|
+
{
|
|
14708
|
+
code: "SENDER_MODE_DEPENDENCIES",
|
|
14709
|
+
message: "CONTACT_OWNER requires contactOwnerProperty; SPECIFIC_USER requires userId."
|
|
14710
|
+
}
|
|
14711
|
+
],
|
|
14712
|
+
"1-179507819": [
|
|
14713
|
+
{
|
|
14714
|
+
code: "SLACK_RECIPIENT_TARGET_REQUIRED",
|
|
14715
|
+
message: "Provide at least one recipient target in slackChannelIds, slackUserIds, or notifyOwner."
|
|
14716
|
+
}
|
|
14717
|
+
],
|
|
14718
|
+
CUSTOM_CODE: [
|
|
14719
|
+
{
|
|
14720
|
+
code: "ENUM_OUTPUT_OPTIONS_REQUIRED",
|
|
14721
|
+
message: "CUSTOM_CODE outputFields with type ENUMERATION must include a non-empty options array."
|
|
14722
|
+
},
|
|
14723
|
+
{
|
|
14724
|
+
code: "EXPORTS_MAIN_REQUIRED",
|
|
14725
|
+
message: "sourceCode must define exports.main or module.exports.main."
|
|
14726
|
+
},
|
|
14727
|
+
{
|
|
14728
|
+
code: "CALLBACK_OR_RETURN_CONTRACT",
|
|
14729
|
+
message: "sourceCode must either call callback(...) or return an object containing outputFields."
|
|
14730
|
+
},
|
|
14731
|
+
{
|
|
14732
|
+
code: "DECLARED_IO_MUST_BE_REFERENCED",
|
|
14733
|
+
message: "Declared inputFields, outputFields, and secretNames should all be referenced in sourceCode."
|
|
14734
|
+
},
|
|
14735
|
+
{
|
|
14736
|
+
code: "DANGEROUS_CONSTRUCTS_REJECTED",
|
|
14737
|
+
message: "sourceCode must not use eval, dynamic Function construction, child_process, shell execution, or filesystem writes."
|
|
14738
|
+
}
|
|
14739
|
+
],
|
|
14740
|
+
WEBHOOK: [
|
|
14741
|
+
{
|
|
14742
|
+
code: "WEBHOOK_METHOD_ENUM",
|
|
14743
|
+
message: "method must be one of GET, POST, PUT, PATCH, or DELETE."
|
|
14744
|
+
}
|
|
14745
|
+
],
|
|
14746
|
+
LIST_BRANCH: [
|
|
14747
|
+
{
|
|
14748
|
+
code: "LOGICAL_NODE_NON_EMPTY",
|
|
14749
|
+
message: "AND and OR LIST_BRANCH nodes must include at least one filter or child branch."
|
|
14750
|
+
},
|
|
14751
|
+
{
|
|
14752
|
+
code: "ASSOCIATION_NODE_SHAPE",
|
|
14753
|
+
message: "ASSOCIATION nodes require associationCategory, associationTypeId, objectTypeId, and operator: 'IN_LIST'."
|
|
14754
|
+
},
|
|
14755
|
+
{
|
|
14756
|
+
code: "UNIFIED_EVENTS_NODE_SHAPE",
|
|
14757
|
+
message: "UNIFIED_EVENTS nodes require eventTypeId and operator: 'HAS_COMPLETED', and do not accept direct filters."
|
|
14758
|
+
}
|
|
14759
|
+
],
|
|
12544
14760
|
STATIC_BRANCH: [
|
|
12545
14761
|
{
|
|
12546
14762
|
code: "FIELD_DATA_SOURCE_MUST_EXIST",
|
|
@@ -12574,6 +14790,32 @@ var CONTEXT_CONSTRAINTS_BY_ACTION_TYPE_ID = {
|
|
|
12574
14790
|
condition: "workflow_type = PLATFORM_FLOW",
|
|
12575
14791
|
requirement: "target_property and overwrite_current_owner may be omitted because HubSpot auto-fills them."
|
|
12576
14792
|
}
|
|
14793
|
+
],
|
|
14794
|
+
"0-225935194": [
|
|
14795
|
+
{
|
|
14796
|
+
condition: "fields.defaultCountryCodeMode = static_default_country_code",
|
|
14797
|
+
requirement: "Set staticDefaultCountryCode to a valid ISO country code string."
|
|
14798
|
+
}
|
|
14799
|
+
],
|
|
14800
|
+
"0-46510720": [
|
|
14801
|
+
{
|
|
14802
|
+
condition: "fields.senderType = CONTACT_OWNER",
|
|
14803
|
+
requirement: "Provide contactOwnerProperty, usually hubspot_owner_id."
|
|
14804
|
+
},
|
|
14805
|
+
{
|
|
14806
|
+
condition: "fields.senderType = SPECIFIC_USER",
|
|
14807
|
+
requirement: "Provide userId with a HubSpot user ID from the owners.user_id column."
|
|
14808
|
+
}
|
|
14809
|
+
],
|
|
14810
|
+
LIST_BRANCH: [
|
|
14811
|
+
{
|
|
14812
|
+
condition: "node.filterBranchType = ASSOCIATION",
|
|
14813
|
+
requirement: "Set associationCategory, associationTypeId, objectTypeId, and operator: 'IN_LIST' on that node."
|
|
14814
|
+
},
|
|
14815
|
+
{
|
|
14816
|
+
condition: "node.filterBranchType = UNIFIED_EVENTS",
|
|
14817
|
+
requirement: "Set eventTypeId and operator: 'HAS_COMPLETED' on that node and keep direct filters empty."
|
|
14818
|
+
}
|
|
12577
14819
|
]
|
|
12578
14820
|
};
|
|
12579
14821
|
var toLookupRequirements = (requirements) => requirements.map((requirement) => {
|
|
@@ -12593,6 +14835,13 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12593
14835
|
const knownGuardrails = KNOWN_GUARDRAILS_BY_ACTION_TYPE_ID[actionTypeId] ?? [];
|
|
12594
14836
|
const contextConstraints = CONTEXT_CONSTRAINTS_BY_ACTION_TYPE_ID[actionTypeId] ?? [];
|
|
12595
14837
|
const lookupRequirements = toLookupRequirements(resourceRequirements);
|
|
14838
|
+
const corpusMetadata = WORKFLOW_ACTION_CORPUS_METADATA_BY_ID[actionTypeId] ?? {
|
|
14839
|
+
exampleCount: 0,
|
|
14840
|
+
portalCount: 0,
|
|
14841
|
+
workflowCount: 0,
|
|
14842
|
+
fieldFrequency: [],
|
|
14843
|
+
variantInventory: []
|
|
14844
|
+
};
|
|
12596
14845
|
if (actionTypeId === "AB_TEST_BRANCH") {
|
|
12597
14846
|
return {
|
|
12598
14847
|
actionTypeId,
|
|
@@ -12614,14 +14863,17 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12614
14863
|
),
|
|
12615
14864
|
knownGuardrails,
|
|
12616
14865
|
contextConstraints,
|
|
12617
|
-
lookupRequirements
|
|
14866
|
+
lookupRequirements,
|
|
14867
|
+
corpusMetadata,
|
|
14868
|
+
fieldFrequency: corpusMetadata.fieldFrequency,
|
|
14869
|
+
variantInventory: corpusMetadata.variantInventory
|
|
12618
14870
|
};
|
|
12619
14871
|
}
|
|
12620
14872
|
if (actionTypeId === "LIST_BRANCH") {
|
|
12621
14873
|
return {
|
|
12622
14874
|
actionTypeId,
|
|
12623
14875
|
name: "List branch",
|
|
12624
|
-
description: "Branch the workflow using list membership filters
|
|
14876
|
+
description: "Branch the workflow using explicit logical filter trees made up of property filters, list membership filters, form/email activity filters, association scopes, and unified-event nodes.",
|
|
12625
14877
|
category: "built_in",
|
|
12626
14878
|
connectionType: "BRANCH",
|
|
12627
14879
|
fields: [
|
|
@@ -12629,7 +14881,7 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12629
14881
|
name: "listBranches",
|
|
12630
14882
|
type: "array",
|
|
12631
14883
|
required: true,
|
|
12632
|
-
description: "Branch definitions. Each entry includes branchName
|
|
14884
|
+
description: "Branch definitions. Each entry includes branchName and a filterBranch tree. The tree can contain logical AND/OR nodes, ASSOCIATION nodes scoped to a related object type, and UNIFIED_EVENTS nodes for completed-event checks. Leaf filters include PROPERTY, IN_LIST, FORM_SUBMISSION, FORM_SUBMISSION_ON_PAGE, EMAIL_EVENT, and CTA variants."
|
|
12633
14885
|
},
|
|
12634
14886
|
{
|
|
12635
14887
|
name: "defaultBranch",
|
|
@@ -12646,11 +14898,14 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12646
14898
|
],
|
|
12647
14899
|
resourceRequirements,
|
|
12648
14900
|
createGuidanceText: withUpdateWorkflowGuidance(
|
|
12649
|
-
createMetadata?.createGuidanceText ?? "Use LIST_BRANCH for conditional branching
|
|
14901
|
+
createMetadata?.createGuidanceText ?? "Use LIST_BRANCH for conditional branching when you need nested logical groups, association-scoped conditions, or activity-based filters such as form submissions and email events."
|
|
12650
14902
|
),
|
|
12651
14903
|
knownGuardrails,
|
|
12652
14904
|
contextConstraints,
|
|
12653
|
-
lookupRequirements
|
|
14905
|
+
lookupRequirements,
|
|
14906
|
+
corpusMetadata,
|
|
14907
|
+
fieldFrequency: corpusMetadata.fieldFrequency,
|
|
14908
|
+
variantInventory: corpusMetadata.variantInventory
|
|
12654
14909
|
};
|
|
12655
14910
|
}
|
|
12656
14911
|
if (actionTypeId === "STATIC_BRANCH") {
|
|
@@ -12665,7 +14920,7 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12665
14920
|
name: "inputValue",
|
|
12666
14921
|
type: "object",
|
|
12667
14922
|
required: true,
|
|
12668
|
-
description: "Branch input reference. Use FIELD_DATA to branch on a prior action output
|
|
14923
|
+
description: "Branch input reference. Use FIELD_DATA to branch on a prior action output, OBJECT_PROPERTY to branch on an enrolled record property, or FETCHED_OBJECT_PROPERTY when a fetched-object token is the branch source."
|
|
12669
14924
|
},
|
|
12670
14925
|
{
|
|
12671
14926
|
name: "staticBranches",
|
|
@@ -12692,7 +14947,10 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12692
14947
|
),
|
|
12693
14948
|
knownGuardrails,
|
|
12694
14949
|
contextConstraints,
|
|
12695
|
-
lookupRequirements
|
|
14950
|
+
lookupRequirements,
|
|
14951
|
+
corpusMetadata,
|
|
14952
|
+
fieldFrequency: corpusMetadata.fieldFrequency,
|
|
14953
|
+
variantInventory: corpusMetadata.variantInventory
|
|
12696
14954
|
};
|
|
12697
14955
|
}
|
|
12698
14956
|
const builtInActionType = BUILT_IN_ACTION_TYPES[actionTypeId];
|
|
@@ -12710,7 +14968,10 @@ var SUPPORTED_WORKFLOW_ACTION_TYPES = SUPPORTED_WORKFLOW_ACTION_KEYS.map((action
|
|
|
12710
14968
|
createGuidanceText: withUpdateWorkflowGuidance(createMetadata?.createGuidanceText ?? ""),
|
|
12711
14969
|
knownGuardrails,
|
|
12712
14970
|
contextConstraints,
|
|
12713
|
-
lookupRequirements
|
|
14971
|
+
lookupRequirements,
|
|
14972
|
+
corpusMetadata,
|
|
14973
|
+
fieldFrequency: corpusMetadata.fieldFrequency,
|
|
14974
|
+
variantInventory: corpusMetadata.variantInventory
|
|
12714
14975
|
};
|
|
12715
14976
|
});
|
|
12716
14977
|
var SUPPORTED_WORKFLOW_ACTION_TYPES_BY_ID = Object.fromEntries(
|
|
@@ -16783,7 +19044,7 @@ var projectCreatedPipeline = (ctx, objectType, pipeline2) => {
|
|
|
16783
19044
|
label: pipeline2.label,
|
|
16784
19045
|
displayOrder: pipeline2.displayOrder,
|
|
16785
19046
|
stages: pipeline2.stages.map((stage, index) => ({
|
|
16786
|
-
id: `created-stage:${index + 1}`,
|
|
19047
|
+
id: stage.id ?? `created-stage:${index + 1}`,
|
|
16787
19048
|
label: stage.label,
|
|
16788
19049
|
displayOrder: stage.displayOrder,
|
|
16789
19050
|
metadata: { ...stage.metadata ?? {} }
|
|
@@ -18367,6 +20628,7 @@ var HIGH_STAGE_LIMIT_OBJECTS = /* @__PURE__ */ new Set(["deals", "tickets"]);
|
|
|
18367
20628
|
var validateCreatePipeline = (op, index, _ctx) => {
|
|
18368
20629
|
const issues = [];
|
|
18369
20630
|
const stageLabels = /* @__PURE__ */ new Set();
|
|
20631
|
+
const stageRefs = /* @__PURE__ */ new Set();
|
|
18370
20632
|
for (const stage of op.pipeline.stages) {
|
|
18371
20633
|
if (stageLabels.has(stage.label)) {
|
|
18372
20634
|
issues.push({
|
|
@@ -18377,6 +20639,17 @@ var validateCreatePipeline = (op, index, _ctx) => {
|
|
|
18377
20639
|
});
|
|
18378
20640
|
}
|
|
18379
20641
|
stageLabels.add(stage.label);
|
|
20642
|
+
if (stage.ref) {
|
|
20643
|
+
if (stageRefs.has(stage.ref)) {
|
|
20644
|
+
issues.push({
|
|
20645
|
+
severity: "error",
|
|
20646
|
+
operation_index: index,
|
|
20647
|
+
code: "DUPLICATE_STAGE_REF",
|
|
20648
|
+
message: `Stage ref '${stage.ref}' is duplicated within the pipeline definition`
|
|
20649
|
+
});
|
|
20650
|
+
}
|
|
20651
|
+
stageRefs.add(stage.ref);
|
|
20652
|
+
}
|
|
18380
20653
|
}
|
|
18381
20654
|
if (OBJECTS_WITH_PROBABILITY.has(op.object_type)) {
|
|
18382
20655
|
for (const stage of op.pipeline.stages) {
|
|
@@ -18485,19 +20758,31 @@ var createPipelineHandler = {
|
|
|
18485
20758
|
validate: validateCreatePipeline,
|
|
18486
20759
|
validateEffectful: validateCreatePipelineEffectful,
|
|
18487
20760
|
preCheck: preCheckCreatePipeline,
|
|
18488
|
-
declarePlanRefs: (op, index, ctx) =>
|
|
18489
|
-
|
|
18490
|
-
|
|
18491
|
-
|
|
18492
|
-
|
|
18493
|
-
|
|
18494
|
-
|
|
18495
|
-
|
|
20761
|
+
declarePlanRefs: (op, index, ctx) => [
|
|
20762
|
+
...declarePlanRef(ctx, {
|
|
20763
|
+
ref: op.ref,
|
|
20764
|
+
sourceOperationIndex: index,
|
|
20765
|
+
kind: "pipeline",
|
|
20766
|
+
primitive: "string",
|
|
20767
|
+
projectedValue: `plan-ref:pipeline:${index + 1}`,
|
|
20768
|
+
objectType: op.object_type
|
|
20769
|
+
}),
|
|
20770
|
+
...declareIndexedPlanRefs(ctx, {
|
|
20771
|
+
items: op.pipeline.stages,
|
|
20772
|
+
sourceOperationIndex: index,
|
|
20773
|
+
kind: "pipeline_stage",
|
|
20774
|
+
primitive: "string",
|
|
20775
|
+
getRef: (stage) => stage.ref,
|
|
20776
|
+
getProjectedValue: (_stage, itemIndex) => makeSyntheticStringRefValue("pipeline_stage", index, itemIndex),
|
|
20777
|
+
getObjectType: () => op.object_type
|
|
20778
|
+
})
|
|
20779
|
+
],
|
|
18496
20780
|
projectValidationState: (op, index, ctx) => projectCreatedPipeline(ctx, op.object_type, {
|
|
18497
20781
|
id: op.ref ? `plan-ref:pipeline:${index + 1}` : void 0,
|
|
18498
20782
|
label: op.pipeline.label,
|
|
18499
20783
|
displayOrder: op.pipeline.display_order,
|
|
18500
|
-
stages: op.pipeline.stages.map((stage) => ({
|
|
20784
|
+
stages: op.pipeline.stages.map((stage, stageIndex) => ({
|
|
20785
|
+
id: stage.ref ? makeSyntheticStringRefValue("pipeline_stage", index, stageIndex) : void 0,
|
|
18501
20786
|
label: stage.label,
|
|
18502
20787
|
displayOrder: stage.display_order,
|
|
18503
20788
|
metadata: stage.metadata
|
|
@@ -18526,11 +20811,22 @@ var createPipelineHandler = {
|
|
|
18526
20811
|
type: "create_pipeline",
|
|
18527
20812
|
status: "success",
|
|
18528
20813
|
records_affected: 1,
|
|
18529
|
-
affected_ids: [result.id]
|
|
20814
|
+
affected_ids: [result.id],
|
|
20815
|
+
outputs: [
|
|
20816
|
+
...collectSingleOutputRef(op.ref, "pipeline", "string", result.id, op.object_type),
|
|
20817
|
+
...collectIndexedOutputRefs({
|
|
20818
|
+
items: op.pipeline.stages,
|
|
20819
|
+
values: result.stages.map((stage) => stage.id),
|
|
20820
|
+
kind: "pipeline_stage",
|
|
20821
|
+
primitive: "string",
|
|
20822
|
+
getRef: (stage) => stage.ref,
|
|
20823
|
+
getObjectType: () => op.object_type
|
|
20824
|
+
})
|
|
20825
|
+
]
|
|
18530
20826
|
})),
|
|
18531
20827
|
catchAllToFailed("create_pipeline", index)
|
|
18532
20828
|
),
|
|
18533
|
-
collectOutputRefs: (
|
|
20829
|
+
collectOutputRefs: () => [],
|
|
18534
20830
|
postCheck: (op, index, result) => {
|
|
18535
20831
|
if (result.status !== "success") return Effect77.succeed([]);
|
|
18536
20832
|
return pipe59(
|
|
@@ -23146,6 +25442,12 @@ var ENUMERATION_INVALID_OPERATORS = /* @__PURE__ */ new Set([
|
|
|
23146
25442
|
"IS_EQUAL_TO",
|
|
23147
25443
|
"IS_NOT_EQUAL_TO"
|
|
23148
25444
|
]);
|
|
25445
|
+
var ALL_PROPERTY_EXISTENCE_OPERATORS = /* @__PURE__ */ new Set([
|
|
25446
|
+
"IS_KNOWN",
|
|
25447
|
+
"IS_UNKNOWN",
|
|
25448
|
+
"IS_BLANK",
|
|
25449
|
+
"IS_NOT_BLANK"
|
|
25450
|
+
]);
|
|
23149
25451
|
var isCompatibleEnrollmentOperationType = (operationType, expectedOperationType, propertyType) => operationType === expectedOperationType || operationType === "ALL_PROPERTY" || operationType === "TIME_RANGED" && (propertyType === "date" || propertyType === "datetime");
|
|
23150
25452
|
var collectPropertyFiltersFromBranches = (branches, parentObjectTypeId, parentEventTypeId) => {
|
|
23151
25453
|
const refs = [];
|
|
@@ -23279,6 +25581,15 @@ var validateWorkflowEnrollmentMetadata = (params) => {
|
|
|
23279
25581
|
});
|
|
23280
25582
|
continue;
|
|
23281
25583
|
}
|
|
25584
|
+
if (propertyDefinition.type === "bool" && filterRef.operationType === "ALL_PROPERTY" && filterRef.operator !== void 0 && !ALL_PROPERTY_EXISTENCE_OPERATORS.has(filterRef.operator)) {
|
|
25585
|
+
add({
|
|
25586
|
+
severity: "error",
|
|
25587
|
+
operation_index: operationIndex,
|
|
25588
|
+
code: "INVALID_ENROLLMENT_FILTER_OPERATION_TYPE",
|
|
25589
|
+
message: `Workflow enrollment filter property '${filterRef.property}' is boolean but uses operator '${filterRef.operator}' with operationType 'ALL_PROPERTY'. Use operationType 'BOOL' for true/false checks, or keep 'ALL_PROPERTY' only for existence operators ${Array.from(ALL_PROPERTY_EXISTENCE_OPERATORS).join(", ")}.`
|
|
25590
|
+
});
|
|
25591
|
+
continue;
|
|
25592
|
+
}
|
|
23282
25593
|
if (isCompatibleEnrollmentOperationType(filterRef.operationType, expectedOperationType, propertyDefinition.type)) {
|
|
23283
25594
|
if (propertyDefinition.type === "enumeration" && filterRef.operator !== void 0 && ENUMERATION_INVALID_OPERATORS.has(filterRef.operator)) {
|
|
23284
25595
|
add({
|
|
@@ -23322,6 +25633,12 @@ var ENUMERATION_INVALID_OPERATORS2 = /* @__PURE__ */ new Set([
|
|
|
23322
25633
|
"IS_EQUAL_TO",
|
|
23323
25634
|
"IS_NOT_EQUAL_TO"
|
|
23324
25635
|
]);
|
|
25636
|
+
var ALL_PROPERTY_EXISTENCE_OPERATORS2 = /* @__PURE__ */ new Set([
|
|
25637
|
+
"IS_KNOWN",
|
|
25638
|
+
"IS_UNKNOWN",
|
|
25639
|
+
"IS_BLANK",
|
|
25640
|
+
"IS_NOT_BLANK"
|
|
25641
|
+
]);
|
|
23325
25642
|
var isCompatibleOperationType = (operationType, expectedOperationType, propertyType) => operationType === expectedOperationType || operationType === "ALL_PROPERTY" || operationType === "TIME_RANGED" && (propertyType === "date" || propertyType === "datetime");
|
|
23326
25643
|
var validateListBranchFilterNode = (params) => {
|
|
23327
25644
|
const { actionId, node, path: path6, operationIndex } = params;
|
|
@@ -23601,6 +25918,15 @@ var validateWorkflowListBranchMetadata = (params) => {
|
|
|
23601
25918
|
});
|
|
23602
25919
|
continue;
|
|
23603
25920
|
}
|
|
25921
|
+
if (propertyDefinition.type === "bool" && propertyRef.operationType === "ALL_PROPERTY" && propertyRef.operator !== void 0 && !ALL_PROPERTY_EXISTENCE_OPERATORS2.has(propertyRef.operator)) {
|
|
25922
|
+
add({
|
|
25923
|
+
severity: "error",
|
|
25924
|
+
operation_index: operationIndex,
|
|
25925
|
+
code: "WORKFLOW_LIST_BRANCH_INVALID_FILTER_OPERATION_TYPE",
|
|
25926
|
+
message: `Action '${propertyRef.actionId}' LIST_BRANCH property '${propertyRef.property}' is boolean but uses operator '${propertyRef.operator}' with operationType 'ALL_PROPERTY'. Use operationType 'BOOL' for true/false checks, or keep 'ALL_PROPERTY' only for existence operators ${Array.from(ALL_PROPERTY_EXISTENCE_OPERATORS2).join(", ")}.`
|
|
25927
|
+
});
|
|
25928
|
+
continue;
|
|
25929
|
+
}
|
|
23604
25930
|
if (!isCompatibleOperationType(propertyRef.operationType, expectedOperationType, propertyDefinition.type)) {
|
|
23605
25931
|
add({
|
|
23606
25932
|
severity: "error",
|
|
@@ -24326,6 +26652,86 @@ var NUMBER_STRING_FIELD_KINDS = {
|
|
|
24326
26652
|
labelToApply: ["association_label"],
|
|
24327
26653
|
labelToRemove: ["association_label"]
|
|
24328
26654
|
};
|
|
26655
|
+
var LEGACY_PIPELINE_TEMPLATE_PATTERN = /^\s*\{\{\s*pipeline\.[^}]+\}\}\s*$/;
|
|
26656
|
+
var WORKFLOW_PROPERTY_TARGET_KINDS = {
|
|
26657
|
+
pipeline: ["pipeline"],
|
|
26658
|
+
dealstage: ["pipeline_stage"],
|
|
26659
|
+
hs_pipeline_stage: ["pipeline_stage"]
|
|
26660
|
+
};
|
|
26661
|
+
var getWorkflowPropertyTargetKinds = (targetProperty) => targetProperty ? WORKFLOW_PROPERTY_TARGET_KINDS[targetProperty] : void 0;
|
|
26662
|
+
var isLegacyPipelineTemplate = (value) => typeof value === "string" && LEGACY_PIPELINE_TEMPLATE_PATTERN.test(value);
|
|
26663
|
+
var resolveWorkflowValueSpecForValidation = (valueSpec, params) => {
|
|
26664
|
+
const kinds = getWorkflowPropertyTargetKinds(params.targetProperty);
|
|
26665
|
+
if (!kinds || !valueSpec || typeof valueSpec !== "object") return void 0;
|
|
26666
|
+
const record = valueSpec;
|
|
26667
|
+
const rawStaticValue = record.staticValue;
|
|
26668
|
+
if (isLegacyPipelineTemplate(rawStaticValue)) {
|
|
26669
|
+
return {
|
|
26670
|
+
value: valueSpec,
|
|
26671
|
+
issues: [{
|
|
26672
|
+
severity: "error",
|
|
26673
|
+
operation_index: params.operationIndex,
|
|
26674
|
+
code: "WORKFLOW_LEGACY_PIPELINE_TEMPLATE_UNSUPPORTED",
|
|
26675
|
+
message: `${params.path}.staticValue uses legacy pipeline template syntax; use a typed plan ref instead`
|
|
26676
|
+
}]
|
|
26677
|
+
};
|
|
26678
|
+
}
|
|
26679
|
+
if (!(typeof rawStaticValue === "string" || isPlanRefValue(rawStaticValue))) return void 0;
|
|
26680
|
+
const result = resolveStringFieldForValidation(rawStaticValue, {
|
|
26681
|
+
ctx: params.ctx,
|
|
26682
|
+
operationIndex: params.operationIndex,
|
|
26683
|
+
fieldLabel: `${params.path}.staticValue`,
|
|
26684
|
+
kinds
|
|
26685
|
+
});
|
|
26686
|
+
if (!result.ok) {
|
|
26687
|
+
return {
|
|
26688
|
+
value: valueSpec,
|
|
26689
|
+
issues: result.issues
|
|
26690
|
+
};
|
|
26691
|
+
}
|
|
26692
|
+
return {
|
|
26693
|
+
value: {
|
|
26694
|
+
...record,
|
|
26695
|
+
staticValue: result.value
|
|
26696
|
+
},
|
|
26697
|
+
issues: []
|
|
26698
|
+
};
|
|
26699
|
+
};
|
|
26700
|
+
var resolveWorkflowValueSpecForExecution = (valueSpec, params) => {
|
|
26701
|
+
const kinds = getWorkflowPropertyTargetKinds(params.targetProperty);
|
|
26702
|
+
if (!kinds || !valueSpec || typeof valueSpec !== "object") return void 0;
|
|
26703
|
+
const record = valueSpec;
|
|
26704
|
+
const rawStaticValue = record.staticValue;
|
|
26705
|
+
if (isLegacyPipelineTemplate(rawStaticValue)) {
|
|
26706
|
+
return {
|
|
26707
|
+
ok: false,
|
|
26708
|
+
result: {
|
|
26709
|
+
index: params.operationIndex,
|
|
26710
|
+
type: params.operationType,
|
|
26711
|
+
status: "skipped",
|
|
26712
|
+
records_affected: 0,
|
|
26713
|
+
error_code: "WORKFLOW_LEGACY_PIPELINE_TEMPLATE_UNSUPPORTED",
|
|
26714
|
+
error: `${params.path}.staticValue uses legacy pipeline template syntax; use a typed plan ref instead`
|
|
26715
|
+
}
|
|
26716
|
+
};
|
|
26717
|
+
}
|
|
26718
|
+
if (!(typeof rawStaticValue === "string" || isPlanRefValue(rawStaticValue))) return void 0;
|
|
26719
|
+
const result = resolveStringFieldForExecution(rawStaticValue, {
|
|
26720
|
+
ctx: params.ctx,
|
|
26721
|
+
operationIndex: params.operationIndex,
|
|
26722
|
+
operationType: params.operationType,
|
|
26723
|
+
fieldLabel: `${params.path}.staticValue`,
|
|
26724
|
+
kinds
|
|
26725
|
+
});
|
|
26726
|
+
if (!result.ok) return result;
|
|
26727
|
+
return {
|
|
26728
|
+
ok: true,
|
|
26729
|
+
value: {
|
|
26730
|
+
...record,
|
|
26731
|
+
staticValue: result.value
|
|
26732
|
+
}
|
|
26733
|
+
};
|
|
26734
|
+
};
|
|
24329
26735
|
var resolveNestedForValidation = (value, params) => {
|
|
24330
26736
|
if (Array.isArray(value)) {
|
|
24331
26737
|
const issues2 = [];
|
|
@@ -24345,6 +26751,30 @@ var resolveNestedForValidation = (value, params) => {
|
|
|
24345
26751
|
const record = value;
|
|
24346
26752
|
const issues = [];
|
|
24347
26753
|
const next = {};
|
|
26754
|
+
if (typeof record.targetProperty === "string" && "value" in record) {
|
|
26755
|
+
const resolvedValueSpec = resolveWorkflowValueSpecForValidation(record.value, {
|
|
26756
|
+
ctx: params.ctx,
|
|
26757
|
+
operationIndex: params.operationIndex,
|
|
26758
|
+
path: params.path ? `${params.path}.value` : "value",
|
|
26759
|
+
targetProperty: record.targetProperty
|
|
26760
|
+
});
|
|
26761
|
+
if (resolvedValueSpec) {
|
|
26762
|
+
issues.push(...resolvedValueSpec.issues);
|
|
26763
|
+
next.targetProperty = record.targetProperty;
|
|
26764
|
+
next.value = resolvedValueSpec.value;
|
|
26765
|
+
for (const [key, raw] of Object.entries(record)) {
|
|
26766
|
+
if (key === "targetProperty" || key === "value") continue;
|
|
26767
|
+
const path6 = params.path ? `${params.path}.${key}` : key;
|
|
26768
|
+
const nested = resolveNestedForValidation(raw, {
|
|
26769
|
+
...params,
|
|
26770
|
+
path: path6
|
|
26771
|
+
});
|
|
26772
|
+
issues.push(...nested.issues);
|
|
26773
|
+
next[key] = nested.value;
|
|
26774
|
+
}
|
|
26775
|
+
return { value: next, issues };
|
|
26776
|
+
}
|
|
26777
|
+
}
|
|
24348
26778
|
for (const [key, raw] of Object.entries(record)) {
|
|
24349
26779
|
const path6 = params.path ? `${params.path}.${key}` : key;
|
|
24350
26780
|
if (key in STRING_FIELD_KINDS && (typeof raw === "string" || isPlanRefValue(raw))) {
|
|
@@ -24408,6 +26838,31 @@ var resolveNestedForExecution = (value, params) => {
|
|
|
24408
26838
|
}
|
|
24409
26839
|
const record = value;
|
|
24410
26840
|
const next = {};
|
|
26841
|
+
if (typeof record.targetProperty === "string" && "value" in record) {
|
|
26842
|
+
const resolvedValueSpec = resolveWorkflowValueSpecForExecution(record.value, {
|
|
26843
|
+
ctx: params.ctx,
|
|
26844
|
+
operationIndex: params.operationIndex,
|
|
26845
|
+
operationType: params.operationType,
|
|
26846
|
+
path: params.path ? `${params.path}.value` : "value",
|
|
26847
|
+
targetProperty: record.targetProperty
|
|
26848
|
+
});
|
|
26849
|
+
if (resolvedValueSpec) {
|
|
26850
|
+
if (!resolvedValueSpec.ok) return resolvedValueSpec;
|
|
26851
|
+
next.targetProperty = record.targetProperty;
|
|
26852
|
+
next.value = resolvedValueSpec.value;
|
|
26853
|
+
for (const [key, raw] of Object.entries(record)) {
|
|
26854
|
+
if (key === "targetProperty" || key === "value") continue;
|
|
26855
|
+
const path6 = params.path ? `${params.path}.${key}` : key;
|
|
26856
|
+
const nested = resolveNestedForExecution(raw, {
|
|
26857
|
+
...params,
|
|
26858
|
+
path: path6
|
|
26859
|
+
});
|
|
26860
|
+
if (!nested.ok) return nested;
|
|
26861
|
+
next[key] = nested.value;
|
|
26862
|
+
}
|
|
26863
|
+
return { ok: true, value: next };
|
|
26864
|
+
}
|
|
26865
|
+
}
|
|
24411
26866
|
for (const [key, raw] of Object.entries(record)) {
|
|
24412
26867
|
const path6 = params.path ? `${params.path}.${key}` : key;
|
|
24413
26868
|
if (key in STRING_FIELD_KINDS && (typeof raw === "string" || isPlanRefValue(raw))) {
|
|
@@ -27025,7 +29480,11 @@ var buildDispatcher = (handlers, options2) => {
|
|
|
27025
29480
|
(result) => pipe118(
|
|
27026
29481
|
collectOperationOutputRefs(resolved.op, index, result),
|
|
27027
29482
|
Effect138.map((outputs) => {
|
|
27028
|
-
const
|
|
29483
|
+
const mergedOutputs = [
|
|
29484
|
+
...result.outputs ?? [],
|
|
29485
|
+
...outputs
|
|
29486
|
+
];
|
|
29487
|
+
const nextResult = mergedOutputs.length > 0 ? { ...result, outputs: mergedOutputs } : result;
|
|
27029
29488
|
if (nextResult.outputs) {
|
|
27030
29489
|
for (const output of nextResult.outputs) {
|
|
27031
29490
|
state.ctx.outputsByRef.set(output.ref, output);
|