We released an infrastructure for developers to add new features to their apps without disrupting existing users’ workflows.

600

GIF showing how to change versions in your app

For a full breakdown of the feature, check out this article: App versioning

Wanted to flag a couple of benefits that I think y’all will appreciate:

  • You can work on new drafts of your app (e.g., add new features) without worrying about current users
  • You can automatically push updates to your app to your user base with a few clicks
  • You can prevent breaking changes from being pushed by requiring users to update an app before using new features

If you have any feedback, please post it in our Developer's community

Uploading files to monday.com has become simpler using our SDK.

Developers using our SDK to make requests from View apps that are using Seamless Auth will now also be able to do seamless file uploads! monday.com will now translate any query into a multipart request if it detects the request contains files. This means that if you’re adding files as variables, it will just work with zero extra code on your side.

If you are making a direct call from the server-side using the monday.api method, the translation will not work. Instead, we recommend constructing your own HTTP request using a library of your choice.

You can find more info on this in this community post
You can also find a NodeJS code example here.

After much anticipation, we’ve released the ability to create dependencies within your List type custom field blocks! For the complete guide on how this feature works, check out our Custom Fields article.

This will allow you to get a payload after a user makes a selection for your first field containing the Id of that selection. This way, when the user goes to make a selection in a second field, you can use this stored Id to load/call those dependent options.

Here is how you would go about setting up and using this new feature:

In the “Field Type Editor” of your Custom Entity, choose the “Automation config” to be of the “List” type. Insert your corresponding “Remote Options URL” (this URL returns the payload that contains the fields in your Custom Entity).

For the dependencies, in your second custom field type (in this screenshot it’s “Second Option”), add in the field type that it’s dependent on-- the one the user chooses first:

450

In your “Action Editor” custom block, list out both the first and second (i.e. dependent) options:

450

In the action block of your recipe, configure the second option to be dependent on the first option:

450

You can also return the boardId as a dependency. This is how that configuration would look:

Field type editor:

450

Action block selections:

421

If you have any feedback, feel free to post it in our Developer's community.

We released 8 React components that you can use in your monday apps!

2756

React components

Head to this Github repo to learn more: monday UI React Core 32

You can also access them directly from our apps documentation:

Can I contribute my own components?

Read our Contributing Guidelines to learn how you can add your own components to the monday library.

Included components:

You can now create custom entities in your app that map to objects in other tools (or monday.com). You can also specify dependencies for the configuration!

For more information, check out our complete guide on Dynamic mapping here.

When a user tries to configure the mapping field, the monday Apps server will send a request to your “Field Definitions URL”. Your server should then respond with a list of field definitions, which your users can use to map item data to.

Here’s an example function that returns the field definitions:

async function getRemoteFieldDefs(req, res) {
  return res.status(200).send([
    { id: ‘name’, title: ‘Name’, outboundType: ‘text’, inboundTypes: [‘text’] },
    { id: ‘desc’, title: ‘Description’, outboundType: ‘text’, inboundTypes: [‘empty_value’, ‘text’, ‘text_array’] },
    { id: ‘dueDate’, title: ‘Due Date’, outboundType: ‘date’, inboundTypes: [‘empty_value’, ‘date’, ‘date_time’] },
    { id: ‘creationDate’, title: ‘CreateDate’, outboundType: ‘date_time’, inboundTypes: [‘date’, ‘date_time’] },
  ]);
}

You can already explore this by adding a custom field to your app:

2836

If you have any feedback, feel free to post it in our Developer's community.

Item views let you create apps that are displayed in an item’s “Updates” pane. The view behaves exactly the same as a board view or widget, only it’s connected to a single item.

Check it out in our documentation here: Item Views.

You can use our general quickstart guide to build an item view: Quickstart for Views and Widgets