diff --git a/packages/nodes-base/nodes/MondayCom/BoardItemDescription.ts b/packages/nodes-base/nodes/MondayCom/BoardItemDescription.ts
index c6725279ed..9537c32521 100644
--- a/packages/nodes-base/nodes/MondayCom/BoardItemDescription.ts
+++ b/packages/nodes-base/nodes/MondayCom/BoardItemDescription.ts
@@ -15,6 +15,21 @@ export const boardItemOperations = [
},
},
options: [
+ {
+ name: 'Add Update',
+ value: 'addUpdate',
+ description: `Add an update to an item.`,
+ },
+ {
+ name: 'Change Column Value',
+ value: 'changeColumnValue',
+ description: 'Change a column value for a board item',
+ },
+ {
+ name: 'Change Multiple Column Values',
+ value: 'changeMultipleColumnValues',
+ description: 'Change multiple column values for a board item',
+ },
{
name: 'Create',
value: 'create',
@@ -48,6 +63,192 @@ export const boardItemOperations = [
export const boardItemFields = [
+/* -------------------------------------------------------------------------- */
+/* boardItem:addUpdate */
+/* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Item ID',
+ name: 'itemId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'addUpdate',
+ ],
+ },
+ },
+ description: 'The unique identifier of the item to add update to.',
+ },
+ {
+ displayName: 'Update Text',
+ name: 'value',
+ type: 'string',
+ required: true,
+ default: '',
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'addUpdate',
+ ],
+ },
+ },
+ description: 'The update text to add.',
+ },
+/* -------------------------------------------------------------------------- */
+/* boardItem:changeColumnValue */
+/* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Board ID',
+ name: 'boardId',
+ type: 'options',
+ typeOptions: {
+ loadOptionsMethod: 'getBoards',
+ },
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeColumnValue',
+ ],
+ },
+ },
+ description: 'The unique identifier of the board.',
+ },
+ {
+ displayName: 'Item ID',
+ name: 'itemId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeColumnValue',
+ ],
+ },
+ },
+ description: 'The unique identifier of the item to to change column of.',
+ },
+ {
+ displayName: 'Column ID',
+ name: 'columnId',
+ type: 'options',
+ typeOptions: {
+ loadOptionsMethod: 'getColumns',
+ loadOptionsDependsOn: [
+ 'boardId'
+ ],
+ },
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeColumnValue',
+ ],
+ },
+ },
+ description: `The column's unique identifier.`,
+ },
+ {
+ displayName: 'Value',
+ name: 'value',
+ type: 'json',
+ required: true,
+ default: '',
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeColumnValue',
+ ],
+ },
+ },
+ description: 'The column value in JSON format. Documentation can be found here.',
+ },
+/* -------------------------------------------------------------------------- */
+/* boardItem:changeMultipleColumnValues */
+/* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Board ID',
+ name: 'boardId',
+ type: 'options',
+ typeOptions: {
+ loadOptionsMethod: 'getBoards',
+ },
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeMultipleColumnValues',
+ ],
+ },
+ },
+ description: 'The unique identifier of the board.',
+ },
+ {
+ displayName: 'Item ID',
+ name: 'itemId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeMultipleColumnValues',
+ ],
+ },
+ },
+ description: `Item's ID`
+ },
+ {
+ displayName: 'Column Values',
+ name: 'columnValues',
+ type: 'json',
+ required: true,
+ default: '',
+ displayOptions: {
+ show: {
+ resource: [
+ 'boardItem',
+ ],
+ operation: [
+ 'changeMultipleColumnValues',
+ ],
+ },
+ },
+ description: 'The column fields and values in JSON format. Documentation can be found here.',
+ typeOptions: {
+ alwaysOpenEditWindow: true,
+ },
+ },
/* -------------------------------------------------------------------------- */
/* boardItem:create */
/* -------------------------------------------------------------------------- */
diff --git a/packages/nodes-base/nodes/MondayCom/MondayCom.node.ts b/packages/nodes-base/nodes/MondayCom/MondayCom.node.ts
index f8e538e5cb..5dc7457081 100644
--- a/packages/nodes-base/nodes/MondayCom/MondayCom.node.ts
+++ b/packages/nodes-base/nodes/MondayCom/MondayCom.node.ts
@@ -455,6 +455,84 @@ export class MondayCom implements INodeType {
}
}
if (resource === 'boardItem') {
+ if (operation === 'addUpdate') {
+ const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
+ const value = this.getNodeParameter('value', i) as string;
+
+ const body: IGraphqlBody = {
+ query:
+ `mutation ($itemId: Int!, $value: String!) {
+ create_update (item_id: $itemId, body: $value) {
+ id
+ }
+ }`,
+ variables: {
+ itemId,
+ value,
+ },
+ };
+
+ responseData = await mondayComApiRequest.call(this, body);
+ responseData = responseData.data.create_update;
+ }
+ if (operation === 'changeColumnValue') {
+ const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
+ const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
+ const columnId = this.getNodeParameter('columnId', i) as string;
+ const value = this.getNodeParameter('value', i) as string;
+
+ const body: IGraphqlBody = {
+ query:
+ `mutation ($boardId: Int!, $itemId: Int!, $columnId: String!, $value: JSON!) {
+ change_column_value (board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) {
+ id
+ }
+ }`,
+ variables: {
+ boardId,
+ itemId,
+ columnId,
+ },
+ };
+
+ try {
+ JSON.parse(value);
+ } catch (e) {
+ throw new Error('Custom Values must be a valid JSON');
+ }
+ body.variables.value = JSON.stringify(JSON.parse(value));
+
+ responseData = await mondayComApiRequest.call(this, body);
+ responseData = responseData.data.change_column_value;
+ }
+ if (operation === 'changeMultipleColumnValues') {
+ const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
+ const itemId = parseInt((this.getNodeParameter('itemId', i) as string), 10);
+ const columnValues = this.getNodeParameter('columnValues', i) as string;
+
+ const body: IGraphqlBody = {
+ query:
+ `mutation ($boardId: Int!, $itemId: Int!, $columnValues: JSON!) {
+ change_multiple_column_values (board_id: $boardId, item_id: $itemId, column_values: $columnValues) {
+ id
+ }
+ }`,
+ variables: {
+ boardId,
+ itemId,
+ },
+ };
+
+ try {
+ JSON.parse(columnValues);
+ } catch (e) {
+ throw new Error('Custom Values must be a valid JSON');
+ }
+ body.variables.columnValues = JSON.stringify(JSON.parse(columnValues));
+
+ responseData = await mondayComApiRequest.call(this, body);
+ responseData = responseData.data.change_multiple_column_values;
+ }
if (operation === 'create') {
const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
const groupId = this.getNodeParameter('groupId', i) as string;