# How to send leads to monday CRM with the API

> monday CRM uses a GraphQL API. Create an item on your leads board for each website enquiry and add the details as an update. Token, board ID and queries.

Source: https://roughfigure.com/blog/send-leads-to-monday-crm (updated 2026-11-11)

To send leads to monday CRM, copy your **API token** from **Developers**, find your leads **board ID** in the board’s web address, and send a GraphQL `create_item` mutation to `https://api.monday.com/v2` for each lead. Add the job details with a second `create_update` call, so they’re on the item for anyone who picks it up.

## Get your token and board ID

1. In monday.com, click your profile picture, choose **Developers**, then **API token → Show**, and copy it.
2. Open your leads board. The long number at the end of its web address is the board ID.

## Create the item

monday’s API is GraphQL: one address, and you say what you want in the request body.

```http
POST https://api.monday.com/v2
Authorization: <your API token>
Content-Type: application/json

{
  "query": "mutation($board: ID!, $name: String!) { create_item(board_id: $board, item_name: $name) { id } }",
  "variables": { "board": "1234567890", "name": "Emma Hughes" }
}
```

## Add the details as an update

```json
{
  "query": "mutation($item: ID!, $body: String!) { create_update(item_id: $item, body: $body) { id } }",
  "variables": {
    "item": "9876543210",
    "body": "Patio cleaning, about 40 m². Estimate £280–£360. Phone +447700900111."
  }
}
```

An update is the easiest way to get everything in front of your team without matching every column. If you do want columns filled (email, phone, status), pass `column_values` on `create_item` as a JSON string keyed by each column’s ID.

## monday reports errors in a 200

Unlike most APIs, monday often replies with status 200 and an `errors` array when something’s wrong, such as a board ID you can’t reach. Check the body, not just the status, or you’ll think leads arrived when they didn’t.

## Also watch for

- **Complexity limits.** monday budgets API usage by query complexity. One lead at a time is well inside it.
- **Retries after the item exists.** If creating the item worked but adding the update failed, don’t retry the whole thing, or you’ll get two items for one customer.

## Doing it in RoughFigure

In RoughFigure we’ve built monday CRM in as a direct connection. Choose **monday CRM** under **Integrations → Send leads to your CRM**, paste your API token and board ID, and click **Connect**. We check we can see the board, then every lead arrives as an item named after the customer, with their answers, contact details and price range in an update. [See the monday CRM integration](https://roughfigure.com/integrations/monday-crm).

## Questions

### Does this work with ordinary monday.com boards, not just monday CRM?

Yes. The API is the same for any board you can see. monday CRM just comes with boards set up for leads and deals.

### Where do I find a column’s ID?

Turn on **Developer mode** in monday’s **Monday Labs**, and column IDs show in each column’s menu.

### Can I put the lead into a group like “New leads”?

Yes. Add `group_id` to `create_item`. The group ID is in the group’s menu when developer mode is on.
