Create new item w/ column values not working

I’m trying to understand basic item creation. I can create a new item successfully with a name but when I try to add additional column content I get errors.

  monday.api(
    `mutation {
        create_item (
          board_id: ${myBoardId}, 
          group_id: "new_group", 
          item_name: "new item creation",
          column_values: {
            person: 20602378,
          }
        )
        {
          id
        }
      }`
 )

It works if I remove the column-values object.

Hey @ShawnBaden :wave:

Thank you for sharing this and I’m sorry that creating items with People column values has been giving you some trouble! I would recommend trying to send the values as a string, or as part of your variables. This seems to have worked well for me in the Playground:

mutation {
  create_item (board_id:1232810882, item_name:"test", column_values: "{\"person\":\"9603417\"}")  {
    id
  }
}

Also, you might want to make sure that the user you are trying to be to the item is part of the board - if they are not part of the Shareable or PRivate board you are creating an item on, the user will not be assigned to the item.

I hope this helps!

-Alex

I’m getting an error: Line 106:28: Unnecessary escape character: "

I’m using the monday.api call from the react bootstrap so my code looks like this:

monday.api(
      `mutation {
        create_item (
          board_id:${myBoardId}, 
          group_id: "new_group", 
          item_name: "test item" 
          column_values: "{\"person\":\"9603417\"}"
      )
        {
          id
        }
      }`
    )

If I remove the \ I get undefined in the response.

I’ve also tried passing a string as a variable like this:

let columnValues = JSON.stringify({
          person: 20602378,
          text0: "Requestor name",
          text9: "Notes",
          dropdown: [0],
        })

    monday.api(
      `mutation {
        create_item (
          board_id:${myBoardId}, 
          group_id: "new_group", 
          item_name: "test item",
          column_values: ${columnValues}
      )
        {
          id
        }
      }`
    ).then(res => {
      if(res.data){
        console.log('new item info: ', res.data)
      };
    });

Also, I’m using my own id for person as a test so I know it’s good.

@ShawnBaden

Thank you for circling back with me here! Would you be able to try wrapping your column IDs in quotes, so that the column values become the following:

let columnValues = JSON.stringify({
          "person": 20602378,
          "text0": "Requestor name",
          "text9": "Notes",
          "dropdown": [0],
        })

I’m also not quite sure if you need curly brackets around the values, like {columnValues} or {boardId}, unless you are adding the variables to the call as GraphQL variables.

Would you be able to try out the 2 points above and let us know if that helped at all?

-Alex

@AlexSavchuk

I tried adding quotes and the create_item didn’t get logged and no item was created.

let columnValues = JSON.stringify({
        "person": 20602378,
        "text0": "Requestor name",
        "text9": "Notes",
        "dropdown": [0],
      })

I removed the curly braces but then had to convert the colons to = and had to remove the Quotes from the column ids which makes them variables that haven’t been declared - not sure this one is going in the right direction.

let columnValues = JSON.stringify(
        person= 20602378,
        text0= "Requestor name",
        text9= "Notes",
        dropdown= [0],
      )