v20.0 Release Notes

  • CMS: Improved the Short Link Detail page to display a QR code preview and added options to download the QR code in PNG or SVG format.

  • CMS: Added caching for Content Channel Items to improve performance when retrieving content. This reduces repeated data requests by temporarily storing frequently accessed items, improving response times across Content Channel features.

  • Communication: Improved SMS opt-out tracking by identifying which Communication triggered a Recipient to unsubscribe, allowing for more accurate reporting and troubleshooting of SMS engagement.

  • Check-in: Improved Next-Gen Check-in to exclude schedules without a name from the schedule selection list, preventing empty checkbox options and reducing confusion during check-in.

  • Finance: The unused legacy TextToGiveSettings block has been removed. To learn more, please read the Tech Bulletin item on this topic.

  • CMS: Added an Obsidian version of the Content Channel Item View block. View and intent interactions are now recorded after the page renders in the browser so bots and JavaScript-disabled clients are no longer logged.

  • Lava: Fixed an issue where Lava statements nested inside entity command blocks within {% lava %} tags executed as raw strings instead of processing. Nested Lava logic inside a {% lava %} tag now evaluates correctly.

  • Connection: Added Connection Request Attribute filters to the Connections Hub Block.

  • Core: Updated the DetailBlock labels section to display the icon and title together when a PanelAction provides both, rather than dropping the icon.

  • Event: Added a Registration Template setting to require registrants to pay in full or set up a payment plan covering the remaining balance before completing registration.

  • Group: Improved performance of the Group Sync job when syncing to security roles. Previously the authorization cache was flushed on every group member update, now it happens a single time at the end of processing.

  • Workflow: Updated the v20 Form Builder Detail UI, converted Form Submission List and Form Analytics to Obsidian, and added Confirmation Email Both, Notification Email multi-address, and Connection Requests automations.

  • CRM: Added a Smarty Streets International location service for non-US address verification and optional geocoding. Requires a Smarty subscription for 'International Address Verification' or, if using geocoding, 'International Geocoding'.

  • Group: Added a PhotoId column to the Group entity.

  • CMS: Added a Status field to Persisted Datasets that records the result of the most recent build attempt. This Status is now displayed as a column in the Persisted Dataset List block, allowing administrators to quickly identify datasets that failed to build and may need attention.

  • Mobile: Updated the default layouts seeded for new mobile applications: a simplified MAUI "Homepage" layout (scrollable Main zone, redundant StackLayout removed) plus a new "Full" no-scroll layout.

  • Communication: Added a Create Connection Request SMS pipeline action and converted the SMS Pipeline Detail block to Obsidian.

  • Finance: Added per-account allocations (AccountAllocations) to PaymentInfo so financial gateway implementations can route transactions to the correct funds.

  • Connection: Added a "My Connections" view to the Connections Hub Block.

  • CRM: Fixed an exception that prevented person profile views from being logged when the viewer connected over IPv6.

  • Core: Added a Days field to the Schedule Builder duration so multi-day events like camps, retreats, and mission trips can be entered as days rather than total hours.

  • Core: Added a daily summary of Interaction counts per Interaction Component to improve reporting performance on high-volume Interaction data. Each day, the Rock Cleanup job populates the InteractionComponentDailyCount database table with the previous day's counts, which can then be used when building SQL-based reports. This feature is opt-in and is controlled per Interaction Channel using the new Enable Component Daily Counts setting. When a new Interaction Channel is created, that setting is initialized from the Default Component Daily Counts attribute on its Interaction Medium.

  • CRM: Updated Bulk Update to the newer Obsidian UI and completely rewrote the Bulk Update processor to improve reliability, error handling, and result reporting. This update also adds the ability to bulk update Record Source.

  • Prayer: Added a Comments column to the Prayer Request List block to display the number of comments associated with a prayer request.

  • Check-in: Updated next-gen supervisor screens to display soft and firm threshold limits alongside location counts.

  • Check-in: Fixed an issue in next-gen check-in that caused groups filtered by ability level to not be available during an override check-in.

  • Check-in: Updated the next-gen Check-in override feature to allow directly checking into overflow locations.

  • Core: Added a daily summary of interaction counts per Interaction Component to improve reporting performance. You can enable this opt-in feature for each Interaction Channel.

  • Communication: Added Communication List selection to the simple Communication Entry block.

  • LMS: Added the ability to require students to retake a learning activity when they don't earn a high enough score. The retake can be assigned automatically for activities the system auto-grades, or manually for those graded by the facilitator.

  • Connection: Added the Connection Request Entry block. This public form allows visitors to match or create their person record and request multiple connection opportunities.

  • Core: Updated Reminder List block to the newer Obsidian UI.

  • CMS: Fixed an issue where browser tab titles set by Obsidian blocks (Person Bio, Registration Entry, Communication Detail, and others) were never displayed, leaving the page's default name in the tab instead.

  • Check-in: Improved SMS sending from the Check-in Manager person profile so messages to a parent are delivered reliably. Rock now enables SMS on the recipient's mobile number, clears any prior SMS opt-out and reactivates an inactive person record. Each change is recorded in the person's history.

  • Event: Added a Long Answer question type to Interactive Experiences. It gives people a larger text area for multi-line answers than the Short Answer type allows.

  • Lava: Added a new ToMarkdown filter that converts a string of HTML to Markdown. This complements the existing FromMarkdown filter.

  • Core: Updated the Background Check administration by retiring the legacy Protect My Ministry (v1) component. Historical background check documents remain viewable on the person profile.

  • CMS: Fixed page routes saved from the Page Properties block not taking effect until an app restart.

  • LMS: Fixed the course navigation menu not displaying on mobile for a completed course when historical access is enabled.

  • CMS: Updated PageViews Block to display data when loaded with a non predictable id.

  • Finance: Added a block setting to set the Record Source of a Person created within the Benevolence Request Detail block.

  • LMS: Fixed the Copy Class action to give each copied class its own activity content, so editing a copied class no longer changes the original.

  • Group: Fixed a misspelling in the Maximum Zoom Level setting label on the Group Finder block.

  • Connection: Fixed workflows launched from the Connections Hub doing nothing when they used a Redirect to Page action.

  • CMS: Fixed printing from the Rock Next Gen theme so that all pages are included instead of only the first page.

  • Connection: Added a Celebrations Report, a single place to review and manage connection request celebrations. From there, review submitted stories, update celebration details, and keep celebration content consistent.