Learn how you can support Rock through our 2026 donation update!

Notable Updates

Rock v18.0 Released November 14, 2025 (Currently in Beta)



You can read the details on the official Release Notes page.

    CMS v18.0

    • Added Helix support for Lava Applications to core. This provides a great new way to build interactive pages in Rock powered by Lava for more advanced administrators.
    • Added support for pinning, categorizing, and improved management of Short Links through UI, Lava, and Workflow enhancements. Added the auto-generation of Short Link Tokens on Detail and Dialog Blocks. The Page Short Link List Block now includes Category, Click Count, and IsPinned columns, plus filtering by creator and sorting by pinned status and clicks. For more details and examples, check out the Short Links documentation.
    • Fixed issue with new v2 API endpoints not fully honoring the 'apikey' query string parameter for authentication.

    Check-in v18.0

    • Fixed issue that caused new Person records created in the Family Edit screens to only have a Nick Name without a First Name. Fixes: #6464
    • Added additional fields and filters to Next-Gen labels: Campus Name, Device Name, Search Type Name, Source Name.
    • Fixed an issue in Next-Gen Check-In with label printing when multiple kiosks print to the same physical printer. If two people checked in at the same time it was possible for the labels to become interleaved with each other. This has been resolved.
    • Fixed an issue that caused the Mobile Check-in block to not print labels when operating in self check-in, fully automatic mode.
    • Added button to the Next-Gen Check-In label detail page to make a copy of the label.
    • Added ability to print label previews to physical printer when designing Next-Gen labels.
    • Fixed Next-Gen Check-In block's Family Edit mode to allow switching Inactive individuals to Active. When an individual is Inactive, a Record Status input will now appear allowing them to be switched to a different Record Status. Fixes: #6474
    • Fixed the reprint labels screen in next-gen check-in to handle spaces correctly when searching for people to reprint. Fixes: #6536

    Communication v18.0

    • Added a new Communications Saturation Report block to help analyze email engagement. The report shows email volume by person, top recipients, and messages with the most recipients to help prevent inbox fatigue and keep engagement strong.
    • Fixed an issue where editing an existing Communication in the Communication Entry block would incorrectly reset the From Name and From Address fields to the current individual's name and email, instead of retaining the original sender information. Fixes: #6479
    • Fixed an issue where "Asset" images in the Email Editor did not support custom size settings, which could cause layout issues in email clients. Updated the editor to support the same image size options as uploaded images, including Original, Fixed, and Responsive modes. Fixes: #6468
    • Added an Obsidian Communication List block with enhanced status display and optimized data loading, making it easier for administrators to quickly identify message progress and issues.
    • Added an Obsidian Communication Detail block with improved message visualization and Communication Recipient insights, allowing administrators to review communication content, delivery status, and recipient activity more efficiently.
    • Added the Community style chat mode, which allows for a more threaded chat experience.
    • Added a new "Chat Message" Automation Trigger that can launch Automation Events when a Chat message is sent. Also added a "Send Fallback Chat Notification" Automation Event that alerts individuals via alternate methods (such as email or SMS) if they don’t have an active personal device or have notifications turned off.
    • Updated the help text for the "SMS Notification Group" on System Phone numbers to note that Rock Mobile is required. Fixes: #6391
    • Updated the Communication Entry block to support long lists in the Template picker.
    • Improved the help text for the "Send When Approved" setting in the Communication Entry Wizard block to clarify when a Communication will be sent. Also updated the Communication Detail block to immediately queue Communications scheduled for "now" upon approval, instead of waiting for the Communication Job. Fixes: #6396
    • Added Communication Flows, a new tool under Admin Tools › Communications that lets administrators create automated, multi-step sequences across email, SMS, and push notifications. The feature tracks email opens, link clicks, form completions, event registrations, group joins, and step progress, with results visible in Flow Analytics.
    • Added new configuration options to the System Phone Number settings that allow administrators to control how Rock handles SMS opt-in and opt-out messages. These options include the ability to suppress automatic response messages and to prevent Rock from automatically updating an individual's communication preference when they respond with opt-in or opt-out keywords. Read the Tech Bulletin item for more details.
    • Fixed an issue that caused opt-in and opt-out SMS keywords (like START and STOP) to be missing from the message history in the SMS Conversations block. These keywords will now appear in the conversation history, as long as the SMS Pipeline includes the "SMS Conversations" Action. If that Action is not configured, the keywords will continue to be omitted. Fixes: #6397
    • Fixed an issue in the SMS Conversations block that allowed text messages to be sent to individuals who had previously opted out of receiving them. These individuals are now correctly excluded from all new outgoing messages. Fixes: #6400
    • Fixed an issue where sending special characters in SMS messages (like smart quotes) caused them to be encoded using UCS-2, increasing the number of message segments and doubling the cost. The Twilio transport now uses character substitutions similar to Twilio's Smart Encoding to minimize message size and reduce costs. Fixes: #6505
    • Added an upgrade notice to the legacy Communication Wizard with an option to hide it via the new "Show Upgrade Message" block setting.
    • Updated the Obsidian Communication List block to disable custom columns, which are not supported by the high-performance query used by this block. Fixes: #6515

    Connection v18.0

    • Updated the Connection Request Board to make the State filter a required setting. Fixes: #6512
    • Improved the Connection Request Board with updates to campus filtering, connector preferences, and workflow configuration. Added new block settings to define default Connection State and Status filters. Workflows on the Connection Opportunity block can now be reordered using drag-and-drop functionality. Additionally, workflows on this block can be configured to filter what connection requests they apply to using Age Classification and/or include/exclude in dataview filters.

    Core v18.0

    • Updated Rock by removing the Self-Service Kiosk (Preview) site, corresponding block types (PersonUpdate.Kiosk.ascx, TransactionEntry.Kiosk.ascx, PrayerRequestEntry.Kiosk.ascx), and corresponding KioskStark theme. See https://www.rockrms.com/tech-bulletin/removal-of-obsoleted-kiosk-blocks for details.
    • Added CAPTCHA support to the Group Registration, Prayer Request Entry, Group Simple Register, Email Form, and Sign-Up Register blocks. This setting helps prevent automated bots by requiring individuals to complete a verification step before submitting these forms. Administrators can enable or disable CAPTCHA within each block’s settings.
    • Added the Icon Picker control.
    • Fixed an issue in displaying Name and Description fields in the Obsidian Scheduled Job Detail block to match the legacy version. Fixes: #6302
    • Improved the IP Geolocation feature by adding the ability to block visitor access from specific countries, either across the entire Rock instance or on individual pages. This adds a layer of protection against unwanted traffic from high-risk regions.
    • Fixed a styling issue in the Person Merge block that caused individuals to extend beyond the page layout. Fixes: #6456
    • Improved the notification message count in the reminder/notification bell. The notification message counts will now be refreshed on next page load after marking a notification message as read. Fixes: #6438
    • Fixed editing configuration settings of Universal field types from inside an Obsidian block. This only affected some configuration setting types which might cause the raw value to be stored as JSON.
    • Fixed an issue where the Step Participant List Block was not displaying Steps that were missing a CreatedDateTime. The filter will now fall back to StartDateTime, CompletedDateTime, and EndDateTime to keep the Step Participant List in sync with the chart. Fixes: #6509
    • Fixed layout issue in Jobs Administration grid where “System” and “Active” labels wrap unexpectedly. Fixes: #6487
    • Added global attribute "Google API Key Server" for handling server-side Google API requests, such as geocoding and routing. This is separate from the existing client-side key used for JavaScript-based API calls. Fixes: #6524
    • Fixed an issue that prevented custom columns from being added to the Page Short Link List Block. For instructions, see the info message in the Custom Columns section when configuring the block. Fixes: #6566

    CRM v18.0

    • Improved the Person Record Source feature by adding support for setting a Record Source within the Get Person From Fields Workflow Action and the internal Add Family page. Also added a configuration option to define a default Record Source for new Person records created during Check-in. Fixes: #6507
    • Fixed a bug that incorrectly enforced security on child attributes on the Family Pre-Regisration block. This would prevent anonymous guests from being able to set the requested child attributes when adding new children.
    • Fixed an issue where a person’s Top Signal was not being calculated immediately when a new Signal was added, which caused the Top Signal Badge to not appear until the Calculate Person Signals job ran. Fixes: #6503
    • Fixed an issue where a Person Signal Badge continued to display next to individuals in some blocks even after the signal had been removed and the Calculate Person Signals job had run. The badge now correctly updates and no longer appears once the signal is cleared. Fixes: #6510
    • Added a new "Serving Connection" option to the Record Source feature and updated the Connection Opportunity Signup block to automatically assign this source when new individuals are added through a sign-up. This helps track when individuals first engaged with the organization via a Connection Opportunity. Fixes: #6514
    • Added a new Defined Type called "Record Source" to help track where individuals are first introduced into Rock, such as through event registration, Check-in or Workflow entry forms.

    Engagement v18.0

    • Added the new Content Article Learning Activity type, allowing individuals to complete training by reading content articles. Also added support for SMS notifications to alert individuals about new learning activities. Improved the Completion Grading System to provide clearer status labels and feedback.
    • Added new "Core Steps" Step Program with system-protected Step Types, including initial "eRA" type. Added the ability to transfer Step Types from one Step Program to another.
    • Added Step Analytics (trends, totals, statuses, campuses) and refreshed UI for Step Program Detail and Step Type Detail Blocks.
    • Added the ability to implement security for the display of LMS programs, courses and classes on the public external blocks.
    • Updated LMS Activity completion workflow to pass the LearningClassActivityCompletion as the Entity, replacing the Student. This improves access to completion-related properties when using the Set from Entity action.

    Event v18.0

    • Fixed incorrect security on the "Communicate with Registrars" action under the Registration Entry page. Fixes: #6455
    • Fixed an issue in the Registrant Detail block where Categorized Defined Value fields with visibility filters would disappear during editing, preventing required values from being saved. This happened when the category or value was changed, even if visibility conditions were still met. Fixes: #6452

    Finance v18.0

    • Updated the Send Payment Receipts process so Giving Receipt System Emails now use the Public Name of an account when available. If no Public Name is set, the Account Name will still be used.
    • Fixed an issue where editing a payment plan in the Registration Detail block could clear certain payment method details. This occurred because some payment gateways do not properly populate the new FinancialPaymentDetail record (during UpdateScheduledPayment()), causing fields like Expiration Date and Name on Card to be set to NULL in Rock. Logic has been added to preserve the original values to maintain payment detail continuity until this is resolved by the gateways. Fixes: #6367

    Group v18.0

    • Removed the deprecated GroupLocationHistoricalSchedule table and model, which is no longer in use or referenced by any features. Read the Tech Bulletin item for more details.
    • Added support to Slingshot for duplicate Attribute keys across different Group Types, allowing similar Attributes to coexist without conflict as long as they belong to different Group Types.
    • Improved the Group Placement feature by introducing multi-select capabilities, advanced filtering, and improved sorting options. These updates streamline the process of assigning individuals to groups. Additionally, the feature has been generalized for use beyond event registrations, allowing administrators to apply group placements in various scenarios.

    Lava v18.0

    • Fixed an issue where nested Lava Shortcodes inherited the outer shortcode’s blockContent when no content was explicitly provided, causing unintended content leakage. Fixes: #6292
    • Added a new NearestGroups Lava filter that returns a list of the closest groups to an individual. Optionally, you can provide a specific geopoint (e.g. '33.58622,-112.135094') to find nearby groups.
    • Fixed inconsistent Lava output formatting across different browser/client cultures by introducing the new Set Culture (setculture) Lava command in v18. This command lets Lava authors explicitly control the culture context for filters such as AsDateTimeUtc, AsDateTime, AsDecimal, AsDouble, AsInteger, Format, and FormatAsCurrency. Fixes: #4100
    • Added Group Finder Lava shortcode with geolocation and filtering support. Allows filtering by attributes, campus, day of week, and time of day. Adds distance-based sorting using Google Maps Routes API with support for various origin formats including person ID, lat/lng, address, ZIP code, cross streets, and named places. Supports travel modes (drive, walk, bicycle) and returns travel distance and time when enabled.
    • Fixed an issue when comparing a Lava variable containing a full date object (such as when using AsDateTime filter) to a plain string. The result of these operations was previously undefined, but now will evaluate correctly.
    • Added new Lava filter AsEnum for converting an integer to a enum's value.
    • Added filter to trigger persisted dataset update with optional delay until processing is complete.
    • Fixed an issue where the security settings for some Lava commands were not being implemented correctly, preventing some blocks from using specific or default Lava commands as intended. Fixes: #6494
    • Fixed an issue that caused some Lava shortcodes to render incorrectly when used multiple times in the same block. This affected shortcodes such as Chart that used child tags if they were used a specific way and in a specific order. Fixes: #6470

    Mobile v18.0

    • Added Financial Batch Detail block to support check scanning, creation of batch, batch detail viewing, and batch modifications. Also added Financial Batch List to view available batches.

    Prayer v18.0

    • Fixed an issue where the Campus field on the Prayer Request Entry (Obsidian) block automatically selected the first campus in the list when the individual was not signed in. The field now remains blank until a campus is intentionally selected, ensuring accurate submissions. Fixes: #6520

    Reporting v18.0

    • Fixed an issue where the Email Analytics block would label the X Axis using times (e.g., 12AM, 10PM) instead of using dates as intended when displaying charts with fewer days of data. The X Axis now consistently shows daily labels, providing a clearer and more predictable charting experience. Fixes: #6561
    • Fixed an issue where the "Site Session" Data View filter failed to return results when the configured Site Id did not match the associated InteractionChannel Id. The filter now maps ChannelIds to SiteIds where needed to ensure compatibility with existing Data View configurations.
    • Fixed an issue in the Obsidian Page Parameter Filter block where fields that allowed multiple selections, such as check boxes or multi-select lists, were unintentionally cleared during validation. This prevented those filters from working correctly when applied. Fixes: #6463
    • Fixed a bug in the Data View filter (WebsiteSessionFilter) that prevented matching individuals to their website session interactions.
    • Fixed an issue where the legacy Dynamic Data block would sometimes display its formatted output on the administrative settings page. Fixes: #6278
    • Added a new "Average Weekend Attendance" property to Campuses. This value is automatically calculated and updated by the Rock Cleanup Job, and it now appears on the Campus List and Campus Detail blocks.

    Workflow v18.0

    • Improved the Form Builder to support easier form sharing, previewing, and customized communication. Administrators can now create a shareable link to a form, preview it in a pop-up window, and send automated responses using a new "Form Builder" category in System Communications.
    • Fixed Obsidian Workflow Entry block to properly deal with partial Pre and Post HTML on fields. Previously if you had an opening div on one field and closed it on another field it would not render correctly. Fixes: #6446
    • Fixed an issue in the Obsidian Workflow Entry block so it no longer creates a blank Person record for spouse in some situations. This could happen if a non-logged in person filled out a Person Entry form and left Spouse blank. Fixes: #6420
    • Fixed a styling issue involving overflow within the Form Builder. Fixes: #6444
    • Fixed issue in the new Obsidian Workflow Entry block that caused it to not run Lava on Pre/Post field content. This prevented the display of dynamic text around fields. Fixes: #6481
    • Fixed the Obsidian Workflow Entry block range slider attribute not displaying properly. Fixes: #6482
    • Fixed an issue in the Obsidian Workflow Entry block related to Person Entry. It will now correctly set the Person and Spouse attributes if 'Hide if Current Person Known' is enabled. Fixes: #6568