DEV Community

Rahul Sharma
Rahul Sharma

Posted on

CF7 to Monday.com Item Not Appearing in Board: A Complete Troubleshooting Guide

You have connected Contact Form 7 to Monday.com through a connector plugin. The API logs show a successful 200 OK response. The item ID is returned. Everything looks correct.

But when you open the board in Monday.com, the item is not there.

This is one of the most confusing integration failures because the API tells you it succeeded. The request was valid. The item was created. But it is invisible to you.

This guide explains exactly why this happens and how to fix it.

Why Monday.com Says "Success" When the Item Is Invisible

Monday.com's API creates items at the account level, not at the board level. The create_item mutation accepts a board_id and returns the created item's ID and URL. But the item's visibility depends on two factors that the API response does not validate:

Permission scope of the API token. If the API token belongs to a user who does not have access to the board, or if the token's permissions are limited, the item is created but is not visible to anyone viewing the board through a different user account.

Column ID and value format. If the columnValues payload contains incorrect column IDs or value formats, Monday may accept the request but silently ignore the column values, creating an item with empty fields that does not appear in filtered views.

The first is the most common cause. A Monday.com community response confirmed this directly: "The solution was a permission issue. The API key used wasn't from the same user which I was using to view the board. The solution is to add permissions or create an API Key from the user I want to see the items."

Failure #1: The API Token Belongs to a Different User

What you see: The API returns a successful response with an item ID. The item URL works when accessed directly. But the board view does not show the item.

Why it happens: Monday.com's API token is tied to a specific user account. If you generated the token from User A, but you are viewing the board as User B, and User B does not have permission to see items created by User A, the item is invisible in your view. This is not a bug. It is how Monday's permission model works.

The fix:

Option A: Generate the API token from the user who will view the board. If your team views the board as admin@company.com, generate the API token while logged in as admin@company.com. This ensures the item is created under the same account context.

Option B: Grant the token's user access to the board. If you must use a service account token, add that service account as a board member with edit permissions. Navigate to the board, click "Invite," and add the user associated with the API token.

How to verify: After generating a new token from the correct user, submit a test form. Check the board while logged in as that same user. The item should appear.

If no request appears in the plugin's logs at all, the problem is earlier in the pipeline. For a deeper breakdown of that scenario, see this guide on Contact Form 7 data not reaching the API.

Failure #2: The Column IDs in the Payload Are Wrong

What you see: The item appears in the board, but all column values are empty. Or the item is created in the wrong group and does not appear in the filtered view you are checking.

Why it happens: Monday's create_item mutation requires column IDs, not column display names. If your payload uses "status": {"label": "Done"} but the actual column ID is "status_mm37gbqg", Monday ignores the value.

The same applies to group IDs. If you do not specify a group_id, the item goes to the board's top group. If you are checking a different group, the item appears to be missing.

The fix:

Step 1: Retrieve the correct column IDs. Use Monday's get_board_info tool or query the board via GraphQL to list all columns and their IDs. The column ID is not the same as the column title.

Step 2: Update your JSON payload. For a status column, the format is:

{
  "status_mm37gbqg": {
    "label": "Working on it"
  }
}
Enter fullscreen mode Exit fullscreen mode

For a text column, the format is a plain string:

{
  "text_col": "Hello"
}
Enter fullscreen mode Exit fullscreen mode

For a date column:

{
  "date_col": {
    "date": "2024-05-10"
  }
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Specify the group ID if needed. If you want the item in a specific group, add groupId to your payload. Otherwise, it goes to the top group.

For a deeper dive into JSON structure mapping and column value formatting, read this guide on Contact Form 7 JSON mapping.

Failure #3: The Payload Structure Is Wrong for Monday's GraphQL API

What you see: Monday returns a 400 Bad Request error, or the item is created with no name and no column values.

Why it happens: Monday.com uses GraphQL, not REST. The connector plugin may be configured to send a REST-style JSON body, which Monday's API does not accept. The create_item mutation expects a specific GraphQL structure.

The fix:

Monday's GraphQL create_item mutation requires three parameters at minimum:

  • board_id: The numeric ID of the board
  • item_name: The name of the item (a plain string)
  • column_values: A JSON string containing column ID to value mappings

Your payload sent through the plugin should be structured as a GraphQL query. If your connector plugin supports raw JSON payloads, the body must include the query and variables fields:

{
  "query": "mutation ($boardId: ID!, $itemName: String!, $columnValues: JSON) { create_item(board_id: $boardId, item_name: $itemName, column_values: $columnValues) { id } }",
  "variables": {
    "boardId": 18412502536,
    "itemName": "[your-name] - Website Inquiry",
    "columnValues": "{\"status_mm37gbqg\": {\"label\": \"New\"}}"
  }
}
Enter fullscreen mode Exit fullscreen mode

Critical detail: The columnValues parameter is a JSON string nested inside the GraphQL variables. This "JSON-in-JSON" pattern is specific to Monday's API and is the source of many payload errors.

If your connector plugin does not support GraphQL queries, you may need to use a plugin that does, or configure a middleware service to translate the request.

Failure #4: The Board ID Is Wrong or the Token Lacks Board Access

What you see: Monday returns a 404 Not Found error, or a 403 Forbidden error. No item is created.

Why it happens: The board_id in your payload must be the numeric ID of the target board. If you use the board's URL slug instead of its ID, the request fails. Additionally, the API token must have access to that specific board.

The fix:

Step 1: Get the correct board ID. Open the board in Monday.com. The URL contains the board ID: https://yourcompany.monday.com/boards/18412502536. The numeric portion is the board ID.

Step 2: Verify token access. In Monday.com, navigate to the board and check the board's members. The user associated with the API token must be listed as a member with at least edit permissions.

Step 3: Test with a minimal payload. Hardcode the board_id and item_name values. Submit a test form. If the item appears, the issue is column values or permissions. If it still fails, the token or board ID is wrong.

For a comprehensive breakdown of API authentication errors and how they appear in logs, see this guide on Contact Form 7 API authentication errors.

The Debugging Checklist

Step Action What It Reveals
1 Check the plugin's API Logs Was a request sent? What response code and body?
2 Verify the API token's user Is it the same user viewing the board?
3 Check board membership Is the token's user a member of the board?
4 Verify column IDs Are they the IDs from get_board_info, not display names?
5 Check the payload structure Is it a GraphQL query, not a REST body?
6 Test with minimal payload Hardcode board_id and item_name only

Beyond the Board: One Form, Multiple Destinations

Once your Monday.com integration works, you might want to send the same submission to other tools: a CRM, an email marketing platform, or a help desk system.

A good connector plugin supports multiple API integrations from a single form submission. You can create a Monday item, add a HubSpot contact, and send an SMS via Twilio, all from one CF7 submission. For a cost comparison, see this article on Zapier vs a dedicated API plugin.

Key Takeaways

The API can return success while the item is invisible. Monday's create_item response does not validate visibility. The item is created at the account level, and its visibility depends on the API token's user permissions.

Generate the API token from the user who views the board. If your team views the board as admin@company.com, create the token while logged in as that user.

Column IDs must be exact. Use get_board_info to retrieve the correct IDs. Display names do not work.

Monday uses GraphQL, not REST. The payload must be a GraphQL query with columnValues as a JSON string nested inside the variables.

Start with a minimal payload. Hardcode board_id and item_name. Once the item appears, add column values one at a time.

With the correct API token, verified board permissions, and a properly structured GraphQL payload, your CF7 submissions will create visible items in your Monday.com board reliably.

Top comments (0)