Welcome readers! The first half of this month was all about Frappeverse. The team was working on polishing their work and preparing for their talks with multiple rounds of mocks, trying to nails down all the details till the very last minute.
In hindsight, the two days of the event just flew by. We had a very smooth start, the talks went smoothly one after another just how we wanted, everyone tried to meet as many people as they can and we ended both days with the community in the spotlight as has been our tradition.
And now that the event is over, we are all trying to get back to our routine lives. If you missed the event you can catch up on all the talks from this playlist.
Table of Contents
Framework got a few new features and improvements:
Map view now has support for Satellite view, with optional labels and terrain support as well. #33848 (Contributed by Mohammed Irfan).
Reports can now be exported in the background, and an email with a link to the report will be sent out if you choose this option. This is useful to prevent timeout errors for huge reports. #33861 (Contributed by Rahul Agrawal).
You can use search in English even if the system language is not English. #33668 (Contributed by Fisher Yu).
You can enable a warning that displays a pop-up if you click on a URL that takes you outside the site. #34122 (Contributed by Corentin Forler).

Material Requirements Planning Report (MRP)
In version 16, the new MRP report feature was added. The Material Requirements Planning (MRP) report calculates the required quantities of raw materials and components, along with the dates when they are needed, based on the demand for finished items.
Service Expense Account in Subcontracting Receipt
From version 15 onwards, users can set the Service Expense Account for a service item in the subcontracting receipt. If an expense account is defined in the service item, it will be auto-filled in the Service Expense Account field. Users can also set it manually in the subcontracting receipt.
If no service expense account is specified, the system will use the Finished Item’s expense account to book the service cost. Once the subcontracting receipt is submitted, the system will book the service cost against the service expense account.
Additional Material Transfer
The Transfer Materials button is not showing because all required materials have already been transferred from the Store to the WIP warehouse against the work order, but the user wants to transfer additional materials since some are damaged.
To fix the issue, in version 16, we added a provision to set 'Transfer Extra Raw Materials to WIP (%)' in Manufacturing Settings. Once the user sets the 'Transfer Extra Raw Materials to WIP (%)' in Manufacturing Settings, they can transfer additional materials from the store to WIP against the work order.
Auto Set Serial / Batch in Subcontracting Receipt
If the backflush is based on the BOM and materials are available in the supplier warehouse, the system will automatically pick the serial/batch during the backflush.
Other Fixes in Stock Module
Do not allow backdated entries if a stock reconciliation exists in the future for the serial or batch. The system will show a validation error when submitting a backdated stock transaction for a serial or batch.
Reposting was slow because the same vouchers were being reposted multiple times for older entries, which has now been fixed.

Accounts
Accounts received a lot of minor fixes this month.
- Exchange Rate Revaluation will only include accounts that have some Gain/Loss due to revaluation.
- The Trial Balance (Simple) report was incorrectly using cancelled ledger entries, which have been fixed.
- Remarks field will not be included in the PDF statement if Show Remarks is unchecked, and the Include Filters option in the print view of reports will be honoured
- If an item price is missing from the price list set in the transaction, the system will fallback to the default price list.
- Fixed bug where Terms and Conditions weren’t added automatically in certain scenarios.
- The
base_net_rate
field in Quotation had an incorrect currency symbol. It has been fixed.

Leave Adjustment
Did you ever create leave policies with meticulous monthly and yearly calculations, only to have someone point out that there has been a mistake, and wonder how you'll correct all the leave allocations? Well, say no more
Leave adjustment option lets you create adjustments to your existing allocations so that you can easily correct leave balances if required
Employee Advance Account Validation
Frappe HR now utilizes the Advanced Payment Ledger to track advanced payments, such as employee advances. This has brought about other changes, such as employee advances are now a strictly “Receivable“ type account and will be validated when you create employee advances.
Critical Bug Fixes
- Annually expired leave allocations would continue to show in the employee’s leave balance and let them apply leaves against the expired allocation. This fix is released with the latest minor release of version 15.
- The other critical fix went in earned leaves. Earned leaves for quarterly, half-yearly, and yearly leaves would be incorrectly calculated and credited if the policy was assigned in the middle of the leave period. This too is fixed with the latest patch release of version 15.
- PWA now lets you download your expense claims and salary slips as PDFs. Contributed by Kerolles Fathy
Payroll bug fixes
- Fixed fuel expense calculations in vehicle log. #3600
- Fixed Total Taxable Amount calculation to include deduction before tax calculation in Income Tax Computation Report. #3576
- Leave or expense approver roles are assigned even if a role profile is set for the user. #3565 (Contributed by Nareshkanna S)
- Filter the advanced account link field by account type in the Employee Advance form in PWA. #3545 (Contributed by Karuppasamy)
- Attendance summary report is shown for the days after the employee’s date of joining. #3542 (Contributed by Venkatesh)
- Fixed the issue where shift assignment couldn’t be created from the roster due to the link field value. #3483 (Contributed by Venkatesh)

Server Snapshot Management
In Frappe Cloud, you can now take and manage snapshots of your servers, making it easy to recover them whenever needed.
You can also create dedicated snapshots of your servers and keep them for as long as you like, with a small additional cost.
Restoring site data from a snapshot is simple and can be done in just a few quick steps. For more details, check the documentation

Highlight text in Lessons
When the lesson content is too text-heavy, students need some way to remember key information to refer to later while revising. The age-old and most effective method used with traditional textbooks is the use of highlighters.
Students can now highlight key information in their digital textbooks (lessons) as well. They just have to select the text they wish to highlight and select a suitable color. The highlight reflects on the screen and gets saved for the student. Any time they visit the lesson later, their highlighted text will help them with a quick revision.
Make Notes
Notes are essential to prepare for tests and exams. Now, students can maintain notes for each lesson on Frappe Learning.
They can also select certain text from their lesson and add it to their notes. Quoted lesson texts can be clicked, and the student will be taken to the relevant text and section in the lesson.
Users have a Home now
Previously, the default Home for all kinds of users was the Course List. This did not make sense as a Home Page should show relevant content to all users. As a student, the courses I am currently learning are more important, whereas for Instructors, the courses that are created by them are important. So now, Learning has a home page, which shows relevant content to each user.
For Students, it shows their latest three enrolled courses, their latest four enrolled batches, their upcoming evaluations, if any, and their upcoming live classes, if any.
For Admins, it shows their latest three created courses, their four upcoming batches, their upcoming evaluations, if any, and their upcoming live classes, if any.
Maintain a Streak
Platforms like Duolingo have found a way to keep learning motivated using the concept of a streak. The idea is to motivate students to make some progress every day, keeping them consistent.
Frappe Learning now has streaks, too. Each day, a student completes a learning activity, such as a lesson, quiz, assignment, or programming exercise. Any day they complete any of these activities, their streak gets updated.
Track your Transactions
Previously, configuring payments was not straightforward, as the process was divided between the desk view and the frontend. But that's not the problem anymore. You can now manage everything about payments right from the Settings dialog in the frontend
Admins can now also track all their transactions right from the frontend So anytime you receive a payment for a course or a batch, an entry gets made and is reflected here. Admins can filter the list and also edit details if needed.
Custom Branding for PWA
PWA was introduced last month. But even if you had custom branding on your site on browsers, the PWA Icon and Title were still that of Frappe Learning.
That’s not the case anymore; any PWAs that you now install will reflect the Icon and Title as per your branding.

Map Charts
One of the most requested features is finally here! Visualize your data geographically with our new Map Chart feature. Choose between the World Map or India Map views to display your metrics by location. Simply pick your map and select the region column, and you're done. It's that easy.
Drill-Down into map elements
Want to see the underlying data for you regions? Click on any map element to open drill-down dialog. Then perform all your exploratory analysis in the drill-down dialog.

The biggest ever update for Helpdesk is here!
New Ticket UI
The ticket view for agents in Frappe Helpdesk just got a major revamp.
SLA tracking right on top for full visibility
Clear source info and proper tracking of feedback
Side panel with customer details, ticket priority, contact info, and related/open tickets for complete context
Presence indicators to see who’s viewing, following, or already working on the ticket
A much more context-rich, collaborative experience for support agents.
Email Notifications
We’ve been working to make the email experience smoother and more powerful. You already know about email threading, feedback, and acknowledgement emails—features. The one piece that was missing? Customization.
Now, with customizable email notifications, you can tailor the messages sent to your customers or agents so they match your business needs perfectly. This completes the email feature set and gives you full control over how your communication looks and feels.

Full Text Search
Earlier, you could only look up tickets by their subject or description. But now, searching is more powerful than ever.
Simply press Cmd / Ctrl + K to open the command palette, and you’ll get a dedicated search page where you can find results across:
Ticket descriptions
Ticket subjects
Emails
Comments
No more digging around — just type your query and see everything relevant in one place.

Telephony Integration
Agents can now initiate and manage customer calls without ever leaving the ticket view, streamlining communication.
Key Features:
One-Click Calling from Tickets: Instantly connect with customers with a single click on their ticket. No more tab-switching, copy-pasting numbers, or manual dialing—just seamless, contextual conversations.
Unified Call Management: Easily track, search, and manage all call logs in one dedicated, intuitive page. Never lose track of a critical conversation again.
Real-Time Activity Tracking: Every call (incoming, outgoing, missed, duration) is automatically logged in the ticket’s activity feed, providing full context and a complete audit trail for your team.
Flexible Provider Support: Launching with integrations for Twilio and Exotel

Better Organized Settings
The Settings page is now better organized with clear categories, so you can find what you need faster.
Assignment Rule
You can now configure assignment rules directly from the frontend, making it easier to manage lead and deal distribution without switching to the backend.
Fixes
Fixed the issue where organization was not getting renamed: #1234
If contact email is updated it was updating previously opened contact. This has been fixed: #1226
Popup was not closing after deletion. It closes now: #1192 - Contributed By Patle Yashpal
Added support for outgoing whatsapp messages from other apps: #1198 - Contributed By Anup Dh
Saving will not be allowed without setting mandatory fields: #1282
Bulk Delete "Reference Doctype must be set first" Error has been fixed: #1125 - Contributed By Neha Prasad

We’ve just started building our first app on Studio - a Campaigns/Marketing app. So far, I had been building Studio features in isolation, but working on a complete app from start to finish gave me a clearer picture of how everything comes together. Along the way, I also discovered gaps and missing pieces in Studio that only became visible in real use. Here are some of the updates that came out of this journey:
Creating Components
You can now save layouts as components and reuse them on the canvas.
Custom components available for drag & drop:
Component Interface
In addition to saving the layouts, you can also specify "Inputs" that the component can accept and connect them to sub-blocks internally. Input definition includes:
- Name
- Type: Text, Number, Checkbox, Select, Textarea, Code, Color
- Default Value
- Description
- Is Required
Build component interface:
Test inputs within the editor:
Wire sub-components inside Studio Components with passed inputs:
Basic Chart Components
Added Donut, Number Card, Axis Chart (components from Insights that were added to frappe-ui). The editing experience for these object-heavy components will be improved soon. #103
Dynamic Value Selector for Props
Before:
- Typing out the mustache syntax was tedious.
- Autocompletion & bracket completion are only available in Code fields, not other types.
- For select, checkbox fields, wiring dynamic values was not possible.
After:
- Faster dynamic value setting using a selector. Wrapped in mustache syntax automatically on selection.
- Displays variables, data sources, repeater & component context applicable for the selected block
- Types displayed inline for more context.
PR #95
Before | After |
---|---|
![]() |
![]() |
Dynamic Styles
I wanted to highlight the selected audience cards in a campaign and realized I had no way to do so. This felt like a basic need when designing apps, so I added support for it:
You can now write JS expressions referring to your variables, data, route objects, etc., in dynamic styles. #101
Setting dynamic border color for cards:
Dynamic styles wired:
Utility functions
PR #96
navigate
You can navigate to any route in your app using this function
studio.navigate({ name: "Campaign", params: {id: data.name }})
All these usage patterns will work: Vue Router Guide. Examples:
// literal string path studio.navigate('/users/eduardo') // object with path studio.navigate({ path: '/users/eduardo' }) // named route with params to let the router build the url studio.navigate({ name: 'user', params: { username: 'eduardo' } }) // with query, resulting in /register?plan=private studio.navigate({ path: '/register', query: { plan: 'private' } }) // with hash, resulting in /about#team studio.navigate({ path: '/about', hash: '#team' })
showToast
Show toast messages of types success, error, info, warning
studio.showToast({ message: "Campaign created successfully", type: "success" }) studio.showToast({ title: "Campaign creation failed", message: "A Campaign already exists for these days", type: "error" })
Events & Scripting Enhancements
Wire scripts on the success or failure of document insertion or API calls (PR) You will now get to toggle between displaying a message/running a script on the Insert a Document event. Default message for document insertion is: document created successfully/failed to create document. You can customize the message if needed.
Passing parameters in API Data Source (PR) + API Call in event actions (PR)
Static Dynamic
Fixes
Apart from all these features, the app development also drove important fixes in Studio:
- Fixed slot editing experience: #100
- Preview mode was not working in some cases: #109
- Code Editor: allow JS object literals & make object editing more forgiving #91
- and much more…

This month, we had one goal - releasing a stable, polished, version of Drive. And you have it - Drive v0.3 is out now!
Writer
This new release brings a suite of features to you. Specifically, you have the new Writer:
Collaboration, versioning (both manual and automated), ToC, and all the standard features you’d expect.
Edit text-based files (including Markdown) in Drive itself.
Embed other Documents by typing [[
S3 Integration
Our S3 integration got an overhaul:
Syncing is no longer in beta! Now you can connect your existing file system and get going immediately.
Separate teams can have separate S3 buckets.
Here's a demo of creating a new team and syncing from an existing S3 bucket.
Onboarding
The onboarding flow has been redone to make it as simple and intuitive as possible. What’s more, you can now manage teams completely from the frontend.
Other Changes:
We have integration with Frappe Slides - install Slides in your site and you can create and manage your presentations directly from Drive.
The uploading UX was redone, allowing you to upload hundreds of files to Drive seamlessly.
Public access has expanded - you can now enable public uploads or commenting, allowing people without an account on your site to interact with your files.
You can disallow downloading of files.
Last and best, the new project of this month: desktop syncing! Our app is in the alpha stage - please join the Telegram group if you want to test it out - or if you have any other feedback.

And that's it 👋
That's all for this month. Do let us know your thoughts on these updates. See you next month with more!
·
Impressive! Thank you all.