I am trying to update a column date value anytime any changes occur in any columns of the groups subitem. When I make any change it runs via the webhook “when any column changes.” And it is linked to the ScriptRunner. Same result API key or not.
import { UpdateSubitemColumnValueEvent } from ‘@sr-connect/monday/events’;
import Monday from “./api/monday”;
// Define the constants for the script
const WORKSPACE_ID = “Design Phase”;
const BOARD_ID = “Active Projects”;
const COLUMN_NAME = “Date Last”;
/**
Entry point to when “any subitem column changes” event is triggered
@param event Object that holds When any subitem column changes event data
@param context Object that holds function invocation context data
*/
export default async function (event: UpdateSubitemColumnValueEvent, context: Context): Promise {
if (context.triggerType === ‘MANUAL’) {
console.error(‘This script is designed to be triggered externally or manually from the Event Listener. Please consider using Event Listener Test Event Payload if you need to trigger this script manually.’);
return;
}
try {
// Extract necessary parameters from the event
const { parentItemId } = event.event;
// Function to update the "Date Last" column for an item to today's date
const updateDateLast = async (itemId: string) => {
try {
const today = new Date().toISOString().split('T') 0];
// Construct the mutation query to update the "Date Last" column
const query = `
mutation {
change_column_value (board_id: "${BOARD_ID}", item_id: "${itemId}", column_id: "${COLUMN_NAME}", value: "${today}") {
id
}
}
`;
// Execute the mutation query to update the column value
const response = await fetch('https://api.monday.com/v2', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({ query })
});
const data = await response.json();
console.log(`"Date Last" column updated for item ${itemId} to ${today}`);
} catch (error) {
console.error('Error updating column:', error);
}
};
// Update the "Date Last" column for the affected item
await updateDateLast(parentItemId);
} catch (error) {
console.error(‘Error handling subitem column updates:’, error);
}
}