Welcome to the new monday developer community
Discussions category for everything related to app development on top of monday.com
Recently active
After long war and blood shed I got it right For anyone out there want to know how to upload files using HttpRequest -C# BaseUrl = https://api.monday.com/v2/file public async Task<FileUploadResponse> UploadFile() { string filePath = @"C:\\Users\\XYZ\\Downloads\\Dummy\\001.docx"; string fileName = Path.GetFileName(filePath); HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Authorization", YOUR_TOKEN); httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("multipart/form-data")); MultipartFormDataContent form = new MultipartFormDataContent(); byte[] file_bytes = File.ReadAllBytes(filePath); string query = @"mutation ($file: File!) { add_file_to_column(file: $file, item_id: XXYYZZ, column_id: ""files"") {
I’d like to avoid a network request if a user is not of the correct minimum tier to create custom tags. I know that the developer tier, for example, is represented as free. Given that I’m not using a paid account, I’m wondering what the other tiers are definitively called. I’d imagine they’re standard pro enterprise but I’d like to make sure.
Hello, I have been developing an app that needs to store very long strings of data. I have implemented this by using the storage option offered in the monday sdk however, I have discovered that this data is stored in the board, not in the item. This is causing issues when moving items between boards, as when the item is moved, the data doesn’t come along with it. Is there currently anyway to store data in an item rather than the board? Or would I need to use a 3rd-party database in this circumstance? I thought about using a long text column for storage but the 2000 character limit would be an issue.
Suppose I have a rating column with a maximum rating of 4. Let’s query the column and its value. query { boards { columns (ids: "rating") { id title type settings_str } items { id column_values { title type value } } } } We would then get a response like { "boards":[ { "columns":[ { "id":"rating", "title":"Rating", "type":"rating", "settings_str":"{\\"limit\\":4}" } ], "items":[ { "id":"2379332173", "column_values":[ { "title":"Rating", "type":"rating", "value":"{\\"rating\\":4,\\"changed_at\\":\\"2022-03-06T07:37:27.144Z\\"}" } ] } ] } ] } So far, so good. We’ve got a limit of 4 and our current rating is 4, the maximum rating. However, what if we change the column’s settings such that the maxi
The API documentation indicates that both the ISO 3166-1 alpha-2 code and the full country name are required in order to update a column with type Country. While it’s not necessarily difficult to map between the two if one only has one or the other, I wanted to test its requirements and drill down into edge cases. In doing so, it seems that the country name is not strictly required to have a value and is only required for its property to be present. That is, the column will update, and do so correctly, based entirely on the code. For example, all of the following mutations update a country column with United States as the visible value and a U.S. flag within the column. mutation ($itemId: Int!, $boardId: Int!) { change_multiple_column_values ( item_id: $itemId, board_id: $boardId, column_values: "{ \\"country_1\\": { \\"countryCode\\": \\"US\\", \\"countryName\\": \\"United States\\" }}" ) { id } } mutation ($itemId: Int!, $boardId: Int!) { change_multiple_c
Good morning, I’m developing an API in Node.js that will be integrated with a company system. The API needs to perform queries against our Monday task boards. I’m having problems performing API queries, I used the example codes from the documentation to perform the queries but it’s not working, after that I tried several other ways, using several other NPM modules and I still can’t perform the queries. The only method that worked to perform the queries was using the ‘https’ module, but I am not able to process the query result, which should basically convert the JSON result into an object. Below is the query already tested on the PlayGround of the Monday API: { boards(ids: 447377089) { name state board_folder_id items { id name column_values { title text } } } } API query code per example from Monday’s documentation: const fetch = require(‘node-fetch’); let query = “query {\\n boards(ids: 447377089) {\\n name\\n state\\n board_folder_id\\n items {\\n id\\n name\\n column_values {\\n t
Hello I am having a few problems formatting a json string for a C# query I am making @"{""query"": ""query { items_by_multiple_column_values (board_id: 1234, column_id: \\""text0\\"", column_values: [\\""something,something_else\\""] ) {id}"" }"; Here is a little example of the string. I have tried formatting it with JsonConvert.SerializeObject to no avail. Any help would be much appreciated.
I’m working on error handling and want to be sure I’m covering some bases to provide more suitable user-facing error messaging. In doing so, I’ve noticed what appears to be some inconsistency in how the API responds to mutations on text inputs. Namely, I’ve compared three mutations: create_workspace create_board create_item Sample input (length: 256): abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv Create a workspace The workspace is created given the sample input with no error response (200 nor non-200). However, the workspace’s name is silently truncated to 255 characters. Create a board The board is unable to be created, throwing a CreateBoardException (400). { "error_code": "CreateBoardException", "status_code": 400, "error_message": "Failed to create board", "e
Hello, I’m making a dashboard widget for the Lessonly developers badge. I’m trying to add a setting that lets the user select which column they want the widget to read from. I’ve created a board with a locations column (EDIT: the pictured board is called Widget Test): And I’ve added a columns field to the view settings, the configuration (don’t think its important but I’ll picture it just in case): Yet, when I go to preview the settings display this: Which I don’t understand, since the board has a locations column, and the view setting accepts Location as its column type. Anyway, if I click the Add Column → Add to Board, nothing happens, and my console displays this error message (similarly unsure if it is relevant): I’d be grateful for any assistance, thanks.
Hi, I want to get all the Board IDs via API my account sees on monday.com. However some of them are missing. I have an API-key, and I use the query: ‘query {boards () { name id }}’ I got around 25 IDs back, but my Workspaces got far more than that. What could be the problem?
In the error code docs, the UserUnauthorizedException is misspelled as UserUnauthroizedException. This misspelling is also present in the error_code when the API returns an error corresponding to that exception. It looks like it’s been that way for a good bit judging by past posts that mention the error with the misspelling (dating back to October 2020). Is this intended to remain in the event that it breaks others’ flow(s)? Not that I can’t just check for either spelling on my end.
Hi, When retrieving Hour column via API, the text field of column_values is always formatted in 12h format. I would expect it to be formatted based on configured format. Example API response, where hour column is configured to 24h format and hour_1 to 12h format: { "id": "hour", "text": "05:00 AM", "value": "{\\"hour\\":5,\\"minute\\":0,\\"changed_at\\":\\"2021-12-12T22:09:27.203Z\\"}" }, { "id": "hour_1", "text": "12:00 PM", "value": "{\\"hour\\":12,\\"minute\\":0,\\"changed_at\\":\\"2022-03-05T15:02:04.517Z\\"}" } Would it be possible to get text value formatted based on configured format? Thanks, Lubos
Does anyone have an example on how to parse the following response using C#? I was able to just Json My end goal is to get the json string into a list to create a file with. Thank you for any assistance! { "activity_logs": [ { "data": "{\\"board_id\\":2165785546,\\"group_id\\":\\"new_group2051\\",\\"is_top_group\\":false,\\"pulse_id\\":2165787062,\\"pulse_name\\":\\"Tyler\\",\\"column_id\\":\\"email_address\\",\\"column_type\\":\\"email\\",\\"column_title\\":\\"Email Address\\",\\"value\\":{\\"column_settings\\":{\\"includePulseInSubject\\":true,\\"ccPulse\\":true,\\"bccList\\":\\"\\"}},\\"previous_value\\":{\\"email\\":\\"tyler@email.com\\",\\"text\\":\\"tyler@email.com\\",\\"changed_at\\":\\"2022-02-15T21:18:48.297Z\\",\\"column_settings\\":{\\"includePulseInSubject\\":true,\\"ccPulse\\":true,\\"bccList\\":\\"\\"}},\\"is_column_with_hide_permissions\\":false,\\"previous_textual_value\\":\\"tyler@email.com\\"}" }, { "data": "{\\"board_id\\":2165785546,\\"grou
What would be the GraphQL syntax to retrieve all data in my account - boards, IDs, items, subitems, anything else in the account?
I am trying to list by API the apps installed in my Monday account. Looking at the network, I see the call to the backend is: https://slug.monday.com/apps with the cookie as the authentication method. This works great for me. Now I am trying to do the same on behalf of an app. I created an app, and gave it all permissions at Set Up Permission Scopes. I can’t get any response using the app token I got. What I tried to do instead, is running the graphql at https://api.monday.com/v2/ with the query: query { apps { created_at } } but then I got: { "errors": [ { "message": "Permission Denied! Your token doesn't grant access to apps:read" } ], } When trying to add apps:read to the consent link, I get: {"error":"invalid_scope","error_description":"Invalid scope param"} Is there any other way to list the apps?
I am trying to load a board including the subitems to the excel from Monday. I’ve used the following code to do so and recieved the following error: Code: [ Headers=[ #“Method”=“POST”, #“Content-Type”=“application/json”, #“Authorization”=“Bearer " & Key ], Content=Text.ToBinary(”{““query””: ““query { boards(ids: " & Board & “) { items { name, updated_at, group { title }, columns: column_values { title, text } subitems { name } } } }””}”) ] ), Data = Table.FromList(Json.Document(Source)[data][boards]{0}[items], Record.FieldValues, {“Title”, “UpdatedAt”, “Group”, “Columns”}), #“Monday” = Table.FromRecords(Table.TransformRows(Data, each List.Accumulate([Columns], [ Title = [Title], UpdateDate = [UpdatedAt], Group = [Group][title] ], (state, current) => Record.AddField(state, current[title], current[text]) ) )) Error: DataFormat.Error: There were more columns in the result than expected. Details: Count=4 Thank you in advance.
Is there a way to retrieve custom user defined fields from items in the API calls?
Hi fellow developers I am trying to get my head around this. I need to query all items and subitems in a given board. Due to the amount of items and the level of nesting the query will hit complexity very soon. I want to use pagination to query in smaller pieces but I have to wait for the next minute (reset of complexity) and I am using shortLivedTokens to access the API. If I just wait for 1 minute the shortLivedToken will not be valid anymore. At this moment the query takes place during the subscribe of an integration app with a custom trigger. I don’t see a way to “refresh” the short lived token as I can’t respond with non-200 (no retries will be done from monday). I can redesign in a way the query takes place in an action so I can respond with non-200 and wait for the retry (which will contain a new shortLivedToken). The challenge with that is to keep track of which page is required. Any ideas are welcome.
Hi, I am trying to duplicate 3 boards every 2 weeks (so not running into the limit) using python. Running the code does not yield any error but the board is not duplicated. Any ideas what I should do? def duplicate_board(board_id, name): query = 'mutation ($name: String!) { duplicate_board(board_id:'+str(board_id)+', duplicate_type: duplicate_board_with_structure, board_name: $name) {board {id} }}' vars = { 'name' : name } data = {'query' : query, 'variables' : vars} r = requests.post(url=apiUrl, json=data, headers=headers) # make request print(r.json())
Is it just me or the way Monday handles column ids is super difficult to manage? I have the graphql mutation running and every time I have to guess what is the columnId for the specific column I need to update. Not cool that I have to open the developer tools, inspect the network tab and then find the column id of my column. Isn’t there a way to avail this on the UI? I can’t find a way to create subitems’ columns which could have sold the issue but still a lot of overhead for what should have been a pretty single thing to have
I have a flat table with row data. From that, I want to create parent items and their respective subitems. I made up a store example. I want to track the things I receive for my store in a board where the item (parent) is the Box, and in it can be one or multiple different items (subitems). I’m looking for a starting point or suggestions- do I first create the items, store the parent item ids somewhere, then loop back and create the subitems for each? Or can I do it all ‘in one move’ as I iterate through the list. I’m actually working in VBA but Python code would be helpful too. Here’s a graphic: Thanks!
Hello, I have been seeing this a lot recently where zapier is changing statuses in monday to numbers and I am not sure why. I was wondering if anyone has seen this before?
How can I build a custom field with the nested options list like in the Gmail integration.
Background: We have integration which creates an item on the Monday board when action is created in our platform. It is using Graph QL API to achieve this. Use case: We want to populate people columns on the Monday with created by and assigned to users but we know only emails of these users. Problem: According to documentation the user ids should be provided to be able to populate “people” column value. https://api.developer.monday.com/docs/people The apps framework docs say that you can populate people fields by providing only emais. https://apps.developer.monday.com/docs/dynamic-mapping#examples-of-each-field-type Is there way to populate “People” column value by posting only user email?
Is it possible to merge two queries into one? I want to return the column values for “Name” and “Email_Address” where the column “batch_5” = “70”. this would be merging the queries for items_by_column_values and items? This is the query I have but it returns all the columns: query { items_by_column_values (board_id: 1234, column_id: “batch_5”, column_value: “70”) { name column_values { id text } } }
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.