@epilot/automation-client 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/openapi.d.ts +316 -3
- package/dist/openapi.json +203 -9
- package/package-lock.json +19937 -0
- package/package.json +1 -1
package/dist/openapi.d.ts
CHANGED
|
@@ -226,7 +226,125 @@ declare namespace Components {
|
|
|
226
226
|
* }
|
|
227
227
|
*/
|
|
228
228
|
SendEmailActionConfig | /* Creates an order entity with prices from journey */ CartCheckoutActionConfig | AutomationActionConfig;
|
|
229
|
-
export type AnyTrigger = FrontendSubmitTrigger | JourneySubmitTrigger | ApiSubmissionTrigger |
|
|
229
|
+
export type AnyTrigger = FrontendSubmitTrigger | JourneySubmitTrigger | ApiSubmissionTrigger | /**
|
|
230
|
+
* - If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.
|
|
231
|
+
* - The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`
|
|
232
|
+
* | Comparison | Example | Rule syntax |
|
|
233
|
+
* |------------------------|-----------------------------------------------------|----------------------------------------------------------|
|
|
234
|
+
* | Null | first_name is null | `"first_name": [ null ]` |
|
|
235
|
+
* | Empty | last_name is empty | `"last_name": [""]` |
|
|
236
|
+
* | Equals | email is "j.doe@email.com" | `"email": [ "j.doe@email.com" ]` |
|
|
237
|
+
* | Equals (ignore case) | first_name is "John" | `"first_name": [ { "equals-ignore-case": "john" } ]` |
|
|
238
|
+
* | And | fist_name is "John" and last_name is "Doe" | `"first_name": [ "John" ], "last_name": ["Doe"]` |
|
|
239
|
+
* | Or | PaymentType is "Invoice" or "SEPA" | `"PaymentType": [ "invoice", "sepa"]` |
|
|
240
|
+
* | Or (multiple fields) | first_name is "John", or last_name is "Doe". | `"$or": [ { "first_name": [ "John" ] }, { "last_name": [ "Doe" ] } ]` |
|
|
241
|
+
* | Not | status is anything but "cancelled" | `"status": [ { "anything-but": [ "cancelled" ] } ]` |
|
|
242
|
+
* | Numeric (equals) | Price is 100 | `"Price": [ { "numeric": [ "=", 100 ] } ]` |
|
|
243
|
+
* | Numeric (range) | Price is more than 10, and less than or equal to 20 | `"Price": [ { "numeric": [ ">", 10, "<=", 20 ] } ]` |
|
|
244
|
+
* | Exists | ProductName exists | `"ProductName": [ { "exists": true } ]` |
|
|
245
|
+
* | Does not exist | ProductName does not exist | `"ProductName": [ { "exists": false } ]` |
|
|
246
|
+
* | Begins with | OpportunityNumber starts with OPP- | `"opportunity_number": [ { "prefix": "OPP-" } ]` |
|
|
247
|
+
* | Ends with | FileName ends with a .png extension | `"filename": [ { "suffix": ".png" } ]` |
|
|
248
|
+
* - To run the execution on all update events
|
|
249
|
+
* ```
|
|
250
|
+
* {
|
|
251
|
+
* "type": "filter_entity_event",
|
|
252
|
+
* "configuration": {
|
|
253
|
+
* "operation": {
|
|
254
|
+
* "operation": ["updateEntity"]
|
|
255
|
+
* }
|
|
256
|
+
* }
|
|
257
|
+
* }
|
|
258
|
+
* ```
|
|
259
|
+
* - To run the execution only when the updates are from a portal user
|
|
260
|
+
* ```
|
|
261
|
+
* {
|
|
262
|
+
* "type": "filter_entity_event",
|
|
263
|
+
* "configuration": {
|
|
264
|
+
* "operation": {
|
|
265
|
+
* "operation": ["updateEntity"]
|
|
266
|
+
* },
|
|
267
|
+
* "activity": {
|
|
268
|
+
* "type": "EntityUpdatedFromPortal"
|
|
269
|
+
* }
|
|
270
|
+
* }
|
|
271
|
+
* }
|
|
272
|
+
* ```
|
|
273
|
+
* - To run the execution only when there is an update on a specific attribute
|
|
274
|
+
* ```
|
|
275
|
+
* Only starts the automation when the email on a contact is changed
|
|
276
|
+
* {
|
|
277
|
+
* "type": "filter_entity_event",
|
|
278
|
+
* "configuration": {
|
|
279
|
+
* "operation": {
|
|
280
|
+
* "operation": ["updateEntity"],
|
|
281
|
+
* "payload": {
|
|
282
|
+
* "_schema": ["contact"]
|
|
283
|
+
* },
|
|
284
|
+
* "diff": {
|
|
285
|
+
* "updated": {
|
|
286
|
+
* "email": [{ "exists": true }]
|
|
287
|
+
* }
|
|
288
|
+
* }
|
|
289
|
+
* }
|
|
290
|
+
* }
|
|
291
|
+
* }
|
|
292
|
+
* ```
|
|
293
|
+
* - To run the execution only when a specific attribute is altered(created/updated/deleted)
|
|
294
|
+
* ```
|
|
295
|
+
* Only starts the automation when a price is altered on a contract
|
|
296
|
+
* {
|
|
297
|
+
* "type": "filter_entity_event",
|
|
298
|
+
* "configuration": {
|
|
299
|
+
* "operation": {
|
|
300
|
+
* "payload": {
|
|
301
|
+
* "_schema": ["contract"]
|
|
302
|
+
* },
|
|
303
|
+
* "diff": {
|
|
304
|
+
* // Whether he first_name has been added, updated, or removed
|
|
305
|
+
* $or: [
|
|
306
|
+
* {
|
|
307
|
+
* 'added.first_name': [{ exists: true }]
|
|
308
|
+
* },
|
|
309
|
+
* {
|
|
310
|
+
* 'updated.first_name': [{ exists: true }]
|
|
311
|
+
* },
|
|
312
|
+
* {
|
|
313
|
+
* 'deleted.first_name': [{ exists: true }]
|
|
314
|
+
* }
|
|
315
|
+
* ]
|
|
316
|
+
* }
|
|
317
|
+
* }
|
|
318
|
+
* }
|
|
319
|
+
* }
|
|
320
|
+
* ```
|
|
321
|
+
* - To run the execution if an attribute is changed from one state to another
|
|
322
|
+
* ```
|
|
323
|
+
* Only starts the automation when the order status changes from `open_for_acceptance` to `placed`
|
|
324
|
+
* {
|
|
325
|
+
* "type": "filter_entity_event",
|
|
326
|
+
* "configuration": {
|
|
327
|
+
* "operation": {
|
|
328
|
+
* "operation": ["updateEntity"],
|
|
329
|
+
* "payload": {
|
|
330
|
+
* "_schema": ["order"],
|
|
331
|
+
* "status": ["placed"]
|
|
332
|
+
* },
|
|
333
|
+
* "diff": {
|
|
334
|
+
* "updated": {
|
|
335
|
+
* "status": ["open_for_acceptance"]
|
|
336
|
+
* }
|
|
337
|
+
* }
|
|
338
|
+
* }
|
|
339
|
+
* }
|
|
340
|
+
* }
|
|
341
|
+
* ```
|
|
342
|
+
*
|
|
343
|
+
*/
|
|
344
|
+
EntityOperationTrigger | ActivityTrigger | EntityManualTrigger | ReceivedEmailTrigger;
|
|
345
|
+
export interface AnythingButCondition {
|
|
346
|
+
"anything-but"?: string[];
|
|
347
|
+
}
|
|
230
348
|
export interface ApiCallerContext {
|
|
231
349
|
[name: string]: any;
|
|
232
350
|
EpilotAuth?: {
|
|
@@ -737,6 +855,9 @@ declare namespace Components {
|
|
|
737
855
|
template_id?: string;
|
|
738
856
|
filename?: string;
|
|
739
857
|
}
|
|
858
|
+
export type DiffAdded = FilterConditionOnEvent;
|
|
859
|
+
export type DiffDeleted = FilterConditionOnEvent;
|
|
860
|
+
export type DiffUpdated = FilterConditionOnEvent;
|
|
740
861
|
/**
|
|
741
862
|
* example:
|
|
742
863
|
* e3d3ebac-baab-4395-abf4-50b5bf1f8b74
|
|
@@ -768,6 +889,121 @@ declare namespace Components {
|
|
|
768
889
|
};
|
|
769
890
|
}
|
|
770
891
|
export type EntityOperation = "createEntity" | "updateEntity" | "deleteEntity";
|
|
892
|
+
/**
|
|
893
|
+
* - If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.
|
|
894
|
+
* - The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`
|
|
895
|
+
* | Comparison | Example | Rule syntax |
|
|
896
|
+
* |------------------------|-----------------------------------------------------|----------------------------------------------------------|
|
|
897
|
+
* | Null | first_name is null | `"first_name": [ null ]` |
|
|
898
|
+
* | Empty | last_name is empty | `"last_name": [""]` |
|
|
899
|
+
* | Equals | email is "j.doe@email.com" | `"email": [ "j.doe@email.com" ]` |
|
|
900
|
+
* | Equals (ignore case) | first_name is "John" | `"first_name": [ { "equals-ignore-case": "john" } ]` |
|
|
901
|
+
* | And | fist_name is "John" and last_name is "Doe" | `"first_name": [ "John" ], "last_name": ["Doe"]` |
|
|
902
|
+
* | Or | PaymentType is "Invoice" or "SEPA" | `"PaymentType": [ "invoice", "sepa"]` |
|
|
903
|
+
* | Or (multiple fields) | first_name is "John", or last_name is "Doe". | `"$or": [ { "first_name": [ "John" ] }, { "last_name": [ "Doe" ] } ]` |
|
|
904
|
+
* | Not | status is anything but "cancelled" | `"status": [ { "anything-but": [ "cancelled" ] } ]` |
|
|
905
|
+
* | Numeric (equals) | Price is 100 | `"Price": [ { "numeric": [ "=", 100 ] } ]` |
|
|
906
|
+
* | Numeric (range) | Price is more than 10, and less than or equal to 20 | `"Price": [ { "numeric": [ ">", 10, "<=", 20 ] } ]` |
|
|
907
|
+
* | Exists | ProductName exists | `"ProductName": [ { "exists": true } ]` |
|
|
908
|
+
* | Does not exist | ProductName does not exist | `"ProductName": [ { "exists": false } ]` |
|
|
909
|
+
* | Begins with | OpportunityNumber starts with OPP- | `"opportunity_number": [ { "prefix": "OPP-" } ]` |
|
|
910
|
+
* | Ends with | FileName ends with a .png extension | `"filename": [ { "suffix": ".png" } ]` |
|
|
911
|
+
* - To run the execution on all update events
|
|
912
|
+
* ```
|
|
913
|
+
* {
|
|
914
|
+
* "type": "filter_entity_event",
|
|
915
|
+
* "configuration": {
|
|
916
|
+
* "operation": {
|
|
917
|
+
* "operation": ["updateEntity"]
|
|
918
|
+
* }
|
|
919
|
+
* }
|
|
920
|
+
* }
|
|
921
|
+
* ```
|
|
922
|
+
* - To run the execution only when the updates are from a portal user
|
|
923
|
+
* ```
|
|
924
|
+
* {
|
|
925
|
+
* "type": "filter_entity_event",
|
|
926
|
+
* "configuration": {
|
|
927
|
+
* "operation": {
|
|
928
|
+
* "operation": ["updateEntity"]
|
|
929
|
+
* },
|
|
930
|
+
* "activity": {
|
|
931
|
+
* "type": "EntityUpdatedFromPortal"
|
|
932
|
+
* }
|
|
933
|
+
* }
|
|
934
|
+
* }
|
|
935
|
+
* ```
|
|
936
|
+
* - To run the execution only when there is an update on a specific attribute
|
|
937
|
+
* ```
|
|
938
|
+
* Only starts the automation when the email on a contact is changed
|
|
939
|
+
* {
|
|
940
|
+
* "type": "filter_entity_event",
|
|
941
|
+
* "configuration": {
|
|
942
|
+
* "operation": {
|
|
943
|
+
* "operation": ["updateEntity"],
|
|
944
|
+
* "payload": {
|
|
945
|
+
* "_schema": ["contact"]
|
|
946
|
+
* },
|
|
947
|
+
* "diff": {
|
|
948
|
+
* "updated": {
|
|
949
|
+
* "email": [{ "exists": true }]
|
|
950
|
+
* }
|
|
951
|
+
* }
|
|
952
|
+
* }
|
|
953
|
+
* }
|
|
954
|
+
* }
|
|
955
|
+
* ```
|
|
956
|
+
* - To run the execution only when a specific attribute is altered(created/updated/deleted)
|
|
957
|
+
* ```
|
|
958
|
+
* Only starts the automation when a price is altered on a contract
|
|
959
|
+
* {
|
|
960
|
+
* "type": "filter_entity_event",
|
|
961
|
+
* "configuration": {
|
|
962
|
+
* "operation": {
|
|
963
|
+
* "payload": {
|
|
964
|
+
* "_schema": ["contract"]
|
|
965
|
+
* },
|
|
966
|
+
* "diff": {
|
|
967
|
+
* // Whether he first_name has been added, updated, or removed
|
|
968
|
+
* $or: [
|
|
969
|
+
* {
|
|
970
|
+
* 'added.first_name': [{ exists: true }]
|
|
971
|
+
* },
|
|
972
|
+
* {
|
|
973
|
+
* 'updated.first_name': [{ exists: true }]
|
|
974
|
+
* },
|
|
975
|
+
* {
|
|
976
|
+
* 'deleted.first_name': [{ exists: true }]
|
|
977
|
+
* }
|
|
978
|
+
* ]
|
|
979
|
+
* }
|
|
980
|
+
* }
|
|
981
|
+
* }
|
|
982
|
+
* }
|
|
983
|
+
* ```
|
|
984
|
+
* - To run the execution if an attribute is changed from one state to another
|
|
985
|
+
* ```
|
|
986
|
+
* Only starts the automation when the order status changes from `open_for_acceptance` to `placed`
|
|
987
|
+
* {
|
|
988
|
+
* "type": "filter_entity_event",
|
|
989
|
+
* "configuration": {
|
|
990
|
+
* "operation": {
|
|
991
|
+
* "operation": ["updateEntity"],
|
|
992
|
+
* "payload": {
|
|
993
|
+
* "_schema": ["order"],
|
|
994
|
+
* "status": ["placed"]
|
|
995
|
+
* },
|
|
996
|
+
* "diff": {
|
|
997
|
+
* "updated": {
|
|
998
|
+
* "status": ["open_for_acceptance"]
|
|
999
|
+
* }
|
|
1000
|
+
* }
|
|
1001
|
+
* }
|
|
1002
|
+
* }
|
|
1003
|
+
* }
|
|
1004
|
+
* ```
|
|
1005
|
+
*
|
|
1006
|
+
*/
|
|
771
1007
|
export interface EntityOperationTrigger {
|
|
772
1008
|
type: "entity_operation";
|
|
773
1009
|
configuration: {
|
|
@@ -775,21 +1011,83 @@ declare namespace Components {
|
|
|
775
1011
|
* example:
|
|
776
1012
|
* submission
|
|
777
1013
|
*/
|
|
778
|
-
schema
|
|
779
|
-
operations
|
|
1014
|
+
schema?: string;
|
|
1015
|
+
operations?: [
|
|
780
1016
|
EntityOperation,
|
|
781
1017
|
...EntityOperation[]
|
|
782
1018
|
];
|
|
783
1019
|
include_activities?: string[];
|
|
784
1020
|
exclude_activities?: string[];
|
|
1021
|
+
filter_config?: {
|
|
1022
|
+
operation?: {
|
|
1023
|
+
/**
|
|
1024
|
+
* Filter on operation type. If not specified, all operations will be matched on execution.
|
|
1025
|
+
* Example:
|
|
1026
|
+
* 1. Filter all the createEntity/updateEntity operations
|
|
1027
|
+
* ```
|
|
1028
|
+
* {
|
|
1029
|
+
* "operation":{
|
|
1030
|
+
* "operation": ["createEntity", "updateEntity"]
|
|
1031
|
+
* }
|
|
1032
|
+
* }
|
|
1033
|
+
* ```
|
|
1034
|
+
*
|
|
1035
|
+
*/
|
|
1036
|
+
operation?: EntityOperation[];
|
|
1037
|
+
payload?: FilterConditionOnEvent;
|
|
1038
|
+
diff?: OrConditionForDiff | {
|
|
1039
|
+
added?: FilterConditionOnEvent;
|
|
1040
|
+
updated?: FilterConditionOnEvent;
|
|
1041
|
+
deleted?: FilterConditionOnEvent;
|
|
1042
|
+
};
|
|
1043
|
+
};
|
|
1044
|
+
activity?: {
|
|
1045
|
+
/**
|
|
1046
|
+
* Filter on activity type. If not specified, all activities will be matched on execution.
|
|
1047
|
+
* Example:
|
|
1048
|
+
* 1. Filter the events when an entity is updated from portal
|
|
1049
|
+
* ```
|
|
1050
|
+
* {
|
|
1051
|
+
* "activity":{
|
|
1052
|
+
* "type": ["EntityUpdatedFromPortal"]
|
|
1053
|
+
* }
|
|
1054
|
+
* }
|
|
1055
|
+
* ```
|
|
1056
|
+
* 2. Filter the events when either a doc is uploaded/removed on an entity from a portal
|
|
1057
|
+
* ```
|
|
1058
|
+
* {
|
|
1059
|
+
* "activity":{
|
|
1060
|
+
* "type": ["DocUploadedFromPortal", "DocRemovedFromPortal"]
|
|
1061
|
+
* }
|
|
1062
|
+
* }
|
|
1063
|
+
* ```
|
|
1064
|
+
*
|
|
1065
|
+
* example:
|
|
1066
|
+
* [
|
|
1067
|
+
* "EntityUpdatedFromPortal",
|
|
1068
|
+
* "EntityUpdatedFromPortal"
|
|
1069
|
+
* ]
|
|
1070
|
+
*/
|
|
1071
|
+
type?: string[];
|
|
1072
|
+
};
|
|
1073
|
+
};
|
|
785
1074
|
};
|
|
786
1075
|
}
|
|
1076
|
+
export interface EqualsIgnoreCaseCondition {
|
|
1077
|
+
"equals-ignore-case"?: string;
|
|
1078
|
+
}
|
|
787
1079
|
export type ErrorCode = "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR";
|
|
788
1080
|
export interface ErrorOutput {
|
|
789
1081
|
error_code: ErrorCode;
|
|
790
1082
|
error_reason: string;
|
|
791
1083
|
}
|
|
792
1084
|
export type ExecutionStatus = "pending" | "in_progress" | "success" | "failed" | "cancelled";
|
|
1085
|
+
export interface ExistsCondition {
|
|
1086
|
+
exists?: boolean;
|
|
1087
|
+
}
|
|
1088
|
+
export type FilterConditionOnEvent = OrCondition | {
|
|
1089
|
+
[name: string]: (string | EqualsIgnoreCaseCondition | AnythingButCondition | NumericCondition | ExistsCondition | PrefixCondition | SuffixCondition)[];
|
|
1090
|
+
};
|
|
793
1091
|
export interface FrontendSubmitTrigger {
|
|
794
1092
|
type: "frontend_submission";
|
|
795
1093
|
configuration: {
|
|
@@ -1069,6 +1367,9 @@ declare namespace Components {
|
|
|
1069
1367
|
*/
|
|
1070
1368
|
version?: number;
|
|
1071
1369
|
}
|
|
1370
|
+
export interface NumericCondition {
|
|
1371
|
+
numeric?: (string | number)[];
|
|
1372
|
+
}
|
|
1072
1373
|
/**
|
|
1073
1374
|
* Mapping operation nodes are either primitive values or operation node objects
|
|
1074
1375
|
*/
|
|
@@ -1091,11 +1392,20 @@ declare namespace Components {
|
|
|
1091
1392
|
*/
|
|
1092
1393
|
_copy?: string;
|
|
1093
1394
|
}
|
|
1395
|
+
export interface OrCondition {
|
|
1396
|
+
$or?: FilterConditionOnEvent[];
|
|
1397
|
+
}
|
|
1398
|
+
export interface OrConditionForDiff {
|
|
1399
|
+
$or?: (FilterConditionOnEvent | FilterConditionOnEvent | FilterConditionOnEvent)[];
|
|
1400
|
+
}
|
|
1094
1401
|
/**
|
|
1095
1402
|
* example:
|
|
1096
1403
|
* e3d3ebac-baab-4395-abf4-50b5bf1f8b74
|
|
1097
1404
|
*/
|
|
1098
1405
|
export type OrganizationId = string;
|
|
1406
|
+
export interface PrefixCondition {
|
|
1407
|
+
prefix?: string;
|
|
1408
|
+
}
|
|
1099
1409
|
export type PrimitiveJSONValue = any;
|
|
1100
1410
|
export interface ReceivedEmailTrigger {
|
|
1101
1411
|
type: "received_email";
|
|
@@ -1312,6 +1622,9 @@ declare namespace Components {
|
|
|
1312
1622
|
*/
|
|
1313
1623
|
AutomationFlowId;
|
|
1314
1624
|
}
|
|
1625
|
+
export interface SuffixCondition {
|
|
1626
|
+
suffix?: string;
|
|
1627
|
+
}
|
|
1315
1628
|
/**
|
|
1316
1629
|
* example:
|
|
1317
1630
|
* {
|
package/dist/openapi.json
CHANGED
|
@@ -2092,18 +2092,74 @@
|
|
|
2092
2092
|
"SyncEntity"
|
|
2093
2093
|
]
|
|
2094
2094
|
}
|
|
2095
|
+
},
|
|
2096
|
+
"filter_config": {
|
|
2097
|
+
"type": "object",
|
|
2098
|
+
"properties": {
|
|
2099
|
+
"operation": {
|
|
2100
|
+
"type": "object",
|
|
2101
|
+
"properties": {
|
|
2102
|
+
"operation": {
|
|
2103
|
+
"type": "array",
|
|
2104
|
+
"description": "Filter on operation type. If not specified, all operations will be matched on execution.\nExample:\n 1. Filter all the createEntity/updateEntity operations \n ```\n { \n \"operation\":{\n \"operation\": [\"createEntity\", \"updateEntity\"]\n }\n }\n ```\n",
|
|
2105
|
+
"items": {
|
|
2106
|
+
"$ref": "#/components/schemas/EntityOperation"
|
|
2107
|
+
}
|
|
2108
|
+
},
|
|
2109
|
+
"payload": {
|
|
2110
|
+
"$ref": "#/components/schemas/FilterConditionOnEvent"
|
|
2111
|
+
},
|
|
2112
|
+
"diff": {
|
|
2113
|
+
"anyOf": [
|
|
2114
|
+
{
|
|
2115
|
+
"$ref": "#/components/schemas/OrConditionForDiff"
|
|
2116
|
+
},
|
|
2117
|
+
{
|
|
2118
|
+
"type": "object",
|
|
2119
|
+
"description": "Diff to it's prior state when an entity is updated",
|
|
2120
|
+
"properties": {
|
|
2121
|
+
"added": {
|
|
2122
|
+
"$ref": "#/components/schemas/DiffAdded"
|
|
2123
|
+
},
|
|
2124
|
+
"updated": {
|
|
2125
|
+
"$ref": "#/components/schemas/DiffUpdated"
|
|
2126
|
+
},
|
|
2127
|
+
"deleted": {
|
|
2128
|
+
"$ref": "#/components/schemas/DiffDeleted"
|
|
2129
|
+
}
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
]
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
},
|
|
2136
|
+
"activity": {
|
|
2137
|
+
"type": "object",
|
|
2138
|
+
"properties": {
|
|
2139
|
+
"type": {
|
|
2140
|
+
"type": "array",
|
|
2141
|
+
"items": {
|
|
2142
|
+
"type": "string",
|
|
2143
|
+
"example": "EntityUpdatedFromPortal"
|
|
2144
|
+
},
|
|
2145
|
+
"example": [
|
|
2146
|
+
"EntityUpdatedFromPortal",
|
|
2147
|
+
"EntityUpdatedFromPortal"
|
|
2148
|
+
],
|
|
2149
|
+
"description": "Filter on activity type. If not specified, all activities will be matched on execution.\nExample:\n 1. Filter the events when an entity is updated from portal\n ```\n { \n \"activity\":{\n \"type\": [\"EntityUpdatedFromPortal\"]\n }\n }\n ```\n 2. Filter the events when either a doc is uploaded/removed on an entity from a portal\n ```\n { \n \"activity\":{\n \"type\": [\"DocUploadedFromPortal\", \"DocRemovedFromPortal\"]\n }\n }\n ```\n"
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
}
|
|
2095
2154
|
}
|
|
2096
|
-
}
|
|
2097
|
-
"required": [
|
|
2098
|
-
"schema",
|
|
2099
|
-
"operations"
|
|
2100
|
-
]
|
|
2155
|
+
}
|
|
2101
2156
|
}
|
|
2102
2157
|
},
|
|
2103
2158
|
"required": [
|
|
2104
2159
|
"type",
|
|
2105
2160
|
"configuration"
|
|
2106
|
-
]
|
|
2161
|
+
],
|
|
2162
|
+
"description": "- If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.\n- The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`\n | Comparison | Example | Rule syntax |\n |------------------------|-----------------------------------------------------|----------------------------------------------------------|\n | Null | first_name is null | `\"first_name\": [ null ]` |\n | Empty | last_name is empty | `\"last_name\": [\"\"]` |\n | Equals | email is \"j.doe@email.com\" | `\"email\": [ \"j.doe@email.com\" ]` |\n | Equals (ignore case) | first_name is \"John\" | `\"first_name\": [ { \"equals-ignore-case\": \"john\" } ]` |\n | And | fist_name is \"John\" and last_name is \"Doe\" | `\"first_name\": [ \"John\" ], \"last_name\": [\"Doe\"]` |\n | Or | PaymentType is \"Invoice\" or \"SEPA\" | `\"PaymentType\": [ \"invoice\", \"sepa\"]` |\n | Or (multiple fields) | first_name is \"John\", or last_name is \"Doe\". | `\"$or\": [ { \"first_name\": [ \"John\" ] }, { \"last_name\": [ \"Doe\" ] } ]` |\n | Not | status is anything but \"cancelled\" | `\"status\": [ { \"anything-but\": [ \"cancelled\" ] } ]` |\n | Numeric (equals) | Price is 100 | `\"Price\": [ { \"numeric\": [ \"=\", 100 ] } ]` |\n | Numeric (range) | Price is more than 10, and less than or equal to 20 | `\"Price\": [ { \"numeric\": [ \">\", 10, \"<=\", 20 ] } ]` |\n | Exists | ProductName exists | `\"ProductName\": [ { \"exists\": true } ]` |\n | Does not exist | ProductName does not exist | `\"ProductName\": [ { \"exists\": false } ]` |\n | Begins with | OpportunityNumber starts with OPP- | `\"opportunity_number\": [ { \"prefix\": \"OPP-\" } ]` |\n | Ends with | FileName ends with a .png extension | `\"filename\": [ { \"suffix\": \".png\" } ]` |\n - To run the execution on all update events\n ```\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"]\n }\n }\n }\n ```\n - To run the execution only when the updates are from a portal user\n ```\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"]\n },\n \"activity\": {\n \"type\": \"EntityUpdatedFromPortal\"\n }\n }\n }\n ```\n - To run the execution only when there is an update on a specific attribute\n ```\n Only starts the automation when the email on a contact is changed\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"],\n \"payload\": {\n \"_schema\": [\"contact\"]\n },\n \"diff\": {\n \"updated\": {\n \"email\": [{ \"exists\": true }]\n }\n }\n }\n }\n }\n ```\n - To run the execution only when a specific attribute is altered(created/updated/deleted)\n ```\n Only starts the automation when a price is altered on a contract\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"payload\": {\n \"_schema\": [\"contract\"]\n },\n \"diff\": {\n // Whether he first_name has been added, updated, or removed\n $or: [\n {\n 'added.first_name': [{ exists: true }]\n },\n {\n 'updated.first_name': [{ exists: true }]\n },\n {\n 'deleted.first_name': [{ exists: true }]\n }\n ]\n }\n }\n }\n }\n ```\n - To run the execution if an attribute is changed from one state to another\n ```\n Only starts the automation when the order status changes from `open_for_acceptance` to `placed`\n {\n \"type\": \"filter_entity_event\",\n \"configuration\": {\n \"operation\": {\n \"operation\": [\"updateEntity\"],\n \"payload\": {\n \"_schema\": [\"order\"],\n \"status\": [\"placed\"]\n },\n \"diff\": {\n \"updated\": {\n \"status\": [\"open_for_acceptance\"]\n }\n }\n }\n }\n }\n ```\n"
|
|
2107
2163
|
},
|
|
2108
2164
|
"ActivityTrigger": {
|
|
2109
2165
|
"type": "object",
|
|
@@ -2224,6 +2280,147 @@
|
|
|
2224
2280
|
"is_empty"
|
|
2225
2281
|
]
|
|
2226
2282
|
},
|
|
2283
|
+
"FilterConditionOnEvent": {
|
|
2284
|
+
"anyOf": [
|
|
2285
|
+
{
|
|
2286
|
+
"$ref": "#/components/schemas/OrCondition"
|
|
2287
|
+
},
|
|
2288
|
+
{
|
|
2289
|
+
"type": "object",
|
|
2290
|
+
"description": "- Filter on entity payload that is modified. If not specified, entire entity be matched on execution.\n Example:\n ```\n {\n \"operation\": {\n \"payload\": {\n \"_schema\": [\"contact\"]\n \"address\": { \n \"country\": [\"Germany\"] \n }\n age: [ { \"numeric\": [ \">\", 25, \"<=\", 35 ] } ]\n }\n }\n }\n",
|
|
2291
|
+
"additionalProperties": {
|
|
2292
|
+
"type": "array",
|
|
2293
|
+
"items": {
|
|
2294
|
+
"oneOf": [
|
|
2295
|
+
{
|
|
2296
|
+
"type": "string"
|
|
2297
|
+
},
|
|
2298
|
+
{
|
|
2299
|
+
"$ref": "#/components/schemas/EqualsIgnoreCaseCondition"
|
|
2300
|
+
},
|
|
2301
|
+
{
|
|
2302
|
+
"$ref": "#/components/schemas/AnythingButCondition"
|
|
2303
|
+
},
|
|
2304
|
+
{
|
|
2305
|
+
"$ref": "#/components/schemas/NumericCondition"
|
|
2306
|
+
},
|
|
2307
|
+
{
|
|
2308
|
+
"$ref": "#/components/schemas/ExistsCondition"
|
|
2309
|
+
},
|
|
2310
|
+
{
|
|
2311
|
+
"$ref": "#/components/schemas/PrefixCondition"
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
"$ref": "#/components/schemas/SuffixCondition"
|
|
2315
|
+
}
|
|
2316
|
+
]
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2320
|
+
]
|
|
2321
|
+
},
|
|
2322
|
+
"EqualsIgnoreCaseCondition": {
|
|
2323
|
+
"type": "object",
|
|
2324
|
+
"properties": {
|
|
2325
|
+
"equals-ignore-case": {
|
|
2326
|
+
"type": "string"
|
|
2327
|
+
}
|
|
2328
|
+
}
|
|
2329
|
+
},
|
|
2330
|
+
"AnythingButCondition": {
|
|
2331
|
+
"type": "object",
|
|
2332
|
+
"properties": {
|
|
2333
|
+
"anything-but": {
|
|
2334
|
+
"type": "array",
|
|
2335
|
+
"items": {
|
|
2336
|
+
"type": "string"
|
|
2337
|
+
}
|
|
2338
|
+
}
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
2341
|
+
"NumericCondition": {
|
|
2342
|
+
"type": "object",
|
|
2343
|
+
"properties": {
|
|
2344
|
+
"numeric": {
|
|
2345
|
+
"type": "array",
|
|
2346
|
+
"items": {
|
|
2347
|
+
"oneOf": [
|
|
2348
|
+
{
|
|
2349
|
+
"type": "string"
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"type": "integer"
|
|
2353
|
+
}
|
|
2354
|
+
]
|
|
2355
|
+
}
|
|
2356
|
+
}
|
|
2357
|
+
}
|
|
2358
|
+
},
|
|
2359
|
+
"ExistsCondition": {
|
|
2360
|
+
"type": "object",
|
|
2361
|
+
"properties": {
|
|
2362
|
+
"exists": {
|
|
2363
|
+
"type": "boolean"
|
|
2364
|
+
}
|
|
2365
|
+
}
|
|
2366
|
+
},
|
|
2367
|
+
"PrefixCondition": {
|
|
2368
|
+
"type": "object",
|
|
2369
|
+
"properties": {
|
|
2370
|
+
"prefix": {
|
|
2371
|
+
"type": "string"
|
|
2372
|
+
}
|
|
2373
|
+
}
|
|
2374
|
+
},
|
|
2375
|
+
"SuffixCondition": {
|
|
2376
|
+
"type": "object",
|
|
2377
|
+
"properties": {
|
|
2378
|
+
"suffix": {
|
|
2379
|
+
"type": "string"
|
|
2380
|
+
}
|
|
2381
|
+
}
|
|
2382
|
+
},
|
|
2383
|
+
"OrCondition": {
|
|
2384
|
+
"type": "object",
|
|
2385
|
+
"properties": {
|
|
2386
|
+
"$or": {
|
|
2387
|
+
"type": "array",
|
|
2388
|
+
"items": {
|
|
2389
|
+
"$ref": "#/components/schemas/FilterConditionOnEvent"
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2393
|
+
},
|
|
2394
|
+
"DiffAdded": {
|
|
2395
|
+
"$ref": "#/components/schemas/FilterConditionOnEvent"
|
|
2396
|
+
},
|
|
2397
|
+
"DiffUpdated": {
|
|
2398
|
+
"$ref": "#/components/schemas/FilterConditionOnEvent"
|
|
2399
|
+
},
|
|
2400
|
+
"DiffDeleted": {
|
|
2401
|
+
"$ref": "#/components/schemas/FilterConditionOnEvent"
|
|
2402
|
+
},
|
|
2403
|
+
"OrConditionForDiff": {
|
|
2404
|
+
"type": "object",
|
|
2405
|
+
"properties": {
|
|
2406
|
+
"$or": {
|
|
2407
|
+
"type": "array",
|
|
2408
|
+
"items": {
|
|
2409
|
+
"anyOf": [
|
|
2410
|
+
{
|
|
2411
|
+
"$ref": "#/components/schemas/DiffAdded"
|
|
2412
|
+
},
|
|
2413
|
+
{
|
|
2414
|
+
"$ref": "#/components/schemas/DiffUpdated"
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
"$ref": "#/components/schemas/DiffDeleted"
|
|
2418
|
+
}
|
|
2419
|
+
]
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
}
|
|
2423
|
+
},
|
|
2227
2424
|
"EntityItemSnapshot": {
|
|
2228
2425
|
"type": "object",
|
|
2229
2426
|
"properties": {
|
|
@@ -2275,9 +2472,6 @@
|
|
|
2275
2472
|
}
|
|
2276
2473
|
},
|
|
2277
2474
|
"servers": [
|
|
2278
|
-
{
|
|
2279
|
-
"url": "https://automation.sls.epilot.io"
|
|
2280
|
-
},
|
|
2281
2475
|
{
|
|
2282
2476
|
"url": "https://automation.sls.epilot.io"
|
|
2283
2477
|
}
|