Class-Based Client Scripts for Frappe CRM

If you held back from customizing Frappe CRM because of scripting limitations, that’s now changed.

We’ve introduced a simpler, cleaner, class-based JavaScript approach to client scripts. It supports ES6-style classes, field and grid-level triggers, and interactions between parent and child documents.

Simple syntax, structured logic, built for real-world use.

Read full blog here: Class-Based Client Scripts for Frappe CRM | Frappe Blog

3 Likes

Hi. I tried the new class based client script approach with CRM Deal, but somehow field level changes for status in CRM Deal are not captured at all. Other fields are like organization() etc are ok, and I can see that the field level changes are captured. status seems to have issues.

class CRMDeal {
  status() {
    console.log("🎯 TEST SUCCESS: status() method called!");
  }
}

Any ideas?

Fixed in develop will release in v1.48.0

1 Like

That’s lovely. Thanks! Sure it would be really helpful for everyone else!

1 Like