Bypass the 100-Item Limit in Zapier and Monday.com
The Advanced Use-Case: High-Volume Board Synchronization
Section titled “The Advanced Use-Case: High-Volume Board Synchronization”When building enterprise-grade automations, the standard Zapier integration for Monday.com often hits a wall. A common scenario involves a “Batch Processing” workflow: every night, you need to find all items on a “Project Tracker” board where the Status is “Completed” to move them to an “Archive” board or generate a PDF report.
The standard Zapier action Get Items by Column Value has a hard limit: it only returns the first 100 items matching your criteria. If your board contains 150 completed projects, 50 of them will be ignored, leading to data silos and broken reporting.
The “Aha!” Solution: Leveraging Monday’s GraphQL API
Section titled “The “Aha!” Solution: Leveraging Monday’s GraphQL API”To bypass the 100-item constraint, you must shift from the standard UI-based search to the Monday.com API Request (Beta) action in Zapier. This allows you to interface directly with Monday’s GraphQL schema.
By utilizing the items_page_by_column_values query, you gain control over the limit parameter and, more importantly, the cursor. This enables you to retrieve up to 500 items in a single request or chain requests to process thousands of items without data loss.
Step-by-Step Implementation
Section titled “Step-by-Step Implementation”1. Configure the API Request Action
Section titled “1. Configure the API Request Action”Instead of choosing “Get Items by Column Value,” select the following:
- App: Monday.com
- Action: API Request (Beta)
- HTTP Method: POST
- URL:
https://api.monday.com/v2
2. Construct the GraphQL Query
Section titled “2. Construct the GraphQL Query”In the Body field, you must provide a JSON structure containing a GraphQL query. This query targets specific column values while allowing for a higher object limit than the standard integration.
JSON Data Structure:
{ "query": "{ items_page_by_column_values (board_id: 12345678, columns: [{column_id: \"status\", column_values: [\"Done\"]}], limit: 500) { cursor items { id name column_values { id text } } } }"}3. Map the Comparison
Section titled “3. Map the Comparison”Use the table below to determine which parameters to swap in the JSON structure above:
| Parameter | Source in Monday.com | Description |
|---|---|---|
| board_id | Browser URL | The numerical ID found in the board’s URL. |
| column_id | Column Settings > Developer Info | The internal ID (e.g., status, numbers7). |
| column_values | Label Text | The exact string you are searching for (e.g., “Active”). |
| limit | N/A | Set this up to 500 to maximize single-step retrieval. |
4. Handling the “Cursor” for >500 Items
Section titled “4. Handling the “Cursor” for >500 Items”If your dataset exceeds 500 items, the API response will include a cursor string. To retrieve the next batch:
- Add a Paths by Zapier or Loop by Zapier step.
- Perform a second API Request using the
cursorinstead of theboard_id.
JSON Structure for Cursor Query:
{ "query": "{ next_items_page (cursor: \"YOUR_CURSOR_STRING_HERE\") { cursor items { id name } } }"}5. Parsing the Output
Section titled “5. Parsing the Output”Zapier’s API Request tool returns a raw JSON object. To use these items in subsequent steps (like “Update Spreadsheet Row”), you will need to pass the body.data.items_page_by_column_values.items array into a Looping by Zapier step. This will iterate through every item found, regardless of whether there were 10 or 500.
Edge Cases & Limitations
Section titled “Edge Cases & Limitations”- Complexity Limits: Monday.com uses a “Complexity Score” system. Querying 500 items with nested
column_valuesandsubitemsmight exceed your complexity budget (usually 10,000,000 per minute). If the request fails, reduce thelimitto 250. - Column Support: The
items_page_by_column_valuesquery works best with Status, Dropdown, and Text columns. It does not support searching by “Location” or “Dependency” columns directly. - Rate Limiting: Zapier’s task history will show one “Task” for the API call, but if you use a “Looping” step afterwards, every item processed will consume one Task. Plan your Zapier task quota accordingly.
- Formatting: Ensure you escape double quotes inside the JSON body (e.g.,
\"status\") to avoid syntax errors in the Zapier editor.