@automate.ax/catalog 0.95.4 → 0.96.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/catalog.d.ts CHANGED
@@ -666,6 +666,14 @@ export declare const scrapflyService: {
666
666
  }];
667
667
  };
668
668
  export declare const slackService: {
669
+ readonly connectionNotice: {
670
+ readonly action: {
671
+ readonly href: "https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/#automation-platform-apps";
672
+ readonly label: "Review Slack requirements";
673
+ };
674
+ readonly description: "Slack requires automation-platform apps to connect only to paid workspaces. Free workspace authorizations are rejected and revoked.";
675
+ readonly title: "Paid Slack workspace required";
676
+ };
669
677
  readonly connectionMethods: readonly [{
670
678
  readonly id: "oauth";
671
679
  readonly name: "OAuth";
@@ -1450,6 +1458,14 @@ export declare const integrationCatalog: readonly [{
1450
1458
  readonly credentialUrl?: string | undefined;
1451
1459
  }];
1452
1460
  }, {
1461
+ readonly connectionNotice: {
1462
+ readonly action: {
1463
+ readonly href: "https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/#automation-platform-apps";
1464
+ readonly label: "Review Slack requirements";
1465
+ };
1466
+ readonly description: "Slack requires automation-platform apps to connect only to paid workspaces. Free workspace authorizations are rejected and revoked.";
1467
+ readonly title: "Paid Slack workspace required";
1468
+ };
1453
1469
  readonly connectionMethods: readonly [{
1454
1470
  readonly id: "oauth";
1455
1471
  readonly name: "OAuth";
package/dist/catalog.js CHANGED
@@ -412,6 +412,14 @@ export const scrapflyService = defineApiKeyService({
412
412
  placeholder: "scp-live-...",
413
413
  });
414
414
  export const slackService = defineIntegrationService({
415
+ connectionNotice: {
416
+ action: {
417
+ href: "https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/#automation-platform-apps",
418
+ label: "Review Slack requirements",
419
+ },
420
+ description: "Slack requires automation-platform apps to connect only to paid workspaces. Free workspace authorizations are rejected and revoked.",
421
+ title: "Paid Slack workspace required",
422
+ },
415
423
  connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
416
424
  description: "Install the Automate.ax bot in a Slack workspace.",
417
425
  id: "slack",
@@ -971,6 +971,138 @@ export declare const triggerDefinitions: {
971
971
  };
972
972
  readonly type: "slack.message.posted";
973
973
  };
974
+ readonly slackChannelCreated: {
975
+ readonly account: {
976
+ readonly connectionOptions: readonly [{
977
+ readonly requiredScopes: readonly string[];
978
+ }];
979
+ readonly serviceId: "slack";
980
+ };
981
+ readonly type: "slack.channel.created";
982
+ };
983
+ readonly slackChannelMemberJoined: {
984
+ readonly account: {
985
+ readonly connectionOptions: readonly [{
986
+ readonly requiredScopes: readonly string[];
987
+ }];
988
+ readonly serviceId: "slack";
989
+ };
990
+ readonly type: "slack.channel.member.joined";
991
+ };
992
+ readonly slackChannelMemberLeft: {
993
+ readonly account: {
994
+ readonly connectionOptions: readonly [{
995
+ readonly requiredScopes: readonly string[];
996
+ }];
997
+ readonly serviceId: "slack";
998
+ };
999
+ readonly type: "slack.channel.member.left";
1000
+ };
1001
+ readonly slackChannelRenamed: {
1002
+ readonly account: {
1003
+ readonly connectionOptions: readonly [{
1004
+ readonly requiredScopes: readonly string[];
1005
+ }];
1006
+ readonly serviceId: "slack";
1007
+ };
1008
+ readonly type: "slack.channel.renamed";
1009
+ };
1010
+ readonly slackChannelShared: {
1011
+ readonly account: {
1012
+ readonly connectionOptions: readonly [{
1013
+ readonly requiredScopes: readonly string[];
1014
+ }];
1015
+ readonly serviceId: "slack";
1016
+ };
1017
+ readonly type: "slack.channel.shared";
1018
+ };
1019
+ readonly slackChannelUnshared: {
1020
+ readonly account: {
1021
+ readonly connectionOptions: readonly [{
1022
+ readonly requiredScopes: readonly string[];
1023
+ }];
1024
+ readonly serviceId: "slack";
1025
+ };
1026
+ readonly type: "slack.channel.unshared";
1027
+ };
1028
+ readonly slackEvent: {
1029
+ readonly account: {
1030
+ readonly connectionOptions: readonly [{
1031
+ readonly requiredScopes: readonly string[];
1032
+ }];
1033
+ readonly serviceId: "slack";
1034
+ };
1035
+ readonly type: "slack.event.received";
1036
+ };
1037
+ readonly slackFileCreated: {
1038
+ readonly account: {
1039
+ readonly connectionOptions: readonly [{
1040
+ readonly requiredScopes: readonly string[];
1041
+ }];
1042
+ readonly serviceId: "slack";
1043
+ };
1044
+ readonly type: "slack.file.created";
1045
+ };
1046
+ readonly slackFileDeleted: {
1047
+ readonly account: {
1048
+ readonly connectionOptions: readonly [{
1049
+ readonly requiredScopes: readonly string[];
1050
+ }];
1051
+ readonly serviceId: "slack";
1052
+ };
1053
+ readonly type: "slack.file.deleted";
1054
+ };
1055
+ readonly slackFileShared: {
1056
+ readonly account: {
1057
+ readonly connectionOptions: readonly [{
1058
+ readonly requiredScopes: readonly string[];
1059
+ }];
1060
+ readonly serviceId: "slack";
1061
+ };
1062
+ readonly type: "slack.file.shared";
1063
+ };
1064
+ readonly slackMessageChanged: {
1065
+ readonly account: {
1066
+ readonly connectionOptions: readonly [{
1067
+ readonly requiredScopes: readonly [{
1068
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
1069
+ readonly type: "and";
1070
+ }];
1071
+ }];
1072
+ readonly serviceId: "slack";
1073
+ };
1074
+ readonly type: "slack.message.changed";
1075
+ };
1076
+ readonly slackMessageDeleted: {
1077
+ readonly account: {
1078
+ readonly connectionOptions: readonly [{
1079
+ readonly requiredScopes: readonly [{
1080
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
1081
+ readonly type: "and";
1082
+ }];
1083
+ }];
1084
+ readonly serviceId: "slack";
1085
+ };
1086
+ readonly type: "slack.message.deleted";
1087
+ };
1088
+ readonly slackPinAdded: {
1089
+ readonly account: {
1090
+ readonly connectionOptions: readonly [{
1091
+ readonly requiredScopes: readonly string[];
1092
+ }];
1093
+ readonly serviceId: "slack";
1094
+ };
1095
+ readonly type: "slack.pin.added";
1096
+ };
1097
+ readonly slackPinRemoved: {
1098
+ readonly account: {
1099
+ readonly connectionOptions: readonly [{
1100
+ readonly requiredScopes: readonly string[];
1101
+ }];
1102
+ readonly serviceId: "slack";
1103
+ };
1104
+ readonly type: "slack.pin.removed";
1105
+ };
974
1106
  readonly slackReactionAdded: {
975
1107
  readonly account: {
976
1108
  readonly connectionOptions: readonly [{
@@ -980,6 +1112,15 @@ export declare const triggerDefinitions: {
980
1112
  };
981
1113
  readonly type: "slack.reaction.added";
982
1114
  };
1115
+ readonly slackReactionEvent: {
1116
+ readonly account: {
1117
+ readonly connectionOptions: readonly [{
1118
+ readonly requiredScopes: readonly ["reactions:read"];
1119
+ }];
1120
+ readonly serviceId: "slack";
1121
+ };
1122
+ readonly type: "slack.reaction.event";
1123
+ };
983
1124
  readonly slackReactionRemoved: {
984
1125
  readonly account: {
985
1126
  readonly connectionOptions: readonly [{
@@ -989,6 +1130,36 @@ export declare const triggerDefinitions: {
989
1130
  };
990
1131
  readonly type: "slack.reaction.removed";
991
1132
  };
1133
+ readonly slackThreadReplyPosted: {
1134
+ readonly account: {
1135
+ readonly connectionOptions: readonly [{
1136
+ readonly requiredScopes: readonly [{
1137
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
1138
+ readonly type: "and";
1139
+ }];
1140
+ }];
1141
+ readonly serviceId: "slack";
1142
+ };
1143
+ readonly type: "slack.thread.reply.posted";
1144
+ };
1145
+ readonly slackWorkspaceMemberChanged: {
1146
+ readonly account: {
1147
+ readonly connectionOptions: readonly [{
1148
+ readonly requiredScopes: readonly string[];
1149
+ }];
1150
+ readonly serviceId: "slack";
1151
+ };
1152
+ readonly type: "slack.workspace.member.changed";
1153
+ };
1154
+ readonly slackWorkspaceMemberJoined: {
1155
+ readonly account: {
1156
+ readonly connectionOptions: readonly [{
1157
+ readonly requiredScopes: readonly string[];
1158
+ }];
1159
+ readonly serviceId: "slack";
1160
+ };
1161
+ readonly type: "slack.workspace.member.joined";
1162
+ };
992
1163
  readonly resendEmailBounced: {
993
1164
  readonly account: {
994
1165
  readonly connectionOptions: readonly [{
@@ -6869,6 +7040,138 @@ export declare const triggerCatalog: ({
6869
7040
  readonly serviceId: "slack";
6870
7041
  };
6871
7042
  type: "slack.message.posted";
7043
+ } | {
7044
+ name: string;
7045
+ account: {
7046
+ readonly connectionOptions: readonly [{
7047
+ readonly requiredScopes: readonly string[];
7048
+ }];
7049
+ readonly serviceId: "slack";
7050
+ };
7051
+ type: "slack.channel.created";
7052
+ } | {
7053
+ name: string;
7054
+ account: {
7055
+ readonly connectionOptions: readonly [{
7056
+ readonly requiredScopes: readonly string[];
7057
+ }];
7058
+ readonly serviceId: "slack";
7059
+ };
7060
+ type: "slack.channel.member.joined";
7061
+ } | {
7062
+ name: string;
7063
+ account: {
7064
+ readonly connectionOptions: readonly [{
7065
+ readonly requiredScopes: readonly string[];
7066
+ }];
7067
+ readonly serviceId: "slack";
7068
+ };
7069
+ type: "slack.channel.member.left";
7070
+ } | {
7071
+ name: string;
7072
+ account: {
7073
+ readonly connectionOptions: readonly [{
7074
+ readonly requiredScopes: readonly string[];
7075
+ }];
7076
+ readonly serviceId: "slack";
7077
+ };
7078
+ type: "slack.channel.renamed";
7079
+ } | {
7080
+ name: string;
7081
+ account: {
7082
+ readonly connectionOptions: readonly [{
7083
+ readonly requiredScopes: readonly string[];
7084
+ }];
7085
+ readonly serviceId: "slack";
7086
+ };
7087
+ type: "slack.channel.shared";
7088
+ } | {
7089
+ name: string;
7090
+ account: {
7091
+ readonly connectionOptions: readonly [{
7092
+ readonly requiredScopes: readonly string[];
7093
+ }];
7094
+ readonly serviceId: "slack";
7095
+ };
7096
+ type: "slack.channel.unshared";
7097
+ } | {
7098
+ name: string;
7099
+ account: {
7100
+ readonly connectionOptions: readonly [{
7101
+ readonly requiredScopes: readonly string[];
7102
+ }];
7103
+ readonly serviceId: "slack";
7104
+ };
7105
+ type: "slack.event.received";
7106
+ } | {
7107
+ name: string;
7108
+ account: {
7109
+ readonly connectionOptions: readonly [{
7110
+ readonly requiredScopes: readonly string[];
7111
+ }];
7112
+ readonly serviceId: "slack";
7113
+ };
7114
+ type: "slack.file.created";
7115
+ } | {
7116
+ name: string;
7117
+ account: {
7118
+ readonly connectionOptions: readonly [{
7119
+ readonly requiredScopes: readonly string[];
7120
+ }];
7121
+ readonly serviceId: "slack";
7122
+ };
7123
+ type: "slack.file.deleted";
7124
+ } | {
7125
+ name: string;
7126
+ account: {
7127
+ readonly connectionOptions: readonly [{
7128
+ readonly requiredScopes: readonly string[];
7129
+ }];
7130
+ readonly serviceId: "slack";
7131
+ };
7132
+ type: "slack.file.shared";
7133
+ } | {
7134
+ name: string;
7135
+ account: {
7136
+ readonly connectionOptions: readonly [{
7137
+ readonly requiredScopes: readonly [{
7138
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
7139
+ readonly type: "and";
7140
+ }];
7141
+ }];
7142
+ readonly serviceId: "slack";
7143
+ };
7144
+ type: "slack.message.changed";
7145
+ } | {
7146
+ name: string;
7147
+ account: {
7148
+ readonly connectionOptions: readonly [{
7149
+ readonly requiredScopes: readonly [{
7150
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
7151
+ readonly type: "and";
7152
+ }];
7153
+ }];
7154
+ readonly serviceId: "slack";
7155
+ };
7156
+ type: "slack.message.deleted";
7157
+ } | {
7158
+ name: string;
7159
+ account: {
7160
+ readonly connectionOptions: readonly [{
7161
+ readonly requiredScopes: readonly string[];
7162
+ }];
7163
+ readonly serviceId: "slack";
7164
+ };
7165
+ type: "slack.pin.added";
7166
+ } | {
7167
+ name: string;
7168
+ account: {
7169
+ readonly connectionOptions: readonly [{
7170
+ readonly requiredScopes: readonly string[];
7171
+ }];
7172
+ readonly serviceId: "slack";
7173
+ };
7174
+ type: "slack.pin.removed";
6872
7175
  } | {
6873
7176
  name: string;
6874
7177
  account: {
@@ -6878,6 +7181,15 @@ export declare const triggerCatalog: ({
6878
7181
  readonly serviceId: "slack";
6879
7182
  };
6880
7183
  type: "slack.reaction.added";
7184
+ } | {
7185
+ name: string;
7186
+ account: {
7187
+ readonly connectionOptions: readonly [{
7188
+ readonly requiredScopes: readonly ["reactions:read"];
7189
+ }];
7190
+ readonly serviceId: "slack";
7191
+ };
7192
+ type: "slack.reaction.event";
6881
7193
  } | {
6882
7194
  name: string;
6883
7195
  account: {
@@ -6887,6 +7199,36 @@ export declare const triggerCatalog: ({
6887
7199
  readonly serviceId: "slack";
6888
7200
  };
6889
7201
  type: "slack.reaction.removed";
7202
+ } | {
7203
+ name: string;
7204
+ account: {
7205
+ readonly connectionOptions: readonly [{
7206
+ readonly requiredScopes: readonly [{
7207
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
7208
+ readonly type: "and";
7209
+ }];
7210
+ }];
7211
+ readonly serviceId: "slack";
7212
+ };
7213
+ type: "slack.thread.reply.posted";
7214
+ } | {
7215
+ name: string;
7216
+ account: {
7217
+ readonly connectionOptions: readonly [{
7218
+ readonly requiredScopes: readonly string[];
7219
+ }];
7220
+ readonly serviceId: "slack";
7221
+ };
7222
+ type: "slack.workspace.member.changed";
7223
+ } | {
7224
+ name: string;
7225
+ account: {
7226
+ readonly connectionOptions: readonly [{
7227
+ readonly requiredScopes: readonly string[];
7228
+ }];
7229
+ readonly serviceId: "slack";
7230
+ };
7231
+ type: "slack.workspace.member.joined";
6890
7232
  } | {
6891
7233
  name: string;
6892
7234
  account: {
@@ -20,6 +20,138 @@ export declare const slackTriggerDefinitions: {
20
20
  };
21
21
  readonly type: "slack.message.posted";
22
22
  };
23
+ readonly slackChannelCreated: {
24
+ readonly account: {
25
+ readonly connectionOptions: readonly [{
26
+ readonly requiredScopes: readonly string[];
27
+ }];
28
+ readonly serviceId: "slack";
29
+ };
30
+ readonly type: "slack.channel.created";
31
+ };
32
+ readonly slackChannelMemberJoined: {
33
+ readonly account: {
34
+ readonly connectionOptions: readonly [{
35
+ readonly requiredScopes: readonly string[];
36
+ }];
37
+ readonly serviceId: "slack";
38
+ };
39
+ readonly type: "slack.channel.member.joined";
40
+ };
41
+ readonly slackChannelMemberLeft: {
42
+ readonly account: {
43
+ readonly connectionOptions: readonly [{
44
+ readonly requiredScopes: readonly string[];
45
+ }];
46
+ readonly serviceId: "slack";
47
+ };
48
+ readonly type: "slack.channel.member.left";
49
+ };
50
+ readonly slackChannelRenamed: {
51
+ readonly account: {
52
+ readonly connectionOptions: readonly [{
53
+ readonly requiredScopes: readonly string[];
54
+ }];
55
+ readonly serviceId: "slack";
56
+ };
57
+ readonly type: "slack.channel.renamed";
58
+ };
59
+ readonly slackChannelShared: {
60
+ readonly account: {
61
+ readonly connectionOptions: readonly [{
62
+ readonly requiredScopes: readonly string[];
63
+ }];
64
+ readonly serviceId: "slack";
65
+ };
66
+ readonly type: "slack.channel.shared";
67
+ };
68
+ readonly slackChannelUnshared: {
69
+ readonly account: {
70
+ readonly connectionOptions: readonly [{
71
+ readonly requiredScopes: readonly string[];
72
+ }];
73
+ readonly serviceId: "slack";
74
+ };
75
+ readonly type: "slack.channel.unshared";
76
+ };
77
+ readonly slackEvent: {
78
+ readonly account: {
79
+ readonly connectionOptions: readonly [{
80
+ readonly requiredScopes: readonly string[];
81
+ }];
82
+ readonly serviceId: "slack";
83
+ };
84
+ readonly type: "slack.event.received";
85
+ };
86
+ readonly slackFileCreated: {
87
+ readonly account: {
88
+ readonly connectionOptions: readonly [{
89
+ readonly requiredScopes: readonly string[];
90
+ }];
91
+ readonly serviceId: "slack";
92
+ };
93
+ readonly type: "slack.file.created";
94
+ };
95
+ readonly slackFileDeleted: {
96
+ readonly account: {
97
+ readonly connectionOptions: readonly [{
98
+ readonly requiredScopes: readonly string[];
99
+ }];
100
+ readonly serviceId: "slack";
101
+ };
102
+ readonly type: "slack.file.deleted";
103
+ };
104
+ readonly slackFileShared: {
105
+ readonly account: {
106
+ readonly connectionOptions: readonly [{
107
+ readonly requiredScopes: readonly string[];
108
+ }];
109
+ readonly serviceId: "slack";
110
+ };
111
+ readonly type: "slack.file.shared";
112
+ };
113
+ readonly slackMessageChanged: {
114
+ readonly account: {
115
+ readonly connectionOptions: readonly [{
116
+ readonly requiredScopes: readonly [{
117
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
118
+ readonly type: "and";
119
+ }];
120
+ }];
121
+ readonly serviceId: "slack";
122
+ };
123
+ readonly type: "slack.message.changed";
124
+ };
125
+ readonly slackMessageDeleted: {
126
+ readonly account: {
127
+ readonly connectionOptions: readonly [{
128
+ readonly requiredScopes: readonly [{
129
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
130
+ readonly type: "and";
131
+ }];
132
+ }];
133
+ readonly serviceId: "slack";
134
+ };
135
+ readonly type: "slack.message.deleted";
136
+ };
137
+ readonly slackPinAdded: {
138
+ readonly account: {
139
+ readonly connectionOptions: readonly [{
140
+ readonly requiredScopes: readonly string[];
141
+ }];
142
+ readonly serviceId: "slack";
143
+ };
144
+ readonly type: "slack.pin.added";
145
+ };
146
+ readonly slackPinRemoved: {
147
+ readonly account: {
148
+ readonly connectionOptions: readonly [{
149
+ readonly requiredScopes: readonly string[];
150
+ }];
151
+ readonly serviceId: "slack";
152
+ };
153
+ readonly type: "slack.pin.removed";
154
+ };
23
155
  readonly slackReactionAdded: {
24
156
  readonly account: {
25
157
  readonly connectionOptions: readonly [{
@@ -29,6 +161,15 @@ export declare const slackTriggerDefinitions: {
29
161
  };
30
162
  readonly type: "slack.reaction.added";
31
163
  };
164
+ readonly slackReactionEvent: {
165
+ readonly account: {
166
+ readonly connectionOptions: readonly [{
167
+ readonly requiredScopes: readonly ["reactions:read"];
168
+ }];
169
+ readonly serviceId: "slack";
170
+ };
171
+ readonly type: "slack.reaction.event";
172
+ };
32
173
  readonly slackReactionRemoved: {
33
174
  readonly account: {
34
175
  readonly connectionOptions: readonly [{
@@ -38,4 +179,34 @@ export declare const slackTriggerDefinitions: {
38
179
  };
39
180
  readonly type: "slack.reaction.removed";
40
181
  };
182
+ readonly slackThreadReplyPosted: {
183
+ readonly account: {
184
+ readonly connectionOptions: readonly [{
185
+ readonly requiredScopes: readonly [{
186
+ readonly requirements: readonly ["channels:history", "groups:history", "im:history", "mpim:history"];
187
+ readonly type: "and";
188
+ }];
189
+ }];
190
+ readonly serviceId: "slack";
191
+ };
192
+ readonly type: "slack.thread.reply.posted";
193
+ };
194
+ readonly slackWorkspaceMemberChanged: {
195
+ readonly account: {
196
+ readonly connectionOptions: readonly [{
197
+ readonly requiredScopes: readonly string[];
198
+ }];
199
+ readonly serviceId: "slack";
200
+ };
201
+ readonly type: "slack.workspace.member.changed";
202
+ };
203
+ readonly slackWorkspaceMemberJoined: {
204
+ readonly account: {
205
+ readonly connectionOptions: readonly [{
206
+ readonly requiredScopes: readonly string[];
207
+ }];
208
+ readonly serviceId: "slack";
209
+ };
210
+ readonly type: "slack.workspace.member.joined";
211
+ };
41
212
  };
@@ -32,6 +32,37 @@ const SLACK_REACTION_ACCOUNT = {
32
32
  ],
33
33
  serviceId: "slack",
34
34
  };
35
+ const SLACK_CHANNEL_MEMBER_JOINED_ACCOUNT = slackAccount([
36
+ "channels:read",
37
+ "groups:read",
38
+ "mpim:read",
39
+ ]);
40
+ const SLACK_CHANNEL_MEMBER_LEFT_ACCOUNT = slackAccount([
41
+ "channels:read",
42
+ "groups:read",
43
+ ]);
44
+ const SLACK_FILE_ACCOUNT = slackAccount(["files:read"]);
45
+ const SLACK_WORKSPACE_MEMBER_ACCOUNT = slackAccount(["users:read"]);
46
+ const SLACK_PUBLIC_CHANNEL_ACCOUNT = slackAccount(["channels:read"]);
47
+ const SLACK_SHARED_CHANNEL_ACCOUNT = slackAccount([
48
+ "channels:read",
49
+ "groups:read",
50
+ ]);
51
+ const SLACK_PIN_ACCOUNT = slackAccount(["pins:read"]);
52
+ const SLACK_EVENT_ACCOUNT = slackAccount([
53
+ "app_mentions:read",
54
+ "channels:history",
55
+ "groups:history",
56
+ "im:history",
57
+ "mpim:history",
58
+ "reactions:read",
59
+ "channels:read",
60
+ "groups:read",
61
+ "mpim:read",
62
+ "files:read",
63
+ "users:read",
64
+ "pins:read",
65
+ ]);
35
66
  export const slackTriggerDefinitions = {
36
67
  slackAppMentioned: {
37
68
  account: SLACK_APP_MENTION_ACCOUNT,
@@ -41,12 +72,95 @@ export const slackTriggerDefinitions = {
41
72
  account: SLACK_MESSAGE_ACCOUNT,
42
73
  type: "slack.message.posted",
43
74
  },
75
+ slackChannelCreated: {
76
+ account: SLACK_PUBLIC_CHANNEL_ACCOUNT,
77
+ type: "slack.channel.created",
78
+ },
79
+ slackChannelMemberJoined: {
80
+ account: SLACK_CHANNEL_MEMBER_JOINED_ACCOUNT,
81
+ type: "slack.channel.member.joined",
82
+ },
83
+ slackChannelMemberLeft: {
84
+ account: SLACK_CHANNEL_MEMBER_LEFT_ACCOUNT,
85
+ type: "slack.channel.member.left",
86
+ },
87
+ slackChannelRenamed: {
88
+ account: SLACK_PUBLIC_CHANNEL_ACCOUNT,
89
+ type: "slack.channel.renamed",
90
+ },
91
+ slackChannelShared: {
92
+ account: SLACK_SHARED_CHANNEL_ACCOUNT,
93
+ type: "slack.channel.shared",
94
+ },
95
+ slackChannelUnshared: {
96
+ account: SLACK_SHARED_CHANNEL_ACCOUNT,
97
+ type: "slack.channel.unshared",
98
+ },
99
+ slackEvent: {
100
+ account: SLACK_EVENT_ACCOUNT,
101
+ type: "slack.event.received",
102
+ },
103
+ slackFileCreated: {
104
+ account: SLACK_FILE_ACCOUNT,
105
+ type: "slack.file.created",
106
+ },
107
+ slackFileDeleted: {
108
+ account: SLACK_FILE_ACCOUNT,
109
+ type: "slack.file.deleted",
110
+ },
111
+ slackFileShared: {
112
+ account: SLACK_FILE_ACCOUNT,
113
+ type: "slack.file.shared",
114
+ },
115
+ slackMessageChanged: {
116
+ account: SLACK_MESSAGE_ACCOUNT,
117
+ type: "slack.message.changed",
118
+ },
119
+ slackMessageDeleted: {
120
+ account: SLACK_MESSAGE_ACCOUNT,
121
+ type: "slack.message.deleted",
122
+ },
123
+ slackPinAdded: {
124
+ account: SLACK_PIN_ACCOUNT,
125
+ type: "slack.pin.added",
126
+ },
127
+ slackPinRemoved: {
128
+ account: SLACK_PIN_ACCOUNT,
129
+ type: "slack.pin.removed",
130
+ },
44
131
  slackReactionAdded: {
45
132
  account: SLACK_REACTION_ACCOUNT,
46
133
  type: "slack.reaction.added",
47
134
  },
135
+ slackReactionEvent: {
136
+ account: SLACK_REACTION_ACCOUNT,
137
+ type: "slack.reaction.event",
138
+ },
48
139
  slackReactionRemoved: {
49
140
  account: SLACK_REACTION_ACCOUNT,
50
141
  type: "slack.reaction.removed",
51
142
  },
143
+ slackThreadReplyPosted: {
144
+ account: SLACK_MESSAGE_ACCOUNT,
145
+ type: "slack.thread.reply.posted",
146
+ },
147
+ slackWorkspaceMemberChanged: {
148
+ account: SLACK_WORKSPACE_MEMBER_ACCOUNT,
149
+ type: "slack.workspace.member.changed",
150
+ },
151
+ slackWorkspaceMemberJoined: {
152
+ account: SLACK_WORKSPACE_MEMBER_ACCOUNT,
153
+ type: "slack.workspace.member.joined",
154
+ },
52
155
  };
156
+ /**
157
+ * Builds one bot-token account requirement from its least-privilege scopes.
158
+ *
159
+ * @param scopes - Slack bot OAuth scopes required by the trigger.
160
+ */
161
+ function slackAccount(scopes) {
162
+ return {
163
+ connectionOptions: [{ requiredScopes: [...scopes] }],
164
+ serviceId: "slack",
165
+ };
166
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automate.ax/catalog",
3
- "version": "0.95.4",
3
+ "version": "0.96.0",
4
4
  "description": "Shared integration service and trigger definitions for Automate.ax.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/catalog.ts CHANGED
@@ -458,6 +458,15 @@ export const scrapflyService = defineApiKeyService({
458
458
  })
459
459
 
460
460
  export const slackService = defineIntegrationService({
461
+ connectionNotice: {
462
+ action: {
463
+ href: "https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/#automation-platform-apps",
464
+ label: "Review Slack requirements",
465
+ },
466
+ description:
467
+ "Slack requires automation-platform apps to connect only to paid workspaces. Free workspace authorizations are rejected and revoked.",
468
+ title: "Paid Slack workspace required",
469
+ },
461
470
  connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
462
471
  description: "Install the Automate.ax bot in a Slack workspace.",
463
472
  id: "slack",
@@ -37,6 +37,38 @@ const SLACK_REACTION_ACCOUNT = {
37
37
  serviceId: "slack",
38
38
  } as const satisfies IntegrationAccountRequirement
39
39
 
40
+ const SLACK_CHANNEL_MEMBER_JOINED_ACCOUNT = slackAccount([
41
+ "channels:read",
42
+ "groups:read",
43
+ "mpim:read",
44
+ ])
45
+ const SLACK_CHANNEL_MEMBER_LEFT_ACCOUNT = slackAccount([
46
+ "channels:read",
47
+ "groups:read",
48
+ ])
49
+ const SLACK_FILE_ACCOUNT = slackAccount(["files:read"])
50
+ const SLACK_WORKSPACE_MEMBER_ACCOUNT = slackAccount(["users:read"])
51
+ const SLACK_PUBLIC_CHANNEL_ACCOUNT = slackAccount(["channels:read"])
52
+ const SLACK_SHARED_CHANNEL_ACCOUNT = slackAccount([
53
+ "channels:read",
54
+ "groups:read",
55
+ ])
56
+ const SLACK_PIN_ACCOUNT = slackAccount(["pins:read"])
57
+ const SLACK_EVENT_ACCOUNT = slackAccount([
58
+ "app_mentions:read",
59
+ "channels:history",
60
+ "groups:history",
61
+ "im:history",
62
+ "mpim:history",
63
+ "reactions:read",
64
+ "channels:read",
65
+ "groups:read",
66
+ "mpim:read",
67
+ "files:read",
68
+ "users:read",
69
+ "pins:read",
70
+ ])
71
+
40
72
  export const slackTriggerDefinitions = {
41
73
  slackAppMentioned: {
42
74
  account: SLACK_APP_MENTION_ACCOUNT,
@@ -46,12 +78,96 @@ export const slackTriggerDefinitions = {
46
78
  account: SLACK_MESSAGE_ACCOUNT,
47
79
  type: "slack.message.posted",
48
80
  },
81
+ slackChannelCreated: {
82
+ account: SLACK_PUBLIC_CHANNEL_ACCOUNT,
83
+ type: "slack.channel.created",
84
+ },
85
+ slackChannelMemberJoined: {
86
+ account: SLACK_CHANNEL_MEMBER_JOINED_ACCOUNT,
87
+ type: "slack.channel.member.joined",
88
+ },
89
+ slackChannelMemberLeft: {
90
+ account: SLACK_CHANNEL_MEMBER_LEFT_ACCOUNT,
91
+ type: "slack.channel.member.left",
92
+ },
93
+ slackChannelRenamed: {
94
+ account: SLACK_PUBLIC_CHANNEL_ACCOUNT,
95
+ type: "slack.channel.renamed",
96
+ },
97
+ slackChannelShared: {
98
+ account: SLACK_SHARED_CHANNEL_ACCOUNT,
99
+ type: "slack.channel.shared",
100
+ },
101
+ slackChannelUnshared: {
102
+ account: SLACK_SHARED_CHANNEL_ACCOUNT,
103
+ type: "slack.channel.unshared",
104
+ },
105
+ slackEvent: {
106
+ account: SLACK_EVENT_ACCOUNT,
107
+ type: "slack.event.received",
108
+ },
109
+ slackFileCreated: {
110
+ account: SLACK_FILE_ACCOUNT,
111
+ type: "slack.file.created",
112
+ },
113
+ slackFileDeleted: {
114
+ account: SLACK_FILE_ACCOUNT,
115
+ type: "slack.file.deleted",
116
+ },
117
+ slackFileShared: {
118
+ account: SLACK_FILE_ACCOUNT,
119
+ type: "slack.file.shared",
120
+ },
121
+ slackMessageChanged: {
122
+ account: SLACK_MESSAGE_ACCOUNT,
123
+ type: "slack.message.changed",
124
+ },
125
+ slackMessageDeleted: {
126
+ account: SLACK_MESSAGE_ACCOUNT,
127
+ type: "slack.message.deleted",
128
+ },
129
+ slackPinAdded: {
130
+ account: SLACK_PIN_ACCOUNT,
131
+ type: "slack.pin.added",
132
+ },
133
+ slackPinRemoved: {
134
+ account: SLACK_PIN_ACCOUNT,
135
+ type: "slack.pin.removed",
136
+ },
49
137
  slackReactionAdded: {
50
138
  account: SLACK_REACTION_ACCOUNT,
51
139
  type: "slack.reaction.added",
52
140
  },
141
+ slackReactionEvent: {
142
+ account: SLACK_REACTION_ACCOUNT,
143
+ type: "slack.reaction.event",
144
+ },
53
145
  slackReactionRemoved: {
54
146
  account: SLACK_REACTION_ACCOUNT,
55
147
  type: "slack.reaction.removed",
56
148
  },
149
+ slackThreadReplyPosted: {
150
+ account: SLACK_MESSAGE_ACCOUNT,
151
+ type: "slack.thread.reply.posted",
152
+ },
153
+ slackWorkspaceMemberChanged: {
154
+ account: SLACK_WORKSPACE_MEMBER_ACCOUNT,
155
+ type: "slack.workspace.member.changed",
156
+ },
157
+ slackWorkspaceMemberJoined: {
158
+ account: SLACK_WORKSPACE_MEMBER_ACCOUNT,
159
+ type: "slack.workspace.member.joined",
160
+ },
57
161
  } as const satisfies Record<string, TriggerDefinition>
162
+
163
+ /**
164
+ * Builds one bot-token account requirement from its least-privilege scopes.
165
+ *
166
+ * @param scopes - Slack bot OAuth scopes required by the trigger.
167
+ */
168
+ function slackAccount(scopes: readonly string[]) {
169
+ return {
170
+ connectionOptions: [{ requiredScopes: [...scopes] }],
171
+ serviceId: "slack",
172
+ } as const satisfies IntegrationAccountRequirement
173
+ }