Root release update | February 2025
23 days ago by Root Product Team
We’re committed to keeping you fully up to speed with all of the features, enhancements and fixes we ship at Root. Going forward, our release notes will be a little bit more detailed.
Here are all of the updates and improvements we shipped over the last month 🛠️
Features
-
We’ve introduced new features to improve flexibility and customisation within Embed:Root Embed features- Checkbox button component: A new checkbox button is now available in Root Schema, offering checkbox functionality with the visual style of a radio button. Read the docs.
- Dark theme support: The Embed iframe flow now adapts to dark theme styling. When dark colours are applied to the theme or app elements (header and footer), text automatically adjusts for better readability, ensuring a seamless user experience.
Platform Enhancements
-
Performance Enhancements
We’ve introduced enhancements to improve stability, efficiency, and visibility across Root:
- Environment filter for scheduled function lookup: Scheduled function lookups now filter by environment, reducing unnecessary database load and optimising job performance.
- Mixpanel event tracking: We’ve integrated Mixpanel into the Root dashboard to enable event tracking. While currently limited, we plan to expand it to gain deeper insights into user interactions.
- Mixpanel Event Tracking & Test Pipeline Enhancements : We’ve expanded Mixpanel event tracking across the web platform by adding 18 new events, improving tracking accuracy and data collection. Additionally, we optimized the test pipeline, reducing setup time by 3 minutes and saving 6 minutes of billable machine time per test run—bringing setup time down to approximately 1 minute. These updates lay the groundwork for full Mixpanel integration in the next phase.
- Job to Delete Stale Product Module Lambdas : Introduced a cleanup job that automatically removes stale Product Module lambdas to improve efficiency. A lambda is considered stale if it is not used in a live or draft Product Module definition, the Product Module has not been modified in the last two weeks.
- Auto-deploy PM lambda layer: The semaphore pipeline now automatically builds and deploys the product module execution lambda layer when changes are detected, streamlining deployments.
- Set Up Autoscaling Rules for Queue-Based Scaling : Workers now dynamically scale up and down based on queue size, ensuring better performance. This means, faster document generation during peak times, reduced processing delays for high-load tasks, potential expansion to other queues for broader scalability.
- Fix S3 URL Replacement Logic for Private Stack Bucket : We fixed an issue where S3 file key extraction errors were causing failures when handling private stack buckets. Enhancements: Additional unit tests added to prevent future regressions, AI-assisted context implemented for domain-specific handling.
- Transform Unit Test Suite into Actual Unit Tests: Removed all integration-style tests from the unit test suite, eliminated database dependencies, ensuring unit tests no longer require a database connection, and improved reliability and prevented similar issues in the future.
- Rootstrap Refactor : Performed a major cleanup of Rootstrap to improve maintainability: Removed deprecated components, migrated relevant components to their proper locations, refactored code for better structure and easier future development.
-
Billing Enhancements
We’ve made several improvements to increase reliability, accuracy, and automation across Root’s billing processes.
- Automated billing run job: A new job now automates the billing run and payment submission process, replacing manual workflows. Running Monday to Friday at 10am on enabled stacks, it reviews payment alerts, processes payments, and submits lifecycle alerts.
- Nedbank Collections | Account limit monitor improvements: We’ve introduced a daily job to check if payment amounts or policy premiums exceed thresholds for configured Nedbank payment methods, with Slack alerts notifying the billing team. Alerts are now clearer, including percentages, organisation names, and deduplicated entries. We’ve also refined policy selection by factoring in payment method type, ensuring more accurate threshold alerts.
- Nedbank Collections | Better handling of failed payments: A single failed payment will no longer block an entire batch from being processed. Errors are now logged separately, allowing the remaining payments to continue without disruption.
- Nedbank Collections | Nedbank statement details in payments: Payment raw responses now include Nedbank statement details, improving accuracy when marking payments as successful based on received bank statements rather than assumptions.
- Collection request validation: The collection request endpoint now prevents requests from being created with a past date, reducing errors.
- NTU and lapse prevention updates: We’ve optimised the data sent to Mixpanel and ensured that lapse prevention start and end dates are accurately retrieved from the backend for improved reliability.
- Billing AI Context : We worked on reducing the time and effort required to resolve billing queries.
- Refund processing optimisations—achieving faster response times and reduced complexity.
- Billing Day/Premium Change Info Alerts : New info alerts now appear in the policy view when billing day or premium amount changes are pending. These alerts clarify that changes will apply to the next billing cycle. Deferred billing day updates are now correctly displayed to avoid confusion.
- Payment date flag now excludes retries.
- Dynamic icons indicate when manual review is required.
pending_initial_payment
is now considered in policy_status checks.
Security & Compliance
- Stronger validation for notification emails: A new check helps prevent notification failures due to invalid sender email addresses, significantly reducing potential errors while keeping existing templates unaffected.
Bug fixes
- NTU and lapse prevention alerts: Fixed an issue where alerts persisted beyond the prevention period. If no start or end dates are set, they now default to today’s date for more accurate behaviour.
- Billing Run Fixes & Tweaks: Fixed missing payment date flag and small balance check on lifecycle alerts. Payment alerts now correctly include type. Now showing correct payment values.
- Filter Out Flushed Policies from
dangerouslyGetPolicy
: We identified and resolved an issue where flushed policies were incorrectly included in policy lookups. This fix helps prevent unexplained "policy not found" errors, improving accuracy in scheduled function jobs.
If you have any suggestions or feedback, please share them with your Client Success Manager or submit them via the Root product roadmap to make sure we always know what’s top of mind for you.