We're excited to introduce two new features to help you build more secure, transparent, and enterprise-ready apps on monday code:

  1. Control outbound communication with a network allowlist: Use a network allowlist to restrict or fully block external communication from your app. You decide which services are permitted, giving you full control over outbound traffic.
  2. Static IPs for outbound traffic: monday code now supports a set of static IP addresses for all outbound traffic. You can configure your external services to only accept requests from these IPs—ideal for working with firewalls, security groups, or IP-based authentication.

👉 Read the documentation to get started!

Apps hosted on monday code can access their region-based hosting URL directly from the app context using the SDK.

Call monday.listen('context') or monday.get('context'), and check for the new mondayCodeHostingUrl field in the returned context:

{
  "theme": "dark", // or "light" or "black"
  "subscription": { // app subscription object for marketplace app
    "plan_id": "5",
    "renewal_date": "2023-07-10T00:00:00+00:00",
    "is_trial": false,
    "billing_period": "monthly",
    "days_left": 14,
    "pricing_version": 5,
    "max_units": 100 // maximum number of seats allowed for seat-based plans, null for feature-based plans
  },
  "account": {
    "id": "654646" // unique account ID
  },
  "user": {
    "id": "65464", // unique user ID
    "isAdmin": false, // or true 
    "isGuest": false, // or true 
    "isViewOnly": false, // or true
    "countryCode": "IL", // user's two-letter country code
    "currentLanguage": "en", // user's default language
    "timeFormat": "24H", // or "12H"
    "timeZoneOffset": 3 // time zone offset based on GMT
  },
  "region": "use1", // availability zone ID
  "productKind": "core",
  "app": {
    "id": 64541082, // unique app ID
    "clientId": "d5be5bbc7re646g76b9988a6ad64d780" // unique client ID
  },
  "appVersion": {
    "id": 6458043, // unique app version ID
    "name": "New App", // name of the app's current version
    "status": "draft", // or "live"
    "type": "major", // or "minor"
    "versionData": {
      "major": 1, // version number
      "minor": 0, // version number
      "patch": 0, // patch number 
      "type": "major" // or "minor"
    },
    "mondayCodeHostingUrl": "https://b325b-service-25854030-b5796b91.us.monday.app" // used only for monday code apps; specifies the region-based hosting URL for server-side code
  },
  "workspaceId": 1350535, // unique workspace ID
  "boardId": 6456619824, // unique board ID
  "boardIds": [
    6454619824 // list of connected boards
  ],
  "itemId": 64564519872, // unique item ID
  "instanceId": 65461164, // unique instance ID for the feature on the board
  "instanceType": "item_view" // feature type
}

Every app listed in the marketplace now has a dedicated Partner Page that highlights the partner's portfolio, program level, trust elements, and key performance metrics. These pages are designed to build user confidence and drive more app installs by providing greater visibility into each partner’s credibility and offerings.

No action is needed—Partner Pages are automatically created for all marketplace partners. Learn more about this new feature in our documentation!

monday workflows is a powerful platform component that enables users to automate their processes. Using the visual workflow builder, users can combine triggers, actions, and conditions to create tailored automations.

Now, with the monday apps framework, you can build apps for monday workflows using two dedicated app features: Integration for monday workflows and Custom field for monday workflows.

The Integration for monday workflows app feature allows you to develop modular, reusable blocks, such as custom triggers and actions, that users can mix and match with other blocks in the workflow builder to create flexible integration recipes.

Each block can be configured with input and output fields. These fields can either use monday's built-in types or be fully customized using the Custom field for monday workflows app feature.

Combined, these features offer a highly flexible, customizable solution for building powerful, workflow-driven integrations, helping users streamline operations and effectively automate their workflows.

Learn more about building apps for monday workflows here!

We added a new ttl parameter for storage.set requests, allowing you to specify a time-to-live (in seconds) for particular stored values. After the TTL expires, the value will be deleted and can't be retrieved.

const { version, success, error } = await storage.set(key, value, { previousVersion, shared, ttl, version });

Webhook payloads now include a new max_units field. For seat-based plans, this field returns the maximum number of seats allowed. For feature-based plans, it returns null.

{
  "type": "install",
  "data": {
    "app_id": 1000000000,
    "app_name": "Test App",
    "user_id": 2,
    "user_email": "[email protected]", // the admin who installed the app or approved the installation
    "user_name": "User 1", // the admin who installed the app or approved the installation
    "user_cluster": "other",
    "account_tier": "free",
    "account_max_users": 10000,
    "account_id": 777777,
    "account_name": "Demo Account",
    "account_slug": "test",
    "version_data": { major: 4, minor: 5, patch: 0, type: "minor", number: 16 },
    "timestamp": "2023-06-26T00:00:00.000+00:00",
    "subscription": {
      "plan_id": "5",
      "renewal_date": "2023-07-10T00:00:00+00:00",
      "is_trial": false,
      "billing_period": "monthly",
      "days_left": 14,
      "pricing_version": 5,
      "max_units": 100 // maximum number of seats allowed for seat-based plans, null for feature-based plans
    },
    "user_country": "IL"
  }
}

With the new gradual release feature, you can roll out new app versions to a select group of accounts. This enables a smoother release process, especially for critical and breaking changes, and lets you test features with a smaller audience before a full rollout.

Gradual releases are available for all monday.com apps, regardless of where they are hosted. However, this feature does not currently support workspace templates or integrations with the sentence builder features.

Learn how to set up gradual releases in our documentation!

The app listing page now displays the date of the most recent live version update. This helps users quickly identify actively maintained apps, ultimately boosting confidence in their quality and relevance!