Welcome to the new monday developer community
Discussions category for everything related to app development on top of monday.com
Recently active
Welcome to our apps & developers community! 👋 This is your space to talk about everything related to developing apps for monday.com. Feel free to ask questions, share tips, or about topics like: Developing with the monday apps framework Querying the GraphQL API Using monday SDKs and libraries General programming questions NOTE: If you think you have a bug with your monday.com account, please do not report it here. Instead, please open a support ticket and our support team will get back to you. Please read this post for resources, helpful threads, and guidelines for new posts. Resources to get started! As you begin exploring the monday developers framework, check out these references: API Documentation: Reference for our GraphQL API to read/write to monday.com monday Apps Framework: Documentation for building native features on top of monday.com monday code: Hosting platform for managing and running server-side monday apps Our developers blog and youtube channel for learn
Hi. Need help from monday.com team or anyone who can help in our case Our app uses a “hosted iframe tokenizer” API of Card Connect to get card details in a secure way. When integrated in our app and testing it, it always lags to the point that the browser hangs. We found out that every time we do some action in the iframe, It makes an infinite network request to some URL. As you can see in the photo above, it has many request to this url and this ONLY happens everytime we do some action in the iframe that we put in our app code. This is the other details of that URL: We believe the netwwork cal is on monday.com side. Because when we test the hosted iframe tokenizer in local and other server, it works properly and not many network request is made. Our front end is written and ReactJS and here’s how we used the iframe in our code. It’s mostly just a simple render: <div}> {useIframeTokenizer ? ( <> <iframe
Hi all,I am querying the first column of a monday.com board through the GraphQL API and receiving the following response:{ "id": "name", "title": "Name", "type": "name", "settings_str": "{}", "description": null}However, in the monday.com interface, the visible heading for this column is “Requests”, not “Name”.I have also tried renaming the column to other names such as “RENAME” and “TESTING”, in the monday.com interface, but the API continues to return:"title": "Name"Is the visible display name of the first or leading column stored separately from the API title field?And if so, is there a way to get it through the API?Any clarification on whether this is expected behaviour or an API limitation would be appreciated.Cheers
monday.com has a very unusual implementation of timezones and time offsets, so this is a knowledge sharing excercise, for lack of any documentation that explains things.A developer recently mentioned the following:Why api return different dates for rollup column and the non-rollup column ? It seems to me that the rollup column returns the date in UTC, while the regular one uses the user's time zone. Is this intentional? Having had to work out whats going on, I thought I’d put something down about whats happening. So what happens when a user with user settings and browser locale set to Europe/London sets a date/time of 7 Jul, 01:00 (UK/24h time) in a column using the monday.com UI?Take the following graphql query:{ me { time_zone_identifier utc_hours_diff } items (ids:12060200220){ column_values (types: [date]){ id text value ...on DateValue { date time } } }}We get an output of:{ "data": { "me": { "time_zone_identifier": "
I am receiving this error a lot on make module like Get an item, Search on Board etc. Full details are like that The run couldn't be completed[200] Request id: 7828677f-a339-9aad-9188-3e602f2813f1Internal Server Error (INTERNAL_SERVER_ERROR)Internal server errorStatus code: 500Code: RuntimeErrorOrigin: monday.comAnyone have idea, it is happening from last 2-3 month quite a lot.
Hi everyone,I'm looking for some advice on a challenge we're currently facing.Our app has two form-based features: Feature #1 generates boards and columns using the monday.com GraphQL API. We currently store the generated board and column IDs using the monday.storage() SDK method. Feature #2 uses those stored GraphQL IDs to create new items, since the app is connected to the generated boards and columns through those IDs. The challenge arises when we need to update the board structure after the app has already been installed. For example, if we decide to add a new column to the generated board in a future release, the ID of that newly created column won't exist in the user's existing monday.storage() data. As a result, Feature #2 won't be aware of the new column unless the stored IDs are updated.For those who have built similar apps, how do you manage GraphQL IDs for dynamically generated boards and columns? Do you have a strategy for handling schema changes (such as adding new colum
There was recently a question regarding monday-code Network Allowlist:The allowlist needs explicit FQDNs (no wildcards). Our backend hits `assets.public_url` from GraphQL, and across three test accounts I'm already seeing different hosts, e.g. prod-euc1-files-monday-com.s3.eu-central-1.amazonaws.com and files-monday-com.s3.amazonaws.com. The answer from the monday.com support:I have the official list of Fully Qualified Domain Names (FQDNs) used by monday.com for file assets. As you observed, these URLs depend entirely on the hosting region of the specific account.Since the monday-code Network Allowlist requires explicit entries and does not support wildcards, you will need to add the following four hostnames to reliably proxy file downloads across all regions and account tiers:US (Default/Legacy): files-monday-com.s3.amazonaws.comEU (Frankfurt): prod-euc1-files-monday-com.s3.eu-central-1.amazonaws.comAPAC (Sydney): prod-apse2-files-monday-com.s3.ap-southeast-2.amazonaws.comIsrael (Tel
Hi,My app downloads assets from a board using the public_url queried from the API and httpx.When deployed on Monday Code, the DNS of the URL host (prod-euc1-files-monday-com.s3.eu-central-1.amazonaws.com) resolves but the downloads time out.My app is live but private to the client’s account. It is hosted in US region by default since this is where my personal account is, but the client’s data in the EU region. I suspect this region difference is what causes the packets to be dropped, but activating networking allow list for prod-euc1-files-monday-com.s3.eu-central-1.amazonaws.com hasn’t made a difference.Would you have an idea of what is happening?My instinct would push me towards asking the client for a licence in their account in order to deploy the app from there but that would make them have to pay for an extra licence.Thank you.
Hi,I'm setting up the monday-code Network Allowlist for our app's backend. The allowlist only accepts explicit FQDNs - no wildcards.Our server downloads files via the `public_url` returned from the GraphQL `assets` API. Testing across a few accounts I'm already seeing different hostnames, e.g.:- `prod-euc1-files-monday-com.s3.eu-central-1.amazonaws.com`- `files-monday-com.s3.amazonaws.com` I assume there are more (other regions, different account configurations). Without an exhaustive list I can't safely turn the allowlist on, because a new region would silently break downloads in production. Questions:1. Is there an **official, exhaustive list** of hosts that may appear in `assets.public_url`?2. If not, what's the recommended approach - proxy via a stable `*.monday.com` host, or something else? Has anyone solved this for their app? Thanks!
Hi, How to optimize the query time to get the 20K+ items from the board with 5 mirror columns ?I am trying to get the 20K+ items from the boards having the 5 mirror columns.As the no. of items is huge it takes significant amount of the time to get all the data with 20K+ /500 = 40+ calls.Hence currently it is not possible to filter data.These whole data is being used to generate the custom type report requested by the client.I was trying to filter the data on the basis of the date column but as it is of the type mirror it is impossible to perform server side filtering ?@OmerK
Hi everyone.I’m running into a persistent issue with custom Automation Blocks and could really use some insight from the community or the monday team.Whenever I create a new Automation Block ex novo (from scratch), it simply does not appear in the Sentence Builder. This isn't a standard sync delay, as I have waited several days and the blocks are still missing.The only custom block currently visible and searchable in my Sentence Builder is one that I migrated from the now-deprecated "integration for sentence builder". It seems the migration process forced some kind of internal update that made it immediately available.Any block created from scratch after that does not show up at all.I've been dealing with this issue for a while. For internal testing (developing and testing the app within the same account), I've had to resort to creating a pre-built trigger-action recipe. These pre-built recipes are always available immediately, but the standalone block itself remains completely hidden
OK, at some time there has been an undocumented change to the create_timeline_item mutation. You used to be able to send a timestamp in and it would respect that timestamp as the created_at time.Example:mutation createTimelineEntry($customActivityId: String!, $itemId: ID!, $title: String!, $summary: String!, $content: String!, $timestamp: ISO8601DateTime!) { create_timeline_item( item_id: $itemId custom_activity_id: $customActivityId title: $title summary: $summary content: $content timestamp: $timestamp ) { id }}GraphQL Variables:{ "timestamp": "2024-05-08T11:34:39.000Z", "customActivityId": "e589f9c3-b4a7-4a7f-bcc1-d6164f4460b7", "itemId": 2957556816, "title": "🕰️ Historic walk around Sheffield", "summary": "Dear John\n\nThank you for signing up to the historic walk around Sheffield, starting at the Peace Gardens. \n\nThe walk will take in some of the city's most fascinating landmarks and stories, from its medieval origins through to its industrial heri
Let's say my app is an integration with M365/Outlook and has a trigger "When email is flagged in Outlook"...I need to create this automation block as a trigger with:A subscribe URL - create the incoming webhook subscription from Outlook to listen to events An unsubscribe URL - deletes the incoming webhook from OutlookBoth of these will use the credentials feature and monday will pass me a valid, but short lived access token for use with Microsoft 365.Here's the hard part...I also need to regularly update the Microsoft Graph to renew the webhook subscription (as mail subscriptions expire after 3 days)This will need to be done with a monday-code cron job which:requests a new access token from monday for the correct user sends the webhook subscription renewal to MicrosoftIn the old infra, we’d use a credentials field and handle the logic ourselves, in our app, but with the new infra, the credentials are stored by monday and are abstracted away completely.👉 How do I request a new Microso
Hi everyone,I'm running into an issue with the Apps Framework regarding custom automations, and I wanted to see if anyone else has experienced this or if it's a known bug.The Setup:I've built an integration that relies on a custom trigger for file uploads. In the setup, the user authorizes and selects their credentials, which are tied to their external platform's team ID and user ID.The Issue:When a user builds the automation from scratch using the custom recipe, everything works perfectly. The credentialsValues object is properly populated in the webhook payload, allowing us to route the request to the correct external team.However, when we package this exact same setup into an Automation Template and the user installs it, the webhook fires but the credentialsValues object drops entirely and comes through as empty ({}).I think this wouldn’t be the expected behaviour.
Hi all 👋🏻Is it possible to check the status of our App Submission to Mkp (sent on June 5th)?I'm asking because we didn't receive any confirmation email and no notifications appear in the dev dashboard. In fact, the "Submit to marketplace" page is still there. I tried asking the chatbot (but with no luck) and searched here on the forum, where I only found a similar question from about 5 years ago. I hope I didn't miss anything, and if so, my apologies.So, do you know if there is a way to find out if our materials were actually received and if they have had a chance to review them yet?Thanks in adv!!!
I have a situation in the CRM where I have multiple contacts per account. When I add more than one contact per account, the account button on the deals page concatenates the account names which removes the functionality to allow me to open the account overview from within the deals page. Why is this happening and can I force the CRM to only show a single account per deal?
Hi everyone,I'm developing an app that processes WorkDoc content. I am successfully using the blocks API to fetch the document structure, but I’ve hit a roadblock when trying to resolve embedded widgets (such as the Battery widget).The block payload returns a widgetId inside the stringified content field, like this: { "id": "86fec34c-4a0f-46fd-8cee-ad3c3d4e7bfc", "type": "widget", "content": "{\"type\":\"widget\",\"widgetId\":143752276,\"alignment\":\"left\",\"direction\":\"ltr\",\"widgetType\":\"EmbeddedSiteOverviewSection\",\"isCreatingWidget\":null,\"didNewLayoutMigration\":true}", "parent_block_id": null }In the Monday GraphQL schema, widgets cannot be queried at the root level - they normally require a parent dashboard(ids: [...]) query. However, because these widgets are embedded inside a WorkDoc, there is no parent Dashboard ID available.Is there an existing query, a specific nesting pattern, or a workarou
I am confused between Which pricing plan an automation app should have ?1) Seat Based2) Feature BasedDo I need to handle different scenarios before submitting app to monday Marketplace ?Or monday natively provides any options to work on the upgrade and downgrade of the plan I am having following questions while working with the plan and pricing ( If I am supposing the Feature based plan and pricing ) :1. On upgrade: what should happen to the automation count limit immediately?2. On upgrade: what should happen to existing automations that were within the old (lower) limit?3. On upgrade: what should happen to the monthly action count already consumed?4. On downgrade: what should happen to the automation count limit immediately?5. On downgrade: what should happen to existing automations that now exceed the new (lower) limit?6. On downgrade: what should happen to the monthly action count already consumed?7. Should the automation count and action count be linked — i.e. does creating more au
Quick question about instance-level storage. The monday.storage docs say:"The storage resets each time you introduce a new major version since each version has its own instances..."But the App Versioning docs say there's no such thing as major/minor versions anymore. Every version is just a full snapshot of the app, and "major versions" only get mentioned for apps from before Jan 2024.So which is it? If I promote a new live version, does instance storage actually get wiped, or does it stick around because the instance hasn't changed? The wording feels like it's describing the old versioning system and never got updated.If it does reset, is there a sane way to carry the data over to the new version? And if that "major version" wording is just outdated, any chance the docs could get fixed to match how versioning works now? Would save the next person the same confusion. Section's here: https://developer.monday.com/apps/docs/mondaystorage#instance-level
Hi! Please add the ability to get visibility into uninstall feedback in the developer center.
I have a credentials block configured in my automation with scope x. I'm adding a new automation block that requires an additional scope y, so the combined scopes are now x y.New sign-ins will correctly receive the x y scope. However, users who previously authenticated only have the x scope stored.My question: When one of those existing automations runs for a user with only the x scope, what happens?Does the OAuth token refresh using the original x scope and continue to work? Or does it attempt a refresh with the new x y scope, fail due to the mismatch, and break the automation?Follow-up: If existing users do need to re-authenticate, what's the recommended way to surface that to them — is there a built-in mechanism in monday.com for prompting re-auth, or does that need to be handled manually?
Hi monday team,I’m debugging a monday-code live installation issue and wanted to confirm expected behavior for the signed JWT aud field.For a new user installing the live app, the authenticated request context contains this public base URL derived from aud:https://ee78c-service-14856766-dfa...But the expected live app URL is:https://live1-service-14856766-dfa...Example log:[userId=103522...] Authenticated monday request context: { accountId: 14856..., userId: 103522..., hasBackToUrl: true, hasShortLivedToken: true, publicBaseUrl: 'https://ee78c-service-14856766-dfa...' }We use the JWT aud value to build OAuth redirect URIs and Google Calendar webhook URLs. If aud can contain a transient/internal service URL instead of the canonical live URL, those redirects/webhooks may be registered against the wrong host.Is it expected that aud may point to a non-live monday-code service URL for live installations? Or should live app requests always include the canonical live URL in aud?If this is ex
Hi,I added an "action" feature and set up a dialog box to "large," but it doesn't take up that much space.Can I somehow render larger dialog?
Hello!With the deprecation of “Integration for sentence builder”, I need to migrate my existing workflow blocks to the new automation blocks. I’m struggling to reproduce the same behavior.My current, working sentence builder action works like this:When column changes → user selects the relevant column → user selects my action → user maps the fields.For example:When Registration changes → then set vehicle brand in >brand column<When the automation runs, monday sends the following parameters to my Run URL:boardId itemId columnId — the selected Registration column columnValue — the actual Registration value brandColumnId — the column where I should write the brandUsing these parameters, I can update the item through the GraphQL API.Below are the input fields from my old sentence builder action:Input fields of the old action in my integration for sentence builder With the new automation blocks, I tried to recreate the same behavior: the user enters a license plate/registration, and t
Hi,I need to include two separate views in the document. One that perfectly matches the "Doc Action" is great for "actions" called from the document content. Second, I want a top bar-level "button" that will show different content for that document. Can I use the "Doc toolbar AI assistant" because it seems to match my needs? However, my feature is not related to AI at all.
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.