diff --git a/packages/backend/src/apps/monday/actions/create-board/index.js b/packages/backend/src/apps/monday/actions/create-board/index.js
new file mode 100644
index 00000000..2afd0d85
--- /dev/null
+++ b/packages/backend/src/apps/monday/actions/create-board/index.js
@@ -0,0 +1,70 @@
+import defineAction from '../../../../helpers/define-action.js';
+
+export default defineAction({
+ name: 'Create board',
+ key: 'createBoard',
+ description: 'Creates a new board.',
+ arguments: [
+ {
+ label: 'Board Name',
+ key: 'boardName',
+ type: 'string',
+ required: true,
+ description: 'Title for the board.',
+ variables: true,
+ },
+ {
+ label: 'Board Kind',
+ key: 'boardKind',
+ type: 'dropdown',
+ required: true,
+ description: '',
+ variables: true,
+ options: [
+ {
+ label: 'Main',
+ value: 'public',
+ },
+ {
+ label: 'Private',
+ value: 'private',
+ },
+ {
+ label: 'Shareable',
+ value: 'share',
+ },
+ ],
+ },
+ {
+ label: 'Template ID',
+ key: 'templateId',
+ type: 'string',
+ required: false,
+ description:
+ "When you switch on developer mode, you'll spot the template IDs in your template store. Additionally, you have the option to utilize the Board ID from any board you've saved as a template.",
+ variables: true,
+ },
+ ],
+
+ async run($) {
+ const { boardName, boardKind, templateId } = $.step.parameters;
+
+ const body = {
+ query: `mutation {
+ create_board (board_name: "${boardName}", board_kind: ${boardKind}${
+ templateId ? `, template_id: ${templateId}` : ''
+ }) {
+ id
+ name
+ board_kind
+ }
+ }`,
+ };
+
+ const { data } = await $.http.post('/', body);
+
+ $.setActionItem({
+ raw: data,
+ });
+ },
+});
diff --git a/packages/backend/src/apps/monday/actions/index.js b/packages/backend/src/apps/monday/actions/index.js
new file mode 100644
index 00000000..b0e55486
--- /dev/null
+++ b/packages/backend/src/apps/monday/actions/index.js
@@ -0,0 +1,3 @@
+import createBoard from './create-board/index.js';
+
+export default [createBoard];
diff --git a/packages/backend/src/apps/monday/index.js b/packages/backend/src/apps/monday/index.js
index 556f9930..c193e10d 100644
--- a/packages/backend/src/apps/monday/index.js
+++ b/packages/backend/src/apps/monday/index.js
@@ -2,6 +2,7 @@ import defineApp from '../../helpers/define-app.js';
import addAuthHeader from './common/add-auth-header.js';
import auth from './auth/index.js';
import triggers from './triggers/index.js';
+import actions from './actions/index.js';
export default defineApp({
name: 'Monday',
@@ -15,4 +16,5 @@ export default defineApp({
beforeRequest: [addAuthHeader],
auth,
triggers,
+ actions,
});
diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js
index c63ccbb6..aada214b 100644
--- a/packages/docs/pages/.vitepress/config.js
+++ b/packages/docs/pages/.vitepress/config.js
@@ -345,6 +345,7 @@ export default defineConfig({
collapsible: true,
collapsed: true,
items: [
+ { text: 'Actions', link: '/apps/monday/actions' },
{ text: 'Triggers', link: '/apps/monday/triggers' },
{ text: 'Connection', link: '/apps/monday/connection' },
],
diff --git a/packages/docs/pages/apps/monday/actions.md b/packages/docs/pages/apps/monday/actions.md
new file mode 100644
index 00000000..de3ef6ca
--- /dev/null
+++ b/packages/docs/pages/apps/monday/actions.md
@@ -0,0 +1,12 @@
+---
+favicon: /favicons/monday.svg
+items:
+ - name: Create board
+ desc: Creates a new board.
+---
+
+
+
+