Monday.com
Connect Monday.com work-management boards to Nexus over GraphQL with read and write. Filters and ordering push down to Monday's native ItemsQuery rules; aggregation runs in the Nexus engine, and computed columns are non-writable.
The Monday.com connector (bundle version 2.0.6) lets you read from and write to Monday work-management boards through Nexus's standard query and pipeline interfaces. It talks directly to the Monday GraphQL API, translating UQL queries into typed GraphQL operations without ever pulling all board data into your tenant first.
This page is for engineers integrating Monday boards. It covers how boards and groups map to Nexus concepts, the exact operator set (which differs from the SQL adapters — it adds $not_contains/$not_empty and lacks $in/$expr), the filter-and-order pushdown boundary with in-engine aggregation, write semantics including which column types are silently non-writable, and the current pagination and rate-limit constraints.
The pushdown boundary, up front
Monday's GraphQL API can filter and order via ItemsQuery rules but has no aggregation surface. The adapter therefore declares filter and order pushdown only:
- Your
WHEREconditions translate toItemsQueryrules and your ordering to Monday's sort — both evaluated by Monday. GROUP BYand aggregate expressions are evaluated by the Nexus engine after items are fetched, bounded by the post-process row budget.- Design queries to filter to the smallest useful row set before aggregating.
How Monday data maps to Nexus concepts
| Nexus concept | Monday concept |
|---|---|
| Container | Board ID |
| Collection | Group ID (optional) |
| Row | Item (flattened to key/value columns) |
When you specify a collection, the connector passes it as a group filter in the ItemsQuery. If you omit the collection, the query runs board-wide. Subitems are not exposed as a separate collection and are not included in query results.
Authentication
The connector authenticates with a Monday personal or account API token, stored in your tenant Key Vault and never embedded in pipelines or query definitions.
| Secret key | Required | Notes |
|---|---|---|
monday.api_key |
Yes | Personal or account API token |
monday.api_version |
No | Defaults to 2026-01 |
The token is sent as a raw Authorization header value with no Bearer prefix, which is the format Monday's API requires. See Secrets for storage and rotation.
Capabilities
| Capability | Supported |
|---|---|
| Read | Yes |
| Write (insert / update / delete) | Yes |
| Merge (upsert) | No |
| Schema discovery | Yes |
WHERE filter pushdown |
Yes — translates to ItemsQuery rules |
| Order-by pushdown | Yes |
Aggregation / GROUP BY pushdown |
No — aggregate in the Nexus engine |
Supported filter operators
Filters in your UQL WHERE clause are translated to Monday ItemsQuery rules. The operator set differs from the SQL-backed adapters — it adds $not_contains and $not_empty, and omits $in, $not_in, $like, and $expr.
| UQL operator | Monday rule operator | Notes |
|---|---|---|
$eq |
any_of |
|
$ne |
not_any_of |
|
$gt |
greater_than |
|
$gte |
greater_than_or_equal |
|
$lt |
lower_than |
|
$lte |
lower_than_or_equals |
|
$contains |
contains_text |
|
$not_contains |
not_contains_text |
|
$starts_with |
starts_with |
|
$ends_with |
ends_with |
|
$empty |
is_empty |
No compare value needed |
$not_empty |
is_not_empty |
No compare value needed |
$between |
between |
Pass a [low, high] pair |
Operators not listed — including $in, $not_in, $like, and $expr — are not supported by this connector. Using an unsupported operator raises an error at query time rather than silently ignoring the filter. Multiple WHERE conditions are combined with an AND rule operator in the resulting ItemsQuery.
Write operations
The connector supports insert, update, and delete. There is no upsert (merge).
- Insert maps record keys to Monday column IDs and creates an item via the
create_itemmutation. - Update applies column-value changes to an existing item via
change_multiple_column_values. - Delete removes an item via
delete_item.
Non-writable (computed) columns are skipped
Column types that Monday treats as computed or system-managed are non-writable and are automatically skipped during insert and update. These include formula, auto_number, lookup, creation_log, last_updated, item_id_column, subtasks, button, and dependency. Attempts to write to these column types are silently dropped rather than raising an error — a formula or lookup value is derived by Monday, so Nexus never tries to set it. Plan your writes around the mutable columns; if a value you expected to change did not, confirm it is not one of these computed types.
This writability gate is a per-adapter control, layered beneath the tenant RBAC that governs whether the caller may write at all.
Using the connector in a pipeline
A pipeline reading from a Monday board, aggregating in-engine, and staging to the workspace:
async def run(ctx):
# Read items from a board, filtered to a status column (pushed to ItemsQuery)
items = await ctx.read(
bridge="monday-production",
containers=["1234567890"], # board ID
collection="group_abc123", # optional group ID
where={"status": {"$eq": "In Progress"}},
limit=200,
)
# Aggregate in-engine (pushdown not available on Monday)
by_owner = {}
for item in items.rows:
owner = item.get("owner") or "unassigned"
by_owner[owner] = by_owner.get(owner, 0) + 1
await ctx.workspace.upsert("monday_owner_summary", list(by_owner.items()))
ctx.logger.info("Processed %d items", len(items.rows))
No raw credentials appear in the pipeline — the connector resolves the API key from Key Vault at runtime.
Schema discovery
The discover operation enumerates all boards visible to the configured API token, along with their groups and column definitions. Use it to inspect column IDs — needed when mapping field names to write operations — without consulting the Monday interface directly.
Limits & behavior notes
- Single-page fetch. The connector issues a single request per query up to the configured limit (default 500 items per request). Cursor-based pagination across boards with more items than the per-request limit is not yet handled — a query that would return more rows than the limit is silently truncated to the limit. For large boards, filter server-side to stay within one page.
- Subitems are invisible. Subitems are not exposed and are not included in read or discover results.
- Complexity/rate limits are Monday's. Monday's GraphQL API enforces per-call and rolling complexity budgets. The connector does not currently track or back off on complexity consumption; boards with many columns or large result sets can hit rate-limit errors during heavy use.
- Computed writes are silent no-ops. As above — writes to
formula/lookup/etc. are dropped without error. - No
$in/$expr. If you need set membership or raw expressions, filter in-engine after a broader board query, or restructure the board filter.
For boards that fit within a single page, this connector is production-ready for both read and write workloads.
See also
- Connectors overview — the shared adapter contract and capability matrix
- Operators & pushdown reference — how filter/aggregation pushdown is decided
- Secrets · Connections & bridges
- Built-in workspace — stage board data for cross-system reporting
- Pipeline SDK