Custom Values must be a valid JSON” error when using AI Agent with Monday.com (Connected Board column)

Hey everyone,

I’m new to n8n trying to build an AI-powered workflow where an AI Agent (Azure GPT-4o) uses the tool to automatically update items in a board.

Originally, the idea was for the user to manually choose which Clients to link to each Offer — that’s why I created a Connected Board column (“Clienti”) in the Offers board, linked to the Clients board.

Now, the requirement has changed: I need to automatically link all Clients to all Offers. I thought n8n would be a great way to automate this, but I’ve hit a wall with the Monday.com tool.

Here’s the setup:

  • I have two Monday boards — one for Clients and one for Offers.

  • The Offers board has the “Clienti” column (Connected Board).

  • The workflow uses two nodes: one that gets all Clients (getAll: boardItem) and another that gets all Offers (getAll: boardItem).

  • The AI Agent should combine these and update the “Clienti” column of each Offer with all the Clients.

However, when the AI Agent tries to send the update to Monday via the tool, I keep getting this error:

Custom Values must be a valid JSON

I’ve tried multiple output formats (arrays, objects, JSON strings, escaped quotes, etc.), but Monday keeps rejecting the input.
I assume the Connected Board column expects a very specific JSON schema — does anyone know what that format should look like for this case?

Thanks a lot in advance, I’ve been stuck on this for a while and would really appreciate an example or a hint!

Matt

1 Like

Welcome to the n8n community @CySalazar!

I would try to simplify the process first by creating a new workflow that only has a manual trigger and the Monday.com node to update the column value. I don’t have any experience with Monday.com, but looking at their documentation they use GraphQL in their API. This is what the Monday.com nodes in n8n will also use.

I would ask ChatGPT/Gemini/etc. something like this: “I have two Monday boards — one for Clients and one for Offers. The Offers board has a “Clienti” column which is a Connected Board. Now I want to update an item on the offer board so that it is connected to another item on the Clients in n8n.”

Here’s the response I got from Gemini:

Updating a Connected Board column in monday.com using **n8n** requires using the **Monday.com node** with the **"Change multiple column values for a board item"** operation and providing the connected item's ID in a specific JSON format.

Here is the general process and the JSON structure you'll need:

## ⚙️ N8N Workflow Steps

1.  **Find the Item to Update:** Your workflow must first **retrieve the Item ID** of the item on the **Offers board** that you want to update (the item with the "Clienti" column).
2.  **Get the Client Item ID:** You must also have the **Item ID** of the specific client on the **Clients board** that you want to connect to.
3.  **Use the Monday.com Node:** Add the Monday.com node to your workflow.
      * **Resource:** Select **Board Item**.
      * **Operation:** Select **Change multiple column values for a board item**.
4.  **Configure Parameters:**
      * **Board ID:** Map or enter the Board ID of your **Offers board**.
      * **Item ID:** Map or enter the Item ID of the item you are updating on the **Offers board**.
      * **Column Values (JSON):** This is the crucial part. You need to provide the column ID of your "Clienti" connected board column and the ID of the Client item to connect it to, all in a specific JSON structure.

-----

## 📝 Connected Board Column JSON

The `Column Values` field in the Monday.com node needs to be a **JSON string** that specifies the column ID and the Item IDs to link.

The required format is:

```json
{
  "YOUR_CONNECT_COLUMN_ID": {
    "item_ids": [
      "CLIENT_ITEM_ID"
    ]
  }
}
```

  * **`YOUR_CONNECT_COLUMN_ID`**: Replace this with the actual **Column ID** of your "Clienti" Connected Board column on the Offers board.
      * *Tip:* You can get the column ID from the monday.com API documentation or by temporarily fetching the item's data using a "Get an item" operation in n8n.
  * **`CLIENT_ITEM_ID`**: Replace this with the **Item ID** of the client on the Clients board that you want to link. This will likely be a variable or expression from a previous node in your n8n workflow (e.g., `{{$json.clientItemId}}`).

### **Example n8n Expression**

If your "Clienti" column ID is `connect_boards4` and your client item ID is stored in a variable `client_id`, the expression in the **Column Values** field would look something like this:

```json
{
  "connect_boards4": {
    "item_ids": [
      "{{$json.client_id}}"
    ]
  }
}
```

**Note:** If your Connected Board column allows multiple connections, and you want to **add** a connection instead of overriding existing ones, you'll typically need to use the `change_multiple_column_values` mutation directly via the **Execute GraphQL** operation in n8n, as the standard node might overwrite the current value. However, the JSON structure above is the standard for setting the connection.

Would you like me to help you find the **Column ID** of your "Clienti" connected board column?In my case I got a quite detailed explanation for how to do it. The suggestion was to use “Change Multiple Column Values” instead of the one that you use (“Change Column Value”).