Welcome to the new monday developer community
-
Recently active
In the example above, the contact, Sam Jones <sam@apple.com> has emailed someone. The avatar and heading are for Sam.If I was to add an activity on the contact’s behalf, I’d want to add the contact’s avatar & name rather than my own (which is what would happen by default).Is there a way to add that the Contact as the person who performed the activity rather than the person who added it using the API?So far, this seems to be a limitation of the create_timeline_item mutation. Dev Sidekick says:Looking at the available arguments for create_timeline_item, there is no parameter to specify a different user as the activity performer. The mutation's arguments are:item_id, custom_activity_id, title, timestamp (required) content, summary, time_range, url, phone, location (optional)[create_timeline_item]None of these allow you to attribute the activity to a specific contact or user other than the API caller. The knowledge sources do not mention any way to override the author/performer
Hey everyone,My name is Natt. I’m part of the team building OnboardFlow, an employee onboarding app designed to work with monday.com. We come from an HR SaaS background, and onboarding was one problem we kept seeing everywhere. New hires chasing documents over email. HR tracking progress in spreadsheets. Tasks scattered across tools. Nobody fully sure what’s the overall progress. No one can change this into meaningful KPIs. So we built OnboardFlow to simplify that. HR teams continue managing onboarding inside monday.com — creating plans, assigning tasks, reviewing documents — while new hires use a simple mobile app (iOS & Android) to complete everything from their phone using an invite code. Tech stackReact + Laravel + Flutter We chose monday.com because we love how easy HR teams use it to run their daily works in it. Always happy to connect with other builders here, especially anyone working on monday.com integrations or mobile companion apps. Check it out - https://monday.com/ma
Hello,In order to report an action block result, the documentation mentions:“This JWT is then sent in the Authorization header as a Bearer token. It should include your appId in the payload.”While the example shows no mention of “Bearer”:# The `callbackUrl` received from monday in the initial POST request bodyPOST https://callback-to-monday.com/callbacks/12345678 HTTP/1.1Content-Type: application/jsonAuthorization: <SIGNED_JWT_TOKEN>The example is the way to go. A token sent as Bearer will not work.Thank you,
I’m trying to create a dynamic field mapping for my automations/workflows using object fields.While I’m able to list the fields correctly, all of them are flagged as required, which doesn’t match my expectations. In the payload, the fields are marked as nullable (as described in the documentation):body = { name: { title: 'User name', type: 'primitive', primitiveType: 'string', isNullable: true, isArray: true, }, email: { title: 'Email', type: 'primitive', primitiveType: 'string', isNullable: true, isArray: false, },}; Is the documenation outdated, the code wrong or is there a bug?
Hey,Is anyone currently able to register create_subitem webhooks via the API? I’ve started getting 5xx errors — this was working fine earlier.
We’ve just launched a powerful upgrade to SMS to Board, introducing a fully redesigned SMS & Numbers Dashboard and advanced number management capabilities.Here’s what’s new:📞 Smarter Phone Number Search & ReservationYou now have complete control when reserving numbers. No more random assignment — you choose the number.: 🌍 Select country before searching 📱 Choose number type (mobile, etc.) 🔎 Search by area code or specific number pattern 🎯 Find numbers containing specific digits 📋 Browse available numbers before renting ✅ Select the exact number that fits your business needs 🔗 Advanced Board Linking & Field MappingWe’ve added deeper integration controls: Link each phone number to a specific workspace Choose the exact board that will receive messages Map SMS data to custom board columns: Sender number Message text Date column Assign a custom alias/name to each phone number (e.g., “Sales Line”, “Support UK”, “Marketing Campaign”) This giv
HI, I am using the API version 2024-01 and since recently the value field returns null on connect boards.As an example { boards(ids: my-id) { items_page(limit: 1) { items { column_values (ids: "boards_verbinden__1") { id type value text } } } }}returns{ "data": { "boards": [ { "items_page": { "items": [ { "column_values": [ { "id": "boards_verbinden__1", "type": "board_relation", "value": null, "text": null } ] } ] } } ] }, "extensions": { "request_id": "aea63278-8d4a-9aa6-a460-25fc93191820" }} I also tried with API version 2025-01 and get the same result. What is the reason for this?Any support on this is highly appreciated!
Hi,due to migration of my app to workflows I try to use the credential feature to initiate OAuth to a Mattermost server. Unfortunately, Mattermost only accepts a length of 1024 characters for the state field. The state that the credential feature sends is about 1152 character long and so the request is rejected. Is there a chance to set a limit of the state field in the feature?Thanks and best regards, Marcus
Hello monday.com Developer Community,I'm a first-time monday.com app developer trying to set up my development environment to build an Integration app using the Quickstart Integration tutorial. I'm encountering several issues and would appreciate guidance on the complete setup process. Current issue:When I try to deploy using mapps code:push, I get the error: "Failed in uploading the project." The deployment shows as "pending" but never completes.What I need help understanding:Complete deployment workflow - What are the correct steps from code download to working app? Local development vs deployment - Should I test locally first using a tunnel, or deploy directly to monday code? Configuration in Developer Center - Where exactly do I add the Base URL for my integration feature? Environment setup - Are there any other prerequisites or configurations I might be missing?
Hey builders 👋We’ve just published the first monday Marketplace & Developer Monthly Digest of 2026.The goal of this format is simple:Once a month, we’ll recap the most important platform updates for app developers in one quick video.This first one comes with a slight delay, but we’re officially kicking things off. I’d really love your feedback on the format. Watch it here:Here’s what we covered🚀 Build Skills for monday SidekickSidekick is officially out of beta, and developers can now build AI-powered skills for their apps.Read the full announcement here⚠️ Action Required: Migrate Legacy Automation FeaturesLegacy automation features must migrate to the new workflows-based infrastructure by April 30, 2026.Details and migration info here🗄️ monday code Document DB is GAA MongoDB-compatible database hosted entirely on monday infrastructure, built to support more complex business use cases while keeping your app’s data secure inside monday.Learn more here🌍 New monday code Region: Is
Hi everyone,I’m working on an integration where, when a user triggers an API action, my app fetches data from a third-party service and updates multiple columns on a Monday board.The main challenge I’m facing is how to handle column IDs in a clean and scalable way.Currently: I usually rely on column fields in the recipe to get the columnId, which works fine. However, when I need to update many columns (for example 5–10 columns), adding that many column fields makes the recipe sentence very long and not clean. I tried using item values, but they only return the columnId without any clear reference to which column it belongs to. If I use dynamic mapping, I lose access to the actual columnId, which my integration logic still needs. So my question is:Is there any way in Monday to pass multiple columns at once — including both the columnId and some kind of alias / logical name — so that the integration app can handle column updates more easily?I’m looking for a pattern or best practic
Hi there!The docs recommend using change_multiple_column_values when possible but never mention how it reduces complexity cost and by how much.Let’s put the question this way: If we use change_simple_column_value to change 1 column it costs 30k complexity points. So 10 column changes = 300k.Is it that if we use change_multiple_column_values all of 10 changes at once costs only 30k? How does this get calculated?
Hello,I am currently building an automation app for monday.com that allows users to automate workflows within their boards.So far, I have successfully completed authentication and all other required setup. I have also built several custom views and implemented the Integration Sentence Builder feature. The recipe sentence automation builder is working well overall.However, I am currently stuck while building a dynamic recipe sentence UI inside the Integration Sentence Builder. I have already posted in the community and sent an email to monday.com support, but I have not received a response yet. That’s why I’m writing with a detailed explanation of what I’m trying to achieve and where I’m facing difficulties.What I want to buildI want to create a recipe sentence like:When {status} changes to {something}, send {template name} {dynamically loaded inputs based on the template} from {WhatsApp account number} to {phone column of the board}.Here’s what is already working: I can dynamically loa
Hi everyone!I’ve been experimenting with the change_multiple_column_values mutation to update the Files Column with external links (like Google Drive). While the documentation currently lists this as unsupported for this specific mutation, I found that it actually works—with one major catch regarding fileId. The MethodI am using the following mutation:mutation updateFileLink ($columnValues: JSON!) { change_multiple_column_values( item_id: "my_item_id", board_id: "my_board_id", column_values: $columnValues ) { id }}With this JSON as columnValues variable:{ "file_column_id": { "files": [ { "fileId": "file1_id", "fileType": "GOOGLE_DRIVE", "linkToFile": "https://drive.google.com/...", "name": "file1.pdf" } ] }}The Issue: The fileId DependencyThe mutation is successful and the link appears perfectly in the WebUI. However, I’ve run into a significant backend issue: Omitting fileId: If I don't provide a fileId in the mutation, the
Hi there,I am curious to know if you have plans to drop support for settings_str at any point since you have switched to the settings instead?
Hi everyone,Between January 28 and January 29, we identified an issue that caused temporary disruptions to some apps and integrations across a limited number of monday.com accounts.What happenedDuring this time, certain API requests intermittently failed to retrieve user API token scopes, which may have affected: App functionality Integrations Short-lived automation or authentication flows The issue has now been fully resolved, and all systems are operating normally.If you continue to experience any unexpected behavior or have questions, please feel free to reach out.
while connecting developed app with monday getting errors.
Hi everyone,I’d like to ask for feedback and ideas on whether we’re using the SDK Storage method correctly.Our custom app consists of a form-based flow: Form A is used to set up boards and item columns using monday.com’s GraphQL API. After a successful submission of Form A, Form B receives the generated board and column IDs from the GraphQL mutations. These IDs are then used in another mutation to create new items in the board (like a record table). App flow: Fill out Form A and click Submit Run GraphQL mutations to create boards and columns Retrieve the generated board and column IDs Store the IDs in monday Storage Redirect to Form B Form B retrieves the stored IDs For step #4, we are currently using monday-sdk-js(https://developer.monday.com/apps/docs/introduction-to-the-sdk)to store the generated IDs. This is done on the client side only, since there was an announcement that server-side usage will be deprecated soon.However, we may soon introduce an automation that uses
Hello,I am planning to develop a Monday.com automation app that will allow users to send messages to phone numbers stored in a Phone column.The app will work as follows: Users will have access to a list of pre-approved message templates. The user can select one template, and the message editor will automatically populate with the template text. Inside the message editor, users will be able to map values dynamically using suggested column names (Monday automatically suggests columns with the “Message” field type). Once the automation is configured and saved, it will listen for the specified trigger event. When the event occurs, a custom execution API endpoint will capture the event and process the operation (sending the message to the phone number). I would appreciate guidance on the recommended approach, required APIs, and best practices to implement this workflow in a Monday.com automation app.Thank you in advance for your support.
Hello Monday Dev Community. I’m brand new to building apps within Monday (haven’t coded in a long time, but getting back into the game). I’ve followed this Quickstart guide and everything worked up to step 6 which is the following: When I run npm run build, I get an error that the build script does not exist. I checked the package.json file and it does not include the “build” script. I’m thinking that the quickstart guide is out of date, but I don’t like to assume. This is a list of scripts that npm run shows:Am I missing something? Is this quickstart guide out of date? I appreciate any help you might provide.Jeff.
Hi monday devs. We receive daily support request from users reporting that they receive the following error message when they run a General Caster integration: Your automation has failed due to a resource not being found. We discovered that this error is returned by monday when the app is not installed on the workspace where the integration is running on. By design, even if an app (like General Caster, featuring custom integrations) is not installed in a workspace, the user can add and set an integration up in his boards, but when he runs it the error is returned. So if you don’t want to change this behavior and keep showing an app available in the workspace where it’s not installed on, please change the error message with something like: The app is not installed in this workspace. Please enable it in the admin area. cc @Matias.Monday
Hi everyone,I’m building a full-stack app using monday code (React UI + Express backend) and I want to make sure I’m following the correct authentication and authorization best practices.Current architectureUI → Backend authentication From the UI, I fetch monday.get("sessionToken") I send it to my backend in a request header In the backend, I verify/decode the sessionToken using my client_secret This works well for validating that the request comes from monday and from my app When decoding the sessionToken JWT, I noticed that it does not include a short-lived token that can be used to call monday APIs. OAuth & monday API calls I implemented a standard OAuth flow In the OAuth callback, I store the returned OAuth access token in Secure Storage When calling monday APIs from the backend, I retrieve that token and use it like this: import { ApiClient } from "@mondaydotcomorg/api"; const mondayApiClient = new ApiClient({ token: accessToken }); const query = ` query { custom_ac
Hi everyone,I'm building a Monday App using React and Express. I'm using SecureStorage to store the OAuth access_token after the handshake.I have a concern regarding Scope Management and Token Validation.Currently, I define my required scopes in an Environment Variable (e.g., MONDAY_SCOPES="boards:read users:read"). In my authentication middleware, I simply check if an access_token exists in the storage. If it exists, I assume the user is authorized.The Logic: Env: SCOPES="boards:read" User authorizes: I get a token with boards:read and save it to SecureStorage. Later: I update my app features and change Env to SCOPES="boards:read boards:write". The Problem: My middleware still sees the old token in SecureStorage. It returns 200 OK for the auth check, but the API calls fail later because the token lacks the new boards:write permission. Here is a simplified version of my check:TypeScript // Middleware or Auth Check Logicexport async function checkAuth(req, res, next) { const secu
Hi everyone,I am building a React + Express app and deploying it using the Monday CLI (mapps code:push).I am currently implementing the OAuth flow, but I am stuck in a tedious manual loop regarding the Redirect URI.The Scenario: Frontend: I initiate the OAuth flow using window.location.origin to build the redirect URI dynamically. Backend: In my callback function, I use an environment variable (MONDAY_VERSION_URL) to validate the redirect_uri during the token exchange. The Code:Frontend (Initiating Auth):JavaScript const startOAuth = async () => { const { data: context } = await monday.get("context"); const currentOrigin = window.location.origin; // This changes on every deploy const redirectUri = `${currentOrigin}/oauth/callback`; const authUrl = `https://auth.monday.com/oauth2/authorize?client_id=${ context.app.clientId }&redirect_uri=${encodeURIComponent(redirectUri)}`; monday.execute("openLinkInTab", { url: authUrl });};Backend (Callback):TypeScript export async f
The monday.com Foundation Emergency Response Team is seeking a freelance developer to support an existing marketplace integration: KoboToolbox.The app is already built. The scope of work is ongoing technical support and bug fixing as issues arise.High availability during support requests is required. Our team operates in active emergency response contexts, where the stability and reliability of this integration is critical.This role is best suited for someone comfortable working under time-sensitive conditions and responding quickly when issues occur. We are a pro bono initiative from our Philanthropic Foundation, so we are looking for affordable services 🙏
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.