skills/community/monday/SKILL.md
Monday.com: boards, items, columns, automations, integrations, dashboards, timeline, API
npx skillsauth add alphaonedev/openclaw-graph mondayInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables interaction with Monday.com's API for managing boards, items, columns, automations, integrations, dashboards, and timelines. Use it to automate project management tasks, query data, or integrate with other tools via the API.
Always initialize with authentication using the $MONDAY_API_KEY environment variable. Make API requests via HTTP clients like requests in Python. Structure calls as JSON payloads with required fields. For example, wrap API calls in try-except blocks for error handling. Use rate limiting by checking Monday.com's API docs for thresholds (e.g., 100 requests/min). Common pattern: Authenticate once, then chain multiple API calls in a session.
Use Monday.com's REST API with base URL https://api.monday.com/v2. Set the Authorization header with Authorization: YOUR_API_KEY. Here's how to query boards:
Endpoint: GET /v2/boards
Code snippet:
import requests
headers = {'Authorization': os.environ['MONDAY_API_KEY']}
response = requests.get('https://api.monday.com/v2/boards', headers=headers)
print(response.json())
To create an item on a board:
Endpoint: POST /v2/pulses
Payload: {"query": 'mutation { create_item (board_id: 123456, item_name: "New Task") { id } }'}
Code snippet:
import requests
headers = {'Authorization': os.environ['MONDAY_API_KEY'], 'Content-Type': 'application/json'}
data = {"query": 'mutation { create_item (board_id: 123456, item_name: "New Task") { id } }'}
response = requests.post('https://api.monday.com/v2', headers=headers, json=data)
print(response.json()['data']['create_item']['id'])
For updating a column:
Endpoint: POST /v2
Query: mutation { change_column_value (board_id: 123456, item_id: 654321, column_id: "status", value: ""Done"") { id } }
Use flags like board_id and item_id in queries for specificity.
Store your API key in $MONDAY_API_KEY for secure access; never hardcode it. Integrate with other tools by setting up webhooks (e.g., POST to a custom endpoint on item creation). For OAuth, use Monday.com's flow if needed, but API key suffices for most CLI/API uses. Config format: JSON for payloads, e.g., {"query": "your_graphql_query"}. When integrating with services like Zapier, reference Monday.com's webhook events (e.g., "item_created"). Ensure your app handles CORS if building a web interface.
Check response status codes: 200 for success, 401 for unauthorized (verify $MONDAY_API_KEY), 429 for rate limit (add retry logic with exponential backoff). Parse JSON errors for details, e.g., if "errors" key exists, log the message like "Invalid board_id". Use try-except in code:
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"Error: {err.response.status_code} - {err.response.json()['errors']}")
Handle common issues like invalid IDs by validating inputs before API calls.
$MONDAY_API_KEY. Use the POST /v2 endpoint to create a board: mutation { create_board (board_name: "My Project") { id } }. Then, add an item: mutation { create_item (board_id: <new_board_id>, item_name: "Task 1") { id } }. This automates board setup for a new project.limit=50. Then, update a status column: mutation { change_column_value (board_id: 123456, item_id: 654321, column_id: "status", value: "\"In Progress\"") }. Useful for daily status updates in automations.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui