runline 0.2.0 → 0.2.2
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/README.md +1 -1
- package/dist/plugins/actionNetwork/src/index.js +118 -25
- package/dist/plugins/activeCampaign/src/index.js +184 -38
- package/dist/plugins/adalo/src/index.js +40 -8
- package/dist/plugins/affinity/src/index.js +100 -20
- package/dist/plugins/agileCrm/src/index.js +115 -27
- package/dist/plugins/airtable/src/index.js +94 -19
- package/dist/plugins/airtop/src/index.js +266 -62
- package/dist/plugins/apiTemplateIo/src/index.js +25 -5
- package/dist/plugins/asana/src/index.js +195 -41
- package/dist/plugins/autopilot/src/index.js +39 -8
- package/dist/plugins/bambooHr/src/index.js +109 -22
- package/dist/plugins/bannerbear/src/index.js +36 -8
- package/dist/plugins/baserow/src/index.js +35 -7
- package/dist/plugins/beeminder/src/index.js +198 -40
- package/dist/plugins/bitly/src/index.js +46 -10
- package/dist/plugins/bitwarden/src/index.js +167 -36
- package/dist/plugins/box/src/index.js +172 -37
- package/dist/plugins/brandfetch/src/index.js +5 -1
- package/dist/plugins/brevo/src/index.js +136 -29
- package/dist/plugins/bubble/src/index.js +76 -17
- package/dist/plugins/chargebee/src/index.js +35 -7
- package/dist/plugins/circleci/src/index.js +50 -10
- package/dist/plugins/ciscoWebex/src/index.js +131 -27
- package/dist/plugins/clearbit/src/index.js +76 -17
- package/dist/plugins/clickup/src/index.js +500 -107
- package/dist/plugins/clockify/src/index.js +229 -47
- package/dist/plugins/cloudflare/src/index.js +28 -6
- package/dist/plugins/cockpit/src/index.js +54 -12
- package/dist/plugins/coda/src/index.js +81 -19
- package/dist/plugins/coingecko/src/index.js +157 -33
- package/dist/plugins/contentful/src/index.js +85 -17
- package/dist/plugins/convertkit/src/index.js +74 -18
- package/dist/plugins/copper/src/index.js +59 -11
- package/dist/plugins/cortex/src/index.js +55 -13
- package/dist/plugins/currents/src/index.js +310 -71
- package/dist/plugins/customerIo/src/index.js +112 -23
- package/dist/plugins/databricks/src/index.js +549 -115
- package/dist/plugins/deepl/src/index.js +26 -6
- package/dist/plugins/demio/src/index.js +56 -11
- package/dist/plugins/dhl/src/index.js +16 -3
- package/dist/plugins/discord/src/index.js +141 -31
- package/dist/plugins/discourse/src/index.js +136 -31
- package/dist/plugins/disqus/src/index.js +96 -20
- package/dist/plugins/docker/src/index.js +20 -4
- package/dist/plugins/drift/src/index.js +19 -5
- package/dist/plugins/dropbox/src/index.js +139 -30
- package/dist/plugins/dropcontact/src/index.js +21 -4
- package/dist/plugins/egoi/src/index.js +61 -15
- package/dist/plugins/elasticsearch/src/index.js +59 -13
- package/dist/plugins/emelia/src/index.js +95 -19
- package/dist/plugins/erpnext/src/index.js +74 -15
- package/dist/plugins/facebookGraph/src/index.js +52 -11
- package/dist/plugins/freshdesk/src/index.js +220 -48
- package/dist/plugins/freshservice/src/index.js +39 -9
- package/dist/plugins/freshworksCrm/src/index.js +58 -12
- package/dist/plugins/getresponse/src/index.js +87 -18
- package/dist/plugins/ghost/src/index.js +114 -26
- package/dist/plugins/github/src/index.js +483 -109
- package/dist/plugins/gitlab/src/index.js +193 -45
- package/dist/plugins/gong/src/index.js +68 -14
- package/dist/plugins/gotify/src/index.js +43 -9
- package/dist/plugins/gotowebinar/src/index.js +233 -47
- package/dist/plugins/grafana/src/index.js +92 -21
- package/dist/plugins/graphql/src/index.js +38 -8
- package/dist/plugins/grist/src/index.js +52 -10
- package/dist/plugins/hackernews/src/index.js +32 -6
- package/dist/plugins/halopsa/src/index.js +131 -26
- package/dist/plugins/harvest/src/index.js +182 -42
- package/dist/plugins/helpscout/src/index.js +153 -31
- package/dist/plugins/highlevel/src/index.js +291 -58
- package/dist/plugins/homeAssistant/src/index.js +124 -26
- package/dist/plugins/hubspot/src/index.js +163 -29
- package/dist/plugins/humanticAi/src/index.js +54 -5
- package/dist/plugins/hunter/src/index.js +21 -4
- package/dist/plugins/intercom/src/index.js +95 -20
- package/dist/plugins/iterable/src/index.js +96 -20
- package/dist/plugins/jenkins/src/index.js +75 -17
- package/dist/plugins/jira/src/index.js +193 -43
- package/dist/plugins/keap/src/index.js +222 -56
- package/dist/plugins/kobotoolbox/src/index.js +113 -25
- package/dist/plugins/lemlist/src/index.js +79 -18
- package/dist/plugins/linear/src/index.js +86 -19
- package/dist/plugins/lingvanex/src/index.js +38 -8
- package/dist/plugins/linkedin/src/index.js +37 -8
- package/dist/plugins/lonescale/src/index.js +41 -9
- package/dist/plugins/magento/src/index.js +98 -27
- package/dist/plugins/mailcheck/src/index.js +11 -2
- package/dist/plugins/mailchimp/src/index.js +193 -42
- package/dist/plugins/mailerlite/src/index.js +61 -12
- package/dist/plugins/mailgun/src/index.js +39 -7
- package/dist/plugins/mailjet/src/index.js +141 -30
- package/dist/plugins/mandrill/src/index.js +67 -14
- package/dist/plugins/marketstack/src/index.js +56 -10
- package/dist/plugins/matrix/src/index.js +97 -20
- package/dist/plugins/mattermost/src/index.js +124 -26
- package/dist/plugins/mautic/src/index.js +129 -26
- package/dist/plugins/medium/src/index.js +64 -13
- package/dist/plugins/messagebird/src/index.js +80 -15
- package/dist/plugins/metabase/src/index.js +57 -12
- package/dist/plugins/misp/src/index.js +135 -33
- package/dist/plugins/mocean/src/index.js +33 -7
- package/dist/plugins/monday/src/index.js +97 -23
- package/dist/plugins/monicaCrm/src/index.js +112 -23
- package/dist/plugins/msg91/src/index.js +11 -2
- package/dist/plugins/nasa/src/index.js +108 -21
- package/dist/plugins/netlify/src/index.js +28 -6
- package/dist/plugins/netscalerAdc/src/index.js +144 -29
- package/dist/plugins/nextcloud/src/index.js +103 -20
- package/dist/plugins/nocodb/src/index.js +57 -11
- package/dist/plugins/notion/src/index.js +148 -37
- package/dist/plugins/npm/src/index.js +59 -12
- package/dist/plugins/odoo/src/index.js +102 -20
- package/dist/plugins/okta/src/index.js +50 -10
- package/dist/plugins/oneSimpleApi/src/index.js +84 -17
- package/dist/plugins/onfleet/src/index.js +139 -32
- package/dist/plugins/openThesaurus/src/index.js +46 -9
- package/dist/plugins/openweathermap/src/index.js +31 -6
- package/dist/plugins/oura/src/index.js +36 -7
- package/dist/plugins/paddle/src/index.js +80 -17
- package/dist/plugins/pagerduty/src/index.js +53 -12
- package/dist/plugins/paypal/src/index.js +51 -11
- package/dist/plugins/peekalink/src/index.js +12 -3
- package/dist/plugins/phantombuster/src/index.js +39 -8
- package/dist/plugins/philipsHue/src/index.js +64 -13
- package/dist/plugins/pipedrive/src/index.js +167 -45
- package/dist/plugins/plivo/src/index.js +43 -8
- package/dist/plugins/postbin/src/index.js +9 -2
- package/dist/plugins/posthog/src/index.js +50 -13
- package/dist/plugins/profitwell/src/index.js +24 -5
- package/dist/plugins/pushbullet/src/index.js +45 -9
- package/dist/plugins/pushcut/src/index.js +31 -6
- package/dist/plugins/pushover/src/index.js +51 -10
- package/dist/plugins/quickbase/src/index.js +66 -13
- package/dist/plugins/quickbooks/src/index.js +86 -19
- package/dist/plugins/quickchart/src/index.js +35 -7
- package/dist/plugins/raindrop/src/index.js +54 -13
- package/dist/plugins/reddit/src/index.js +73 -18
- package/dist/plugins/rocketchat/src/index.js +47 -9
- package/dist/plugins/rundeck/src/index.js +26 -5
- package/dist/plugins/salesforce/src/index.js +161 -31
- package/dist/plugins/salesmate/src/index.js +75 -16
- package/dist/plugins/securityScorecard/src/index.js +73 -15
- package/dist/plugins/segment/src/index.js +21 -4
- package/dist/plugins/sendgrid/src/index.js +102 -24
- package/dist/plugins/sendy/src/index.js +54 -11
- package/dist/plugins/sentry/src/index.js +174 -34
- package/dist/plugins/servicenow/src/index.js +120 -27
- package/dist/plugins/shopify/src/index.js +53 -12
- package/dist/plugins/signl4/src/index.js +16 -3
- package/dist/plugins/slack/src/index.js +407 -105
- package/dist/plugins/sms77/src/index.js +26 -5
- package/dist/plugins/splunk/src/index.js +186 -45
- package/dist/plugins/spotify/src/index.js +265 -66
- package/dist/plugins/stackby/src/index.js +18 -6
- package/dist/plugins/storyblok/src/index.js +57 -11
- package/dist/plugins/strapi/src/index.js +63 -12
- package/dist/plugins/strava/src/index.js +58 -13
- package/dist/plugins/stripe/src/index.js +143 -30
- package/dist/plugins/supabase/src/index.js +49 -10
- package/dist/plugins/syncromsp/src/index.js +245 -67
- package/dist/plugins/tapfiliate/src/index.js +57 -14
- package/dist/plugins/telegram/src/index.js +202 -39
- package/dist/plugins/thehive/src/index.js +271 -66
- package/dist/plugins/thehiveProject/src/index.js +457 -89
- package/dist/plugins/todoist/src/index.js +326 -77
- package/dist/plugins/travisci/src/index.js +35 -8
- package/dist/plugins/trello/src/index.js +204 -46
- package/dist/plugins/twake/src/index.js +10 -2
- package/dist/plugins/twilio/src/index.js +56 -11
- package/dist/plugins/twist/src/index.js +241 -48
- package/dist/plugins/twitter/src/index.js +128 -30
- package/dist/plugins/unleashedSoftware/src/index.js +30 -6
- package/dist/plugins/uplead/src/index.js +9 -2
- package/dist/plugins/uproc/src/index.js +31 -6
- package/dist/plugins/uptimerobot/src/index.js +119 -25
- package/dist/plugins/urlscanio/src/index.js +25 -6
- package/dist/plugins/vero/src/index.js +68 -13
- package/dist/plugins/vonage/src/index.js +32 -6
- package/dist/plugins/wekan/src/index.js +297 -52
- package/dist/plugins/woocommerce/src/index.js +57 -12
- package/dist/plugins/wordpress/src/index.js +94 -18
- package/dist/plugins/xero/src/index.js +79 -13
- package/dist/plugins/yourls/src/index.js +33 -6
- package/dist/plugins/zammad/src/index.js +139 -36
- package/dist/plugins/zendesk/src/index.js +201 -48
- package/dist/plugins/zoho/src/index.js +88 -21
- package/dist/plugins/zoom/src/index.js +41 -7
- package/dist/plugins/zulip/src/index.js +101 -20
- package/package.json +1 -1
|
@@ -14,7 +14,10 @@ async function apiRequest(token, method, endpoint, body, qs) {
|
|
|
14
14
|
Authorization: `Bearer ${token}`,
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
-
if (body &&
|
|
17
|
+
if (body &&
|
|
18
|
+
Object.keys(body).length > 0 &&
|
|
19
|
+
method !== "GET" &&
|
|
20
|
+
method !== "DELETE") {
|
|
18
21
|
opts.body = JSON.stringify({ data: body });
|
|
19
22
|
}
|
|
20
23
|
const res = await fetch(url.toString(), opts);
|
|
@@ -76,12 +79,32 @@ export default function asana(rl) {
|
|
|
76
79
|
description: "Create a new task",
|
|
77
80
|
inputSchema: {
|
|
78
81
|
name: { type: "string", required: true, description: "Task name" },
|
|
79
|
-
workspace: {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
workspace: {
|
|
83
|
+
type: "string",
|
|
84
|
+
required: true,
|
|
85
|
+
description: "Workspace GID",
|
|
86
|
+
},
|
|
87
|
+
assignee: {
|
|
88
|
+
type: "string",
|
|
89
|
+
required: false,
|
|
90
|
+
description: "Assignee GID",
|
|
91
|
+
},
|
|
92
|
+
projects: {
|
|
93
|
+
type: "array",
|
|
94
|
+
required: false,
|
|
95
|
+
description: "Array of project GIDs",
|
|
96
|
+
},
|
|
82
97
|
notes: { type: "string", required: false, description: "Task notes" },
|
|
83
|
-
dueOn: {
|
|
84
|
-
|
|
98
|
+
dueOn: {
|
|
99
|
+
type: "string",
|
|
100
|
+
required: false,
|
|
101
|
+
description: "Due date (YYYY-MM-DD)",
|
|
102
|
+
},
|
|
103
|
+
completed: {
|
|
104
|
+
type: "boolean",
|
|
105
|
+
required: false,
|
|
106
|
+
description: "Mark as completed",
|
|
107
|
+
},
|
|
85
108
|
},
|
|
86
109
|
async execute(input, ctx) {
|
|
87
110
|
const { name, workspace, assignee, projects, notes, dueOn, completed, ...rest } = input;
|
|
@@ -114,12 +137,25 @@ export default function asana(rl) {
|
|
|
114
137
|
inputSchema: {
|
|
115
138
|
project: { type: "string", required: false, description: "Project GID" },
|
|
116
139
|
section: { type: "string", required: false, description: "Section GID" },
|
|
117
|
-
workspace: {
|
|
118
|
-
|
|
119
|
-
|
|
140
|
+
workspace: {
|
|
141
|
+
type: "string",
|
|
142
|
+
required: false,
|
|
143
|
+
description: "Workspace GID",
|
|
144
|
+
},
|
|
145
|
+
assignee: {
|
|
146
|
+
type: "string",
|
|
147
|
+
required: false,
|
|
148
|
+
description: "Assignee GID (required with workspace)",
|
|
149
|
+
},
|
|
150
|
+
limit: {
|
|
151
|
+
type: "number",
|
|
152
|
+
required: false,
|
|
153
|
+
description: "Max results to return",
|
|
154
|
+
},
|
|
120
155
|
},
|
|
121
156
|
async execute(input, ctx) {
|
|
122
|
-
const { project, section, workspace, assignee, limit } = (input ??
|
|
157
|
+
const { project, section, workspace, assignee, limit } = (input ??
|
|
158
|
+
{});
|
|
123
159
|
const qs = {};
|
|
124
160
|
if (project)
|
|
125
161
|
qs.project = project;
|
|
@@ -138,9 +174,21 @@ export default function asana(rl) {
|
|
|
138
174
|
taskId: { type: "string", required: true, description: "Task GID" },
|
|
139
175
|
name: { type: "string", required: false, description: "Task name" },
|
|
140
176
|
notes: { type: "string", required: false, description: "Task notes" },
|
|
141
|
-
assignee: {
|
|
142
|
-
|
|
143
|
-
|
|
177
|
+
assignee: {
|
|
178
|
+
type: "string",
|
|
179
|
+
required: false,
|
|
180
|
+
description: "Assignee GID",
|
|
181
|
+
},
|
|
182
|
+
dueOn: {
|
|
183
|
+
type: "string",
|
|
184
|
+
required: false,
|
|
185
|
+
description: "Due date (YYYY-MM-DD)",
|
|
186
|
+
},
|
|
187
|
+
completed: {
|
|
188
|
+
type: "boolean",
|
|
189
|
+
required: false,
|
|
190
|
+
description: "Mark as completed",
|
|
191
|
+
},
|
|
144
192
|
},
|
|
145
193
|
async execute(input, ctx) {
|
|
146
194
|
const { taskId, dueOn, ...fields } = input;
|
|
@@ -165,7 +213,11 @@ export default function asana(rl) {
|
|
|
165
213
|
description: "Move a task to a section",
|
|
166
214
|
inputSchema: {
|
|
167
215
|
taskId: { type: "string", required: true, description: "Task GID" },
|
|
168
|
-
sectionId: {
|
|
216
|
+
sectionId: {
|
|
217
|
+
type: "string",
|
|
218
|
+
required: true,
|
|
219
|
+
description: "Section GID to move into",
|
|
220
|
+
},
|
|
169
221
|
},
|
|
170
222
|
async execute(input, ctx) {
|
|
171
223
|
const { taskId, sectionId } = input;
|
|
@@ -176,9 +228,21 @@ export default function asana(rl) {
|
|
|
176
228
|
rl.registerAction("task.search", {
|
|
177
229
|
description: "Search for tasks in a workspace",
|
|
178
230
|
inputSchema: {
|
|
179
|
-
workspace: {
|
|
180
|
-
|
|
181
|
-
|
|
231
|
+
workspace: {
|
|
232
|
+
type: "string",
|
|
233
|
+
required: true,
|
|
234
|
+
description: "Workspace GID",
|
|
235
|
+
},
|
|
236
|
+
text: {
|
|
237
|
+
type: "string",
|
|
238
|
+
required: false,
|
|
239
|
+
description: "Text to search in name/notes",
|
|
240
|
+
},
|
|
241
|
+
completed: {
|
|
242
|
+
type: "boolean",
|
|
243
|
+
required: false,
|
|
244
|
+
description: "Filter by completed status",
|
|
245
|
+
},
|
|
182
246
|
},
|
|
183
247
|
async execute(input, ctx) {
|
|
184
248
|
const { workspace, text, completed } = input;
|
|
@@ -194,12 +258,28 @@ export default function asana(rl) {
|
|
|
194
258
|
rl.registerAction("subtask.create", {
|
|
195
259
|
description: "Create a subtask on a task",
|
|
196
260
|
inputSchema: {
|
|
197
|
-
taskId: {
|
|
261
|
+
taskId: {
|
|
262
|
+
type: "string",
|
|
263
|
+
required: true,
|
|
264
|
+
description: "Parent task GID",
|
|
265
|
+
},
|
|
198
266
|
name: { type: "string", required: true, description: "Subtask name" },
|
|
199
|
-
assignee: {
|
|
267
|
+
assignee: {
|
|
268
|
+
type: "string",
|
|
269
|
+
required: false,
|
|
270
|
+
description: "Assignee GID",
|
|
271
|
+
},
|
|
200
272
|
notes: { type: "string", required: false, description: "Subtask notes" },
|
|
201
|
-
dueOn: {
|
|
202
|
-
|
|
273
|
+
dueOn: {
|
|
274
|
+
type: "string",
|
|
275
|
+
required: false,
|
|
276
|
+
description: "Due date (YYYY-MM-DD)",
|
|
277
|
+
},
|
|
278
|
+
completed: {
|
|
279
|
+
type: "boolean",
|
|
280
|
+
required: false,
|
|
281
|
+
description: "Mark as completed",
|
|
282
|
+
},
|
|
203
283
|
},
|
|
204
284
|
async execute(input, ctx) {
|
|
205
285
|
const { taskId, dueOn, ...fields } = input;
|
|
@@ -212,8 +292,16 @@ export default function asana(rl) {
|
|
|
212
292
|
rl.registerAction("subtask.list", {
|
|
213
293
|
description: "List subtasks of a task",
|
|
214
294
|
inputSchema: {
|
|
215
|
-
taskId: {
|
|
216
|
-
|
|
295
|
+
taskId: {
|
|
296
|
+
type: "string",
|
|
297
|
+
required: true,
|
|
298
|
+
description: "Parent task GID",
|
|
299
|
+
},
|
|
300
|
+
limit: {
|
|
301
|
+
type: "number",
|
|
302
|
+
required: false,
|
|
303
|
+
description: "Max results to return",
|
|
304
|
+
},
|
|
217
305
|
},
|
|
218
306
|
async execute(input, ctx) {
|
|
219
307
|
const { taskId, limit } = input;
|
|
@@ -229,12 +317,22 @@ export default function asana(rl) {
|
|
|
229
317
|
inputSchema: {
|
|
230
318
|
taskId: { type: "string", required: true, description: "Task GID" },
|
|
231
319
|
text: { type: "string", required: true, description: "Comment text" },
|
|
232
|
-
isHtml: {
|
|
233
|
-
|
|
320
|
+
isHtml: {
|
|
321
|
+
type: "boolean",
|
|
322
|
+
required: false,
|
|
323
|
+
description: "Whether text is HTML",
|
|
324
|
+
},
|
|
325
|
+
isPinned: {
|
|
326
|
+
type: "boolean",
|
|
327
|
+
required: false,
|
|
328
|
+
description: "Pin the comment",
|
|
329
|
+
},
|
|
234
330
|
},
|
|
235
331
|
async execute(input, ctx) {
|
|
236
332
|
const { taskId, text, isHtml, isPinned } = input;
|
|
237
|
-
const body = isHtml
|
|
333
|
+
const body = isHtml
|
|
334
|
+
? { html_text: text }
|
|
335
|
+
: { text };
|
|
238
336
|
if (isPinned)
|
|
239
337
|
body.is_pinned = true;
|
|
240
338
|
return apiRequest(getToken(ctx), "POST", `/tasks/${taskId}/stories`, body);
|
|
@@ -243,7 +341,11 @@ export default function asana(rl) {
|
|
|
243
341
|
rl.registerAction("taskComment.remove", {
|
|
244
342
|
description: "Remove a comment (story) from a task",
|
|
245
343
|
inputSchema: {
|
|
246
|
-
commentId: {
|
|
344
|
+
commentId: {
|
|
345
|
+
type: "string",
|
|
346
|
+
required: true,
|
|
347
|
+
description: "Comment/story GID",
|
|
348
|
+
},
|
|
247
349
|
},
|
|
248
350
|
async execute(input, ctx) {
|
|
249
351
|
const { commentId } = input;
|
|
@@ -260,7 +362,9 @@ export default function asana(rl) {
|
|
|
260
362
|
},
|
|
261
363
|
async execute(input, ctx) {
|
|
262
364
|
const { taskId, tagId } = input;
|
|
263
|
-
await apiRequest(getToken(ctx), "POST", `/tasks/${taskId}/addTag`, {
|
|
365
|
+
await apiRequest(getToken(ctx), "POST", `/tasks/${taskId}/addTag`, {
|
|
366
|
+
tag: tagId,
|
|
367
|
+
});
|
|
264
368
|
return { success: true };
|
|
265
369
|
},
|
|
266
370
|
});
|
|
@@ -272,7 +376,9 @@ export default function asana(rl) {
|
|
|
272
376
|
},
|
|
273
377
|
async execute(input, ctx) {
|
|
274
378
|
const { taskId, tagId } = input;
|
|
275
|
-
await apiRequest(getToken(ctx), "POST", `/tasks/${taskId}/removeTag`, {
|
|
379
|
+
await apiRequest(getToken(ctx), "POST", `/tasks/${taskId}/removeTag`, {
|
|
380
|
+
tag: tagId,
|
|
381
|
+
});
|
|
276
382
|
return { success: true };
|
|
277
383
|
},
|
|
278
384
|
});
|
|
@@ -282,7 +388,11 @@ export default function asana(rl) {
|
|
|
282
388
|
inputSchema: {
|
|
283
389
|
taskId: { type: "string", required: true, description: "Task GID" },
|
|
284
390
|
projectId: { type: "string", required: true, description: "Project GID" },
|
|
285
|
-
section: {
|
|
391
|
+
section: {
|
|
392
|
+
type: "string",
|
|
393
|
+
required: false,
|
|
394
|
+
description: "Section GID to insert into",
|
|
395
|
+
},
|
|
286
396
|
},
|
|
287
397
|
async execute(input, ctx) {
|
|
288
398
|
const { taskId, projectId, section } = input;
|
|
@@ -309,7 +419,11 @@ export default function asana(rl) {
|
|
|
309
419
|
rl.registerAction("user.get", {
|
|
310
420
|
description: "Get a user by ID (or 'me' for current user)",
|
|
311
421
|
inputSchema: {
|
|
312
|
-
userId: {
|
|
422
|
+
userId: {
|
|
423
|
+
type: "string",
|
|
424
|
+
required: true,
|
|
425
|
+
description: "User GID or 'me'",
|
|
426
|
+
},
|
|
313
427
|
},
|
|
314
428
|
async execute(input, ctx) {
|
|
315
429
|
const { userId } = input;
|
|
@@ -319,7 +433,11 @@ export default function asana(rl) {
|
|
|
319
433
|
rl.registerAction("user.list", {
|
|
320
434
|
description: "List users in a workspace",
|
|
321
435
|
inputSchema: {
|
|
322
|
-
workspace: {
|
|
436
|
+
workspace: {
|
|
437
|
+
type: "string",
|
|
438
|
+
required: true,
|
|
439
|
+
description: "Workspace GID",
|
|
440
|
+
},
|
|
323
441
|
},
|
|
324
442
|
async execute(input, ctx) {
|
|
325
443
|
const { workspace } = input;
|
|
@@ -331,11 +449,23 @@ export default function asana(rl) {
|
|
|
331
449
|
description: "Create a new project",
|
|
332
450
|
inputSchema: {
|
|
333
451
|
name: { type: "string", required: true, description: "Project name" },
|
|
334
|
-
workspace: {
|
|
452
|
+
workspace: {
|
|
453
|
+
type: "string",
|
|
454
|
+
required: true,
|
|
455
|
+
description: "Workspace GID",
|
|
456
|
+
},
|
|
335
457
|
team: { type: "string", required: true, description: "Team GID" },
|
|
336
|
-
notes: {
|
|
458
|
+
notes: {
|
|
459
|
+
type: "string",
|
|
460
|
+
required: false,
|
|
461
|
+
description: "Project description",
|
|
462
|
+
},
|
|
337
463
|
color: { type: "string", required: false, description: "Project color" },
|
|
338
|
-
dueOn: {
|
|
464
|
+
dueOn: {
|
|
465
|
+
type: "string",
|
|
466
|
+
required: false,
|
|
467
|
+
description: "Due date (YYYY-MM-DD)",
|
|
468
|
+
},
|
|
339
469
|
},
|
|
340
470
|
async execute(input, ctx) {
|
|
341
471
|
const { name, workspace, team, notes, color, dueOn } = input;
|
|
@@ -362,10 +492,26 @@ export default function asana(rl) {
|
|
|
362
492
|
rl.registerAction("project.list", {
|
|
363
493
|
description: "List projects in a workspace",
|
|
364
494
|
inputSchema: {
|
|
365
|
-
workspace: {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
495
|
+
workspace: {
|
|
496
|
+
type: "string",
|
|
497
|
+
required: true,
|
|
498
|
+
description: "Workspace GID",
|
|
499
|
+
},
|
|
500
|
+
team: {
|
|
501
|
+
type: "string",
|
|
502
|
+
required: false,
|
|
503
|
+
description: "Filter by team GID",
|
|
504
|
+
},
|
|
505
|
+
archived: {
|
|
506
|
+
type: "boolean",
|
|
507
|
+
required: false,
|
|
508
|
+
description: "Filter by archived status",
|
|
509
|
+
},
|
|
510
|
+
limit: {
|
|
511
|
+
type: "number",
|
|
512
|
+
required: false,
|
|
513
|
+
description: "Max results to return",
|
|
514
|
+
},
|
|
369
515
|
},
|
|
370
516
|
async execute(input, ctx) {
|
|
371
517
|
const { workspace, team, archived, limit } = (input ?? {});
|
|
@@ -386,10 +532,18 @@ export default function asana(rl) {
|
|
|
386
532
|
inputSchema: {
|
|
387
533
|
projectId: { type: "string", required: true, description: "Project GID" },
|
|
388
534
|
name: { type: "string", required: false, description: "Project name" },
|
|
389
|
-
notes: {
|
|
535
|
+
notes: {
|
|
536
|
+
type: "string",
|
|
537
|
+
required: false,
|
|
538
|
+
description: "Project description",
|
|
539
|
+
},
|
|
390
540
|
color: { type: "string", required: false, description: "Project color" },
|
|
391
541
|
owner: { type: "string", required: false, description: "Owner GID" },
|
|
392
|
-
dueOn: {
|
|
542
|
+
dueOn: {
|
|
543
|
+
type: "string",
|
|
544
|
+
required: false,
|
|
545
|
+
description: "Due date (YYYY-MM-DD)",
|
|
546
|
+
},
|
|
393
547
|
},
|
|
394
548
|
async execute(input, ctx) {
|
|
395
549
|
const { projectId, dueOn, ...fields } = input;
|
|
@@ -7,7 +7,10 @@ async function apiRequest(apiKey, method, endpoint, body) {
|
|
|
7
7
|
autopilotapikey: apiKey,
|
|
8
8
|
},
|
|
9
9
|
};
|
|
10
|
-
if (body &&
|
|
10
|
+
if (body &&
|
|
11
|
+
Object.keys(body).length > 0 &&
|
|
12
|
+
method !== "GET" &&
|
|
13
|
+
method !== "DELETE") {
|
|
11
14
|
opts.body = JSON.stringify(body);
|
|
12
15
|
}
|
|
13
16
|
const res = await fetch(`${BASE_URL}${endpoint}`, opts);
|
|
@@ -58,8 +61,16 @@ export default function autopilot(rl) {
|
|
|
58
61
|
lastName: { type: "string", required: false, description: "Last name" },
|
|
59
62
|
company: { type: "string", required: false, description: "Company" },
|
|
60
63
|
phone: { type: "string", required: false, description: "Phone" },
|
|
61
|
-
listId: {
|
|
62
|
-
|
|
64
|
+
listId: {
|
|
65
|
+
type: "string",
|
|
66
|
+
required: false,
|
|
67
|
+
description: "Add to this list",
|
|
68
|
+
},
|
|
69
|
+
newEmail: {
|
|
70
|
+
type: "string",
|
|
71
|
+
required: false,
|
|
72
|
+
description: "Change email address",
|
|
73
|
+
},
|
|
63
74
|
},
|
|
64
75
|
async execute(input, ctx) {
|
|
65
76
|
const { email, firstName, lastName, company, phone, listId, newEmail, ...rest } = input;
|
|
@@ -82,7 +93,11 @@ export default function autopilot(rl) {
|
|
|
82
93
|
rl.registerAction("contact.get", {
|
|
83
94
|
description: "Get a contact by ID or email",
|
|
84
95
|
inputSchema: {
|
|
85
|
-
contactId: {
|
|
96
|
+
contactId: {
|
|
97
|
+
type: "string",
|
|
98
|
+
required: true,
|
|
99
|
+
description: "Contact ID or email",
|
|
100
|
+
},
|
|
86
101
|
},
|
|
87
102
|
async execute(input, ctx) {
|
|
88
103
|
const { contactId } = input;
|
|
@@ -92,7 +107,11 @@ export default function autopilot(rl) {
|
|
|
92
107
|
rl.registerAction("contact.list", {
|
|
93
108
|
description: "List all contacts",
|
|
94
109
|
inputSchema: {
|
|
95
|
-
limit: {
|
|
110
|
+
limit: {
|
|
111
|
+
type: "number",
|
|
112
|
+
required: false,
|
|
113
|
+
description: "Max results to return",
|
|
114
|
+
},
|
|
96
115
|
},
|
|
97
116
|
async execute(input, ctx) {
|
|
98
117
|
const { limit } = (input ?? {});
|
|
@@ -114,7 +133,11 @@ export default function autopilot(rl) {
|
|
|
114
133
|
rl.registerAction("contactJourney.add", {
|
|
115
134
|
description: "Add a contact to a journey/trigger",
|
|
116
135
|
inputSchema: {
|
|
117
|
-
triggerId: {
|
|
136
|
+
triggerId: {
|
|
137
|
+
type: "string",
|
|
138
|
+
required: true,
|
|
139
|
+
description: "Trigger/journey ID",
|
|
140
|
+
},
|
|
118
141
|
contactId: { type: "string", required: true, description: "Contact ID" },
|
|
119
142
|
},
|
|
120
143
|
async execute(input, ctx) {
|
|
@@ -169,7 +192,11 @@ export default function autopilot(rl) {
|
|
|
169
192
|
description: "List all contacts in a list",
|
|
170
193
|
inputSchema: {
|
|
171
194
|
listId: { type: "string", required: true, description: "List ID" },
|
|
172
|
-
limit: {
|
|
195
|
+
limit: {
|
|
196
|
+
type: "number",
|
|
197
|
+
required: false,
|
|
198
|
+
description: "Max results to return",
|
|
199
|
+
},
|
|
173
200
|
},
|
|
174
201
|
async execute(input, ctx) {
|
|
175
202
|
const { listId, limit } = input;
|
|
@@ -190,7 +217,11 @@ export default function autopilot(rl) {
|
|
|
190
217
|
rl.registerAction("list.list", {
|
|
191
218
|
description: "List all lists",
|
|
192
219
|
inputSchema: {
|
|
193
|
-
limit: {
|
|
220
|
+
limit: {
|
|
221
|
+
type: "number",
|
|
222
|
+
required: false,
|
|
223
|
+
description: "Max results to return",
|
|
224
|
+
},
|
|
194
225
|
},
|
|
195
226
|
async execute(input, ctx) {
|
|
196
227
|
const { limit } = (input ?? {});
|
|
@@ -11,7 +11,10 @@ async function apiRequest(subdomain, apiKey, method, endpoint, body) {
|
|
|
11
11
|
Authorization: `Basic ${btoa(`${apiKey}:x`)}`,
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
|
-
if (body &&
|
|
14
|
+
if (body &&
|
|
15
|
+
Object.keys(body).length > 0 &&
|
|
16
|
+
method !== "GET" &&
|
|
17
|
+
method !== "DELETE") {
|
|
15
18
|
opts.body = JSON.stringify(body);
|
|
16
19
|
}
|
|
17
20
|
const res = await fetch(url, opts);
|
|
@@ -55,14 +58,38 @@ export default function bambooHr(rl) {
|
|
|
55
58
|
inputSchema: {
|
|
56
59
|
firstName: { type: "string", required: true, description: "First name" },
|
|
57
60
|
lastName: { type: "string", required: true, description: "Last name" },
|
|
58
|
-
department: {
|
|
61
|
+
department: {
|
|
62
|
+
type: "string",
|
|
63
|
+
required: false,
|
|
64
|
+
description: "Department",
|
|
65
|
+
},
|
|
59
66
|
division: { type: "string", required: false, description: "Division" },
|
|
60
|
-
employeeNumber: {
|
|
61
|
-
|
|
62
|
-
|
|
67
|
+
employeeNumber: {
|
|
68
|
+
type: "string",
|
|
69
|
+
required: false,
|
|
70
|
+
description: "Employee number",
|
|
71
|
+
},
|
|
72
|
+
gender: {
|
|
73
|
+
type: "string",
|
|
74
|
+
required: false,
|
|
75
|
+
description: "Gender (Male/Female)",
|
|
76
|
+
},
|
|
77
|
+
hireDate: {
|
|
78
|
+
type: "string",
|
|
79
|
+
required: false,
|
|
80
|
+
description: "Hire date (YYYY-MM-DD)",
|
|
81
|
+
},
|
|
63
82
|
location: { type: "string", required: false, description: "Location" },
|
|
64
|
-
mobilePhone: {
|
|
65
|
-
|
|
83
|
+
mobilePhone: {
|
|
84
|
+
type: "string",
|
|
85
|
+
required: false,
|
|
86
|
+
description: "Mobile phone",
|
|
87
|
+
},
|
|
88
|
+
preferredName: {
|
|
89
|
+
type: "string",
|
|
90
|
+
required: false,
|
|
91
|
+
description: "Preferred name",
|
|
92
|
+
},
|
|
66
93
|
},
|
|
67
94
|
async execute(input, ctx) {
|
|
68
95
|
const { subdomain, apiKey } = getConn(ctx);
|
|
@@ -86,8 +113,16 @@ export default function bambooHr(rl) {
|
|
|
86
113
|
rl.registerAction("employee.get", {
|
|
87
114
|
description: "Get an employee by ID",
|
|
88
115
|
inputSchema: {
|
|
89
|
-
employeeId: {
|
|
90
|
-
|
|
116
|
+
employeeId: {
|
|
117
|
+
type: "string",
|
|
118
|
+
required: true,
|
|
119
|
+
description: "Employee ID",
|
|
120
|
+
},
|
|
121
|
+
fields: {
|
|
122
|
+
type: "string",
|
|
123
|
+
required: false,
|
|
124
|
+
description: "Comma-separated field names (default: all)",
|
|
125
|
+
},
|
|
91
126
|
},
|
|
92
127
|
async execute(input, ctx) {
|
|
93
128
|
const { employeeId, fields } = input;
|
|
@@ -104,7 +139,11 @@ export default function bambooHr(rl) {
|
|
|
104
139
|
rl.registerAction("employee.list", {
|
|
105
140
|
description: "List all employees (directory)",
|
|
106
141
|
inputSchema: {
|
|
107
|
-
limit: {
|
|
142
|
+
limit: {
|
|
143
|
+
type: "number",
|
|
144
|
+
required: false,
|
|
145
|
+
description: "Max results to return",
|
|
146
|
+
},
|
|
108
147
|
},
|
|
109
148
|
async execute(input, ctx) {
|
|
110
149
|
const { limit } = (input ?? {});
|
|
@@ -119,15 +158,31 @@ export default function bambooHr(rl) {
|
|
|
119
158
|
rl.registerAction("employee.update", {
|
|
120
159
|
description: "Update an employee",
|
|
121
160
|
inputSchema: {
|
|
122
|
-
employeeId: {
|
|
161
|
+
employeeId: {
|
|
162
|
+
type: "string",
|
|
163
|
+
required: true,
|
|
164
|
+
description: "Employee ID",
|
|
165
|
+
},
|
|
123
166
|
firstName: { type: "string", required: false, description: "First name" },
|
|
124
167
|
lastName: { type: "string", required: false, description: "Last name" },
|
|
125
|
-
department: {
|
|
168
|
+
department: {
|
|
169
|
+
type: "string",
|
|
170
|
+
required: false,
|
|
171
|
+
description: "Department",
|
|
172
|
+
},
|
|
126
173
|
division: { type: "string", required: false, description: "Division" },
|
|
127
174
|
gender: { type: "string", required: false, description: "Gender" },
|
|
128
|
-
hireDate: {
|
|
175
|
+
hireDate: {
|
|
176
|
+
type: "string",
|
|
177
|
+
required: false,
|
|
178
|
+
description: "Hire date (YYYY-MM-DD)",
|
|
179
|
+
},
|
|
129
180
|
location: { type: "string", required: false, description: "Location" },
|
|
130
|
-
mobilePhone: {
|
|
181
|
+
mobilePhone: {
|
|
182
|
+
type: "string",
|
|
183
|
+
required: false,
|
|
184
|
+
description: "Mobile phone",
|
|
185
|
+
},
|
|
131
186
|
},
|
|
132
187
|
async execute(input, ctx) {
|
|
133
188
|
const { employeeId, ...fields } = input;
|
|
@@ -140,8 +195,16 @@ export default function bambooHr(rl) {
|
|
|
140
195
|
rl.registerAction("employeeDocument.list", {
|
|
141
196
|
description: "List documents for an employee",
|
|
142
197
|
inputSchema: {
|
|
143
|
-
employeeId: {
|
|
144
|
-
|
|
198
|
+
employeeId: {
|
|
199
|
+
type: "string",
|
|
200
|
+
required: true,
|
|
201
|
+
description: "Employee ID",
|
|
202
|
+
},
|
|
203
|
+
limit: {
|
|
204
|
+
type: "number",
|
|
205
|
+
required: false,
|
|
206
|
+
description: "Max results to return",
|
|
207
|
+
},
|
|
145
208
|
},
|
|
146
209
|
async execute(input, ctx) {
|
|
147
210
|
const { employeeId, limit } = input;
|
|
@@ -162,7 +225,11 @@ export default function bambooHr(rl) {
|
|
|
162
225
|
rl.registerAction("employeeDocument.delete", {
|
|
163
226
|
description: "Delete an employee document",
|
|
164
227
|
inputSchema: {
|
|
165
|
-
employeeId: {
|
|
228
|
+
employeeId: {
|
|
229
|
+
type: "string",
|
|
230
|
+
required: true,
|
|
231
|
+
description: "Employee ID",
|
|
232
|
+
},
|
|
166
233
|
fileId: { type: "string", required: true, description: "File ID" },
|
|
167
234
|
},
|
|
168
235
|
async execute(input, ctx) {
|
|
@@ -175,9 +242,17 @@ export default function bambooHr(rl) {
|
|
|
175
242
|
rl.registerAction("employeeDocument.update", {
|
|
176
243
|
description: "Update an employee document's metadata",
|
|
177
244
|
inputSchema: {
|
|
178
|
-
employeeId: {
|
|
245
|
+
employeeId: {
|
|
246
|
+
type: "string",
|
|
247
|
+
required: true,
|
|
248
|
+
description: "Employee ID",
|
|
249
|
+
},
|
|
179
250
|
fileId: { type: "string", required: true, description: "File ID" },
|
|
180
|
-
shareWithEmployee: {
|
|
251
|
+
shareWithEmployee: {
|
|
252
|
+
type: "boolean",
|
|
253
|
+
required: false,
|
|
254
|
+
description: "Share file with employee",
|
|
255
|
+
},
|
|
181
256
|
},
|
|
182
257
|
async execute(input, ctx) {
|
|
183
258
|
const { employeeId, fileId, shareWithEmployee } = input;
|
|
@@ -192,7 +267,11 @@ export default function bambooHr(rl) {
|
|
|
192
267
|
rl.registerAction("file.list", {
|
|
193
268
|
description: "List company files",
|
|
194
269
|
inputSchema: {
|
|
195
|
-
limit: {
|
|
270
|
+
limit: {
|
|
271
|
+
type: "number",
|
|
272
|
+
required: false,
|
|
273
|
+
description: "Max results to return",
|
|
274
|
+
},
|
|
196
275
|
},
|
|
197
276
|
async execute(input, ctx) {
|
|
198
277
|
const { limit } = (input ?? {});
|
|
@@ -225,7 +304,11 @@ export default function bambooHr(rl) {
|
|
|
225
304
|
description: "Update a company file's metadata",
|
|
226
305
|
inputSchema: {
|
|
227
306
|
fileId: { type: "string", required: true, description: "File ID" },
|
|
228
|
-
shareWithEmployee: {
|
|
307
|
+
shareWithEmployee: {
|
|
308
|
+
type: "boolean",
|
|
309
|
+
required: false,
|
|
310
|
+
description: "Share with employees",
|
|
311
|
+
},
|
|
229
312
|
},
|
|
230
313
|
async execute(input, ctx) {
|
|
231
314
|
const { fileId, shareWithEmployee } = input;
|
|
@@ -241,7 +324,11 @@ export default function bambooHr(rl) {
|
|
|
241
324
|
description: "Get a company report",
|
|
242
325
|
inputSchema: {
|
|
243
326
|
reportId: { type: "string", required: true, description: "Report ID" },
|
|
244
|
-
format: {
|
|
327
|
+
format: {
|
|
328
|
+
type: "string",
|
|
329
|
+
required: false,
|
|
330
|
+
description: "Format: JSON, CSV, XLS, XML, PDF (default: JSON)",
|
|
331
|
+
},
|
|
245
332
|
},
|
|
246
333
|
async execute(input, ctx) {
|
|
247
334
|
const { reportId, format = "JSON" } = input;
|