Check out the brand new Python SDK for monday code here! It can be used alongside the CLI and contains a variety of methods to access environment variables, update secure storage, write logs, and more.

The openItemCard SDK method opens a modal containing information about the item. Now, the item card also has the option to start a conversation in the item's updates or delete the item. This update will happen automatically—you do not have to take any additional steps to implement it.

We're excited to announce a handful of updates to marketplace app discounts, including expanded functionality, improvements to the UI, and new APIs!

View existing discounts in the UI

You can now view existing discounts in the UI itself! There, you can see the account slug, discount status, plan name, period, whether or not it is recurring, discount percentage, creation date, and valid until date.

Delete discounts

The screenshot above may have given it away, but you can now also delete discounts by clicking the trash can!

View and manage discounts through the API

Not only can you view, grant, and delete discounts in the UI, but you can also do it through the API! We added a new query that enables you to retrieve discount data and two mutations to grant or delete discounts through the API. Read more here!

Grant discounts to all accounts

You can now grant discounts to all accounts by passing -1 as the account slug. This can be used to provide blanket discounts for all new subscriptions.

Grant discounts to multiple plans

Last but not least, you can also grant discounts on multiple plans instead of just one!

Starting today, Integration templates will be renamed to Integration for sentence builder app features. They will remain under the Automation builder label.

These changes are effective immediately and apply to both new and existing app features, but don't worry - this update requires no action from you.

Seat-based app recommendations are now once again based on an account's monday.com plan size, rather than the number of active users. This change comes after we received user and developer feedback about earlier updates that would only count the account's number of active users.

You can use the new apps_monetization_info object to retrieve the correct number of seats an account has.

query {
  apps_monetization_info {
    seats_count
  }
}

We are announcing the marketplace revenue sharing program!

The revenue sharing program, scheduled to launch on September 1st, 2024, is structured to support our partners’ growth and incentivize the development of high-quality apps.

How will it work?

  • Once an app reaches the milestone of $200,000 in lifetime accumulated revenue*, the revenue sharing model is activated.
  • For every subsequent month, 85% of the revenue generated by the app will go to the developer and 15% of the revenue will be collected by monday.com
  • For instance, if an app makes $10,000 in a month post the milestone, the app builders will keep $8,500, and monday.com will collect $1,500.
    This model has been carefully crafted to ensure that our developers are supported as they scale, and to reflect our shared success. This will ensure our overall growth that will continue to amplify the reach of your apps and help you thrive. Read more about it here.

*Accumulated revenue refers to the total amount of revenue generated by a product, service, or entity over its entire existence.

We just added the runtimeMetadata property to the action execution body. It contains two new attributes:

  • actionUuid: A UUID representing the execution of an action.
  • triggerUuid: A UUID representing the execution of an entire automation (same as the activity log's run ID). If one action is used multiple times in a recipe, they will all have the same triggerUuid.
{ 
  "payload": { 
    "blockKind": "action",
    "inboundFieldValues": {
      "boardId": 1234567890, 
      "columnId": "text"
      "itemId": 9876543210
    },
     "inputFields": { // input fields are based on the input fields configuration of your action and depend on the field type
        "boardId": 1234567890,
        "itemId": 9876543210,
        "columnId": "text"
      },
      "recipeId": 123456, //unique ID of the recipe for your app. if multiple accounts are using the same recipe, the same recipe ID will be sent
      "integrationId": 123456 //unique ID of the integration recipe added to your board
  }, 
  "runtimeMetadata": {
    "actionUuid": "a6676dzce11zd50b25c4871417e1zez1", // uuid that represents the execution of the action
    "triggerUuid": "z607d55cc428bb438ba02cbbcde6a25e" // uuid that represents the execution of the entire automation (same as run id in the activity log)
  }
}