Site Stacker Release 2.41

Activities
- Added "With" column support to Activity Grid module

API
- Add ContributionRecurringBatch read and create endpoints to be able to retrieve or create recurring schedules via the API.

Contributions
- Reveal column "batch code" in contributions grid in admin
- Fixed an issue where deleting a payment method and canceling associated recurring payments did not trigger the cancel spark events

Core
- Various cache improvements to ACL system and improve loading speed of pages that use extensive ACL permission checks
- Fix a problem when cron jobs can get stuck (the Last Run Date doesn't update anymore).

CRM
- Fixed an issue where CRM Map pin would not load data
- Fix map module not working on certain pages
- Changed admin CRM Basic view to show CRM External Id on related people
- Added "Crm Record URL" and link column to entity grid module
- Added min / max value field setting restrictions to Number field in CrmRecord module

Export
- Fix "Not Found" export links in some cases when the report name contains slashes (e.g. "First / Most Recent / Largest / Smallest Gift").

Historic Giving
- Fix the edit historic gift window that would freeze the screen in some cases when saved source codes where not available in the list of source codes in the system.
- Fixed an issue where not found numeric value source codes could hang admin edit window
- Prevent "Invalid Amount" errors when importing historic gifts with amounts with more than 2 decimals (e.g. 10.0000).

Payment Processors
- Added "Card Update Status" AND "Last Update Date" fields to card payment methods that track the status of cards (currently only for PaymentSpring)
- Added recurring flag to Payment Spring payments that is true when the payment is done by Cron

Reports
- Add new module config options for showing the report title or the filters / export buttons individually, and remove the "Show Header" config from the module.
- Fix filters so they belong to each report published on a page. This prevents problems when multiple views of the same report are published on the same page. With this change, every report view will get its own filters.

Spark
- Fixed an issue where "Update Owned Campaign Name" spark outcome would fail
- Add 'Flag Receipted Gifts' outcome on a report export to flag exported historic gifts as receipted.

Users
- When someone resets their password, mark the account ACTIVE and VERIFIED as well.

Other small fixes and stability improvements.

Site Stacker Release 2.40

Contributions
- Fixed an issue with new bundle draft features migration causing system manager error
- Added NACHA compliance ACH authorization checkbox site channel settings
- Changed campaign combo in offline batch edit window to show unpublished toggle based on loaded campaign record
- Fixed an issue where offline batch summary would not synchronize correctly
- UI improvements on offline batch entry
- Fixed an issue where target amount on "Edit Transaction" window would sometimes be marked as invalid
- Extra fixes to allow synchronization of Offline Batch statistics (total count / amount)
- Fixed an issue where amount validation would fail when editing transactions
- Fixed an issue where deleting a draft or offline transaction would not synchronize associated offline batch
- Fixed an issue where importing offline transactions using invalid date would result with blank received dates as '0000-00-00'
- Added new variables to Donation Confirmation to Campaign Owners system message
- Fixed an issue where amount would not synchronize well when editing a temporary offline batch.

CRM
- Fixed an issue where the export action from CRM Record module would show Unauthorized page message
- Implemented ACL for custom entity fields in CrmRecord module
- Allow the "Mailchimp" tab on the record details module, to be enabled or disabled, the option is under "Mailchimp Tab Settings" and is enabled by default

Historic Giving
- Fixed an issue in giving metrics module that could crash the page when using Contribution as data source
- Changed CRM Historic Giving: Gifts given to also filter by soft credit person

Payment Processors
- Added web hooks to PaymentSpring processor. These can be set up from the processor configuration and will track ACH transaction failures and payment method updates.
- Change Cornerstone processor to display timeout error when a transaction lasts more than 30 seconds
- Fixed an issue in Payment Spring webhook where card updates would not go through
- Change to account for Payment Spring Refund Webhook firing before refund record is created in Site Stacker

Reports
- Improve collapsible columns - show collapsed columns when the window is expanded, not only when it is reduced.

Users
- Added recaptcha to login module views that gets shown when configured login failed count is reached
- Change recaptcha on register / recover password pages to use global Recaptcha configuration from Settings component if channel setting does not have credentials configured
- Fixed an issue in initiate password recovery process where it ended with error: "Sorry. We are unable to initiate the password recovery for this account."

Other small fixes and stability improvements.

Site Stacker Release 2.39

Advocacy
- Fixed an issue in the New Participant system message that was causing the $Advocacy.campaign_url to point to the wrong location
- Fixed goal, progress and achieved goal sections in Related Campaigns module
- Added missing values for advocacy campaign completed column when exporting to CSV

Contributions
- Overhauled UI and process for offline batch entry.
- Added import templates for offline batch draft entry data.
- Fixed an issue where draft import would generate error 'Can only import to bundles that are in draft mode'
- Fixed a percentage logic used on determining the status of a submitting offline batch
- Changed offline import to still save a blank campaign record if the campaign external id is not matched
- Changed "Spark Recurring Designation Reminder" to support before/after date values
- Fixed an issue where deleting a designation from contribution transactions would not occur
- Fixed an issue where you could specify a larger recurring start date than end date in checkout page

Core
- Changed to disable cache earlier and avoid using Redis when running cron job scripts

CRM
- Fixed issues with activity and crm record type import on new person_id columns
- Allow the "Export to Mailchimp" action on the Crm Grid, to be enabled or disabled using the module config (is enabled by default)
- Added index to person relations to help improve load speed of person relations related grids
- Fixed an issue in CRM Merge tool that could create duplicate phone numbers when merging CRM records
- Fixed an issue where certain datagroups would not load in CRM Record module
- Changed to include CRM Files when merging CRM records

Field Types
- Change to not allow blank max/min length setting in Text Field Type

File Manager
- Disabled Edit button in file view for image files

Historic Giving
- Fixed an issue where linked "Module Item Instance" setting  would break the statement grid module
- Enable Google Maps view in Historic Giving module, similar to Crm Grid "Map View"
- Fixed an issue where adding new designations to a transaction would not create them in historic gifts
- Added Historic Giving Debit module to create ledger records of amount transfers between campaigns
- Fixed an issue that would allow failed transactions to go to historic giving.
- Removes failed contributions that got reflected to historic gifts
- Fixed an issue where entity datagroup filters would stop the giving/statement grid on loading

Import
- Added person_id fields to Activity, Entity, Crm Record Type, Person Note and Relation Type import templates
- Fixed an issue where progress for import/rollback would not be cleared
- Changed default "Run Import" action to Running Import files in the background
- Added person_id field and logic to Address, Phone, Email, Photo and Group User assignment imports

Modules
- Fixed an issue with Date Grid Filter not initially loading on saved preset

Motion 2
- Fixed an issue that was causing progress module tooltips to show cutoff

Payment Processors
- Changed Payment Spring api used for tokenizing credit card information
- Fixed an issue in edit payment method page where it was loading transparent/iframe enabled forms from other sites
- Change Paperless processor to always respond with error "Card CVV Number Missing" when cvv is missing on credit card updates
- Payeezy: fixed an issue that could cause a transaction to update card with blank information

Reports
- On filters, fix the useless request that was fired when an empty group was created, with no conditions on it
- Add new "Collapsible Columns" config in the Report module to choose to collapse columns based on the available horizontal space on the page or show all columns, which will add scrolling.
- Small UI improvements - make the segment and total rows darker and add ability to have "Totals" columns that will be bold throughout all rows of the column.
- Fix pagination styling in some cases when an autocomplete field is used on the page with a report, for example the Year/Month Module filter.
- New operators "is blank", "is not blank" added to reports filters, to filter records by columns that are blank/null.

Spark
- Changed to render Transformed Variable data for usage in message outcome

Other small fixes and stability improvements.

Site Stacker Release 2.38

Advocacy
- Added new advocacy category setting to hide comments for private gifts.
- Fixed a bug that was not loading the correct category wording values in frontend.
- Added new advocacy category setting to hide comments for private gifts.
- Fixed a bug that was not loading the correct category wording values in frontend.

Contributions
- Fixed an issue where offline recurring gifts with a run date in the past did not add to the monthly recurring amount.
- Expose "Owner ID" in the Contribution Campaign view, in admin.
- Added type condition to Cancel and Hold Recurring spark Events.
- Fixed type condition for New Recurring spark Event.
- Fixed an issue where removing the affiliate from the recurring payment in admin would not actually remove the affiliate.
- Added new site channel settings and panel for alternate organization giving options in contribution checkout form.
- Fixed an issue in admin multiple campaign entry where quantity would be incorrectly saved on a previous record without quantity.
- Changed new alternate affiliated giver channel settings labels for clarity.
- Changed various functionality in contribution transaction edit window to account for refunds.
- Fixed Giving Options module listener for dynamically loaded items.
- Added soft credit fields to contribution system messages that contain campaign information.

Cron Jobs
- Fixed an issue that could cause certain cron jobs to not install automatically.

CRM
- Improve CRM admin speed by deferring entity field permissions until entity group tab is activated.
- Fix bug on Crm Record, full-name wasn't being saved.

FileManager
- Fix bug on PDF print/export profile image.

Historic Giving
- Fixed an issue where modules would crash when linked to a historical transaction grid that uses the household filter.
- Fixed an issue where household filter would crash account balance module.
- Fixed an issue where account balance report would crash when used with a household filter.
- Fixed an issue where historic giving master filter could be sometimes ignored by metrics modules (this month, this year ...etc).
- Added groupable accounting code variable to historic giving balance module template.
- Fixed an issue where export records grid action would not get data when master filter is used.
- Fix bug on historical statements grid, datagroups values where not being labeled correctly.
- Fixed an issue where printing giving statements pdf would result in a blank page.

Import
- Added progress bar for import rollback. Change rollback to be non session locking.
- Fixed an issue that could cause ZipArchive to run endlessly when an import is ran from  a canceled / stalled state.

Payment Processors
- Fixed an issue where "Customer ID Invalid" was raised on merged CRM records.
- Fixed an issue where certain customer profile codes were missing in Braintree processor.
- Fixed an issue where updating cards / checks would result in errors.
- Fixed an issue where field account name on eCheck would generate an error when the length was larger than 22 characters.

Processes
- Fixed issues when using datagroup / entity filters in group progress module.

Reports
- Fix the autocomplete field when trying to search for values to filter report.
- Improve "Year / Month Filter" module:
    - allow configuring relative years starting from the current year, by using zero or negative numbers
    - allow hiding the month field and only show the year filter
    - update instruction texts
- Change default rows per page from 5 to 10.

Search
- Fix weird bug when you would get inconsistent results when having the Search Results module published on the same page, first with no results and second with no fields.

Spark
- Add new event "Report Export" and new outcome "Lock Contributions" in the Reports component to be able to lock contributions when a report is exported.
Caution! The report needs to have a 'contribution_batch_id' column identifier configured in order for the Spark outcome to work, otherwise it will throw an error at export.

PDF Templates
- Fix a bug in the editor showing broken images as thumbnails in the editor when creating PDF templates.
- Allow duplicate "Template Units" when creating PDF templates so it is easier to create new templates by tweaking an existing template.
- Increase template_unit `name` length to 50.
Other small fixes and stability improvements.

Site Stacker Release 2.37

Contributions
- Added new spark event condition to new recurring / cancel recurring spark events to control campaign changed scenarios.
- Fixed an issue where content item campaign goal was inherited as empty from parent folders.
- Fixed an issue where the rendered campaign item would not fetch the inherited campaign goal from parent folders or category.
- "recurring" parameter for receipt system message will always show up for recurring payments.

CRM
- Increased resource limits and execution time for CRM module csv exports.

Cron
- Changed to allow certain cron jobs to run simultaneously whenever the system cron ticks. This allows background jobs to run independently of other jobs, without blocking the cron system until the job finishes. Example: Long-running exports.

Historic Giving
- Changed download report in historic giving chart to use a predefined font size on linux machines.
- Added receiving person household filter / column to historical transaction grid.
- Fixed an issue with "This Month" preset not loading data in Giving Chart module.

Import
- Fixed an issue where certain invalid characters in CSV file names would not allow zip archive to be generated.

Reports
- Add collapsible columns for report tables that have a large number of columns that do not fit in view.
- Add option "Show Header" to show/hide the header when publishing a report via the "Report" module, in Site Planner.

Site
- Fixed error message handling after deleting a payment method in My Payment Methods module.

Site Planner
- Added person relation visibility condition for site content.

Task Queue
- Fixed an issue where the job queue crashed in relation to File Manager component.

Other smaller fixes and stability improvements.

Site Stacker Release 2.36

Advocacy
   - Fixed an issue where participants were not listed in campaign detail page for campaigns without connection to contributions

Contributions
   - Fixed an issue where partial recurring and affiliated person would not correctly load when opening a batch draft
   - Added locking feature to contributions that prevents any more edits to transactions / contributions
   - Fixed scrolling issues on required fields when checkout form is embedded in iFrames
   - Fixed an issue when the date values were not loading in the Edit Recurring Gift popup
   - Increased draft field length in offline batch entries to avoid sql error "Data too long for column"

CRM
   - Fixed an issue where saving an empty multi selection crm entity field would not clear the values
   - Added user > group permissions for entity fields

Export
   - Improve exports speed
   - Add sever configuration to tweak layout of the support over time chart download report
   - Changed "Download Report" to work with the current selected date rage
   - Optimized account balance module to avoid crashes when used with a large amount of data
   - Fixed an issue where certain filter values would not correctly load data in balance / chart modules

Payment Processors
   - PaymentSpring: Add alternate error handling to prevent having failed contributions without an error message
   - Authorize.net: Fixed an error when a payment method cannot be deleted as a result of failing to delete it from the payment processor as well with an error code E00105

PDF Templates
   - New PDF Templates engine that improves building receipts and other pdf templates. Training Articles: Print Templates, Configuring Custom PDF Exports

Site Planner
   - Fix some caching issues with site page urls causing cache slowdowns / errors

Webhooks
   - Fixed an issue where the 'Webhook Delivery Failed' system message could not be sent

Other bug fixes and stability improvements.

Site Stacker Release 2.35

Advocacy
- Fixed an issue where advocacy "New Donation" system message would not trigger for recurring payments.

CRM
- Add configurable column in the CRM Grid Module to show the CRM record photo in the grid.
- Prevent webhooks to trigger infinitely if the address geocoding process fails and essentially nothing changes.
- Prevent address geocoder cron job to run without the presence of a Google API key setting.
- Change URL parameters used in CRM Record module and add support for edit state / redirect back parameters.
- Changed to allow clearing values for embed / video fields in sponsor child video module configuration.
- Changed "Sponsor Child Videos" module to also support singular entity embed field.
- Added Sponsor/Child Videos module to display videos based on sponsor / child using entities.
- Fixed query logic for entity grid module to correctly filter the entities themselves and not the CRM record they are tied to.
- Fixed an issue where the "Hide Record Types" setting did not apply in CRM Record Module.
- Fixed CRM map not displaying when a Location Radius filter is also present in the grid.
- Added site channel setting that allows changing default payment method on the checkout page.

Contributions
- Fixed an issue in offline Batch entry where associated offline recurring was always selecting "-" blank value.
- Added site channel setting that allows changing default payment method on the checkout page.
- Implement custom radio buttons for set amounts when modifying the amount on the checkout page.
- Increase transaction field length for recurring batch processing in 64bit Linux systems.
- Fixed an issue where recurring payments would not run in certain conditions on 64 bit linux systems.
- Fixed an issue where "Donation Confirmation to Campaign Owners" system message would not trigger for recurring payments.
- Removed duplicated spark event "New Recurring Schedule".

Datagroups
- Fixed an issue where deleted values were still displayed in older datagroup field types.

Export
- Improve handling exports that fail to generate. Add new system message that triggers on a failure.

File Manager
- Fixed an issue where file information data was not correctly synced when file was moved in location containing "'" character.

Import
- Fixed an issue that caused a fatal crash in Import component where there was a mismatch between the header / column count.

Historic Giving
- Fixed pdf rendering on support over time chart report.
- Added "offline check number" to historic gifts import.
- Fixed an issue where the  metrics modules would not correctly filter the grid with the received gift time.

Modules
- Fixed and issue where negate did not work on "Selection" type module filters.

Motion
- Fixed an issue where saving an application would continuously escape first and last name fields changing '&' to '&'.

Newsletters
- Fixed pop-up delay in Newsletter Subscribe module.

Payment Processors
- Fixed failed state handling in pending transaction verification for Payment Spring payments.
- Added currency field to Card/Check payment method import.
- (Cornerstone) Fixed invalid api credentials error to show with proper error message.

Reports
- General improvements and bug fixes.
- Release stock reports.

System Messages
- Changed "Send a Note" popup to send emails via system messages instead of emailing directly.
- Fixed Google Recaptcha sometimes not loading in the Send Message popup.

Task Queue

- Further optimizations on task jobs queue processing speed.
- Improved task job queue processing speed on systems with a lot of data.
- Removed busy timeout parameter and fail task queue cron job immediately when the job queue is stuck.

Other bug fixes and stability improvements.

Site Stacker Release 2.34

Activities
-Changed logic to allow import rollback to resume from last deleted activity.

API
-Increase column size for the response body to prevent issues with saving API logs.

Contributions
- Added Contribution Set Amounts.
- This is used to restrict recurring payment amounts to certain choices that can add up to the monthly goal defined on the campaign.
- Added new site channel setting to set a label for checkout password fields.
- Added several new spark events/conditions regarding Recurring schedules.
- Added partial offline recurring checkbox to rows in offline Batch edit window.
- Added more control over fields to edit in transactions and recurring schedules.
- Added ability to see transactions associated with payment method.
- You can now change the existing designations present on a online transaction as long as the amount is retained.
- Changed the way gifts are cancelled in "My Recurring" module. The "Cancel Gift" button has been removed and a "Status" dropdown has been added that controls the active/canceled status of the gift.
- Added Soft Credit input and condition to existing Contribution related spark events.
- Added the ability to associate an offline transaction with an offline batch.
- Fixed an issue where the cancel recurring spark event used the new campaign information instead of the old one when campaigns changed on recurring payment.
- Fix cancel recurring triggering with the same data as new recurring.

CRM
- Added new CRM Record module setting to allow entity access without ACL.
- New Google map feature for the "CRM" module which can be enabled using the "Map View" checkbox in the modules's settings. This feature will take the records in the CRM grid and display them on an interactive map.
- Upgraded relationships module to use configurable columns and filters.
- Implement custom actions in Relationships module.
- Implement custom actions in CRM grid module.

Cron
- Added logic to prevent overlapping cron jobs, enforcing cron jobs to run sequentially.

Mailchimp
- Added Mailchimp integration.
- You can now export contacts from the CRM Grid into your organization's Mailchimp account.
- Learn more: Using Mailchimp with Your Site Stacker Installation

Modules
- Add support for custom actions in Grid Module Framework.

Payment Processors
- Change Authorize.net API to send recurringBilling flag when recurring payments are made.

Settings
- Added TinyMCE v5 integration settings in the Settings component.

Site Planner
- Added spark events for moved content items / folders.
- Added spark outcomes for updating recurring fixed amounts for items / folders.
- Implement custom actions in Content grid module.

Users
- Added WSFED Redirect module.

Bug fixes and stability improvements.

Site Stacker Release 2.33

Contributions

  • Fixed a bug in My Recurring Gifts module that was preventing users to edit and save gifts that were made as an organization

  • Fixed PayPal recurring not synchronizing the end date and amount correctly between SiteStacker and PayPal

  • Fixed recurring start date not being disabled if PayPal is selected first as a payment method and the recurring checkbox is checked afterwards on the checkout page

  • Fixed recurring PayPal gifts that had their designation changed still using the old designation

  • Fixed thank you page sometimes showing a zero amount after a PayPal contribution

  • Made source codes available to use in transaction APIs

  • Added offline recurring giving functionality
    To create a new offline recurring gift from admin the “Offline Recurring” option must be chosen in the Type dropdown. Offline recurring, unlike online recurring, will not be processed automatically every recurring cycle. Offline gifts can be manually added and associated with the offline recurring schedule via the new dropdown “Associated Offline Recurring”

CRM

  • Fixed special characters not working when searching in the CRM module

Historic Giving

  • Added 'receiver_person_external_id' field in the HistoricGift endpoint to be able to match a receiving person by external_id, instead of only by id

  • Changed account balance pdf print to take into account "filter by receiver" setting from linked grid module

  • Fixed an issue in Account Balance module print link that didn't filter by the person you were looking at

  • Fixed import errors when using both deductible and nondeductible amounts, when they are reported as not equal to the amount, in some edge cases.

  • Removed deleted/external_id fields from Additional Data section of Historical Giving Import documentation

Import

  • Allow import tool to specify whether an email match should occur in order to overwrite a CRM record
    The _match_by_email column needs to be set to 1 in the import CSV to overwrite the record, or left out or set to 0 to prevent overwriting

Motion 2

  • Fixed Due Date column in TaskList module

Payment Processors

  • Added source codes to memo[source_id] field in Cornerstone processor transaction APIs

  • Fixed blank 'Gateway Code' when exporting payment methods as csv from admin.

  • Use new stored_credentials flag for Payeezy card transactions

Site Planner

  • Allow saving HTML tags in WYSIWYG fields from "Content Item Editor" module

Spark

  • Added spark events for new contribution transaction and recurring schedule reminders
    The event names are “New Transaction” and “Recurring Schedule Reminder”. The difference between the “New Transaction” and “New Contribution” spark events is the transaction event will be triggered once per transaction, and the contribution event will be triggered for each designation.

System Messages

  • Receipts can now be sent for offline donations as well. New configuration condition added to receipt system message for online/offline flag.

Users

  • Added new settings to Register Popup module to customize the popup title and the submit button text

Other bug fixes and improvements

Site Stacker Release 2.32

Activity

  • Fix saving activities when using the inbound SendGrid email address in some cases where the activity doesn't get saved because of invalid UTF-8 characters. This is a Windows (MSSQL) problem only.

  • Added date field to activity import

  • Added ability to import activities and activity people.

Advocacy

  • Added ability to delete advocacy campaign goal records from admin side if the record is not associated to a contribution record

Contributions

  • Add tribute gifts variables to Contribution Receipt, Contribution Receipt (Admin), Last Recurring Batch, Contribution Declined, Contribution Declined (System Error), Recurring Scheduling Confirmation system messages

  • Added Campaign External ID to expanded transaction/recurring views in admin

  • Added Campaign ID to Transaction / Recurring View expanded details.

  • Added Campaign ID, Campaign External ID and User Campaign ID to Recurring Campaign View.

  • Added campaign_id and content_item_id variables to "Donation Confirmation to Campaign Owners" system message

  • Added filter for refunds / refunded transactions in Contributions admin

  • Added filters for Accounting Code/Inventory Status fields on Campaign Views

  • Added Inventory Status column on expanded transaction view

  • Added library used to embed/integrate SiteStacker checkout page on other sites

  • Added new Campaign Category setting to customize display name of Campaigns via smarty template

  • Added new site channel component settings to customize title and description in transfer fee section of the checkout form

  • Added new site channel setting to allow checkout tribute recipient title customization
    Changed tribute recipient field labels in checkout page

  • Added new site channel setting to customize "Add New" payment method button text

  • Added setting to hide delete button on items in summary view on checkout page.

  • Added setting to hide registration section on checkout thanks page

  • Change popups to scroll and align to key elements on certain global template configuration

  • Changed to disable redundant start date field when using PayPal payment method on checkout form

  • Changed to hide redundant ReCAPTCHA when PayPal payment method is used on checkout page

  • Fixed an issue causing the cart summary on checkout to not be refreshed when any change is made to any of the items

  • Fixed PayPal option not showing up on the checkout page if check payments are disabled

  • Fixed Thank You page sometimes not showing the registration form after a PayPal contribution

  • Added tribute note field on the checkout page

  • Prevent deletion of advocacy campaign if it has associated contributions
    Highlight deleted advocacy campaigns throughout admin interfaces

  • Receipts can now be sent for offline donations as well.
    New configuration condition added to receipt system message for online/offline flag

  • Removed "Recipient" word from tribute recipient phone and address field labels on the checkout page

CRM

  • Added person email import.

  • Added address_type_id to person address import

  • Changed relationship grid filter to show a person filter as well in accordion layout when there is no selection for a person in the filter configuration

  • Fixed a bug in Edit Profile module that was preventing saving a phone number if the phone type field was hidden

Cron

  • Added 10 minutes offset when checking if cron jobs are running
    This will lower the rate of false alert messages regarding stopped cron jobs

Disqus

  • Use content item's display field for the Disqus title

Field Types

  • Fixed an issue that was loading incorrect display value for date field types

Google

  • Fix various issues with cesium map module

Historic Giving

  • Added Accounting Code, Inventory Status and Extra Data columns/filters to historic gifts

  • Added currency filter/column and raw amount to historical giving grid.

  • Added new historic giving grid module setting to show anonymous fields in grid/exports

  • Added new report module configuration to show/hide anonymous donor fields

  • Added offline_type and payment_method_type column to historic giving import

  • Added the ability to hide the csv export tool in the historical giving grid.

  • Change Historic Gift import to add owner from matched campaign (via campaign_id or campaign_external_id)

  • Fixed an issue in historic gift admin edit not changing the donor on the gift (and other fields from the donor)

  • Fixed issues causing grid to show all report data for non logged in user.

Import

  • Remove the need to specify the 'external_person_is_group' field when importing addresses, phones, notes, files, entities, relations and record types for CRM records

Motion 2

  • Fixed a bug that was causing the task queue to stop

  • Fixed columns order in Group Progress module

  • Fixed Relationship and Record Type filters in Group Progress module

Payment Processors

  • Add hosted fields support (SAQ-A iframe handling) to Braintree payment processor

  • Added filter for card type in payment processors transaction grid

  • Added update_profile parameter in Cornerstone processor api calls

  • Tweaks to Braintree hosted fields wrappers

Search

  • Add ability to use 'Gender', 'Birth Year' and 'Birth Month' as custom filters in the search module.

  • Fix search module "Randomize results" to reflect the user's session, so the user doesn't lose track (e.g. after coming back from a detail page).

Site Planner

  • Fix to maintain cookie lifetime when closing the browser in "Cookie Policy Notice" module.

Task Queue

  • Improve task job queue speed

  • Optimized speed of job queue cleanTasks cron job

Users

  • Added new option to register popup module that allows users to quickly switch to the login popup module

Other bug fixes and improvements

Site Stacker Release 2.31

Content Map

  • Add “popup width” setting for the Content Map module

Contributions

  • Added error_message and error_code variables to Contribution Declined system message

  • Fixed a typo in checkout tribute information section

CRM

  • Added CRM ID as available column and filter in CRM Grid module

  • Fixed an issue caused by stopping the duplicate scanning process

  • Fixed a bug in CRM Grid module that was rendering datagroup values as ID numbers

  • Optimized query used to fetch the possible duplicate person count in admin CRM grid

Import

  • Allow specifying 'campaign_id' when importing Historic Gifts, and populate 'campaign_external_id'

  • Don't overwrite CRM records that have the same email, when importing. Throw an error instead

  • Prevent sending system messages when importing data

Motion 2

  • New Group Progress module
    This module can be used to show the progress of applicants for each landmark or each task

Payment Processors

  • Fixed an issue when multiple payment processors on different sites are configured with the transparent redirect option

  • Changed PaymentSpring EFT refunds to be marked as pending by default so that they can be verified during the week

  • Removed unwanted error message popup after deleting a payment method from My Payment Methods module

  • Fixed an issue with refunds on Cornerstone Payment
    Processor causing error: "You are not authorized to refund this transaction"

Scripture

  • Update API v2 to v3 due to API v2 deprecation, when retrieving passages from ESV

Site Planner

  • Fixed an issue with IP info location causing occasional errors

  • New "Cookie Policy Notice" module
    This module displays a notice at the bottom of the screen containing a customizable message, a link to the full privacy policy page (optional), and a button to accept the policy.

Other bug fixes and improvements

Site Stacker Release 2.29

Advocacy

  • Removed “View All Campaigns” button in Active Campaigns module if AdvocacyUserCampaigns page is not published

Architect

  • Added new “Architect Edit Item” module
    The module is used for editing an architect item from the owner or an admin perspective.

Contributions

  • Added “Batch Date” column to admin contributions campaign view grid

  • Added non-deductible option for contributions and recurring contributions
    The option is synchronized with Historic Giving, populating the deductible / non-deductible amount data fields.

  • Added recurring start date and recurring end date variables to “Donation Confirmation to Campaign Owners” system message

  • Use custom message for system errors while processing the payment from the checkout page

  • Removed “Manage Contribution” URL in ContributionSummary module if ManageContributions component page is not published

  • Added "Contribution Campaign Status Changed" system message
    This system message is sent to the campaign owner when the "Is Disabled" setting is enabled or disabled.

  • Hide the Newsletter Subscribe form on the checkout page if user is already subscribed

Core

  • Fixed XSS vulnerability when displaying 400 errors without a "Not Found" site page configured

  • Improve Docker support

CRM

  • Added filter for Household Head in dashboard grid modules

  • Increase CRM Group name max field length in admin from 50 to 100

  • Fixed checkbox fields not being selected when editing CRM Entity record

Datagroups

  • Fixed multiselect dropdown list behavior

Historic Giving

  • Added Batch Code and Batch Deposit date fields to Historical Giving

  • Added Batch Code and Deposit Date filters and columns to statement grid

  • Fixed first gift reported in Account Balance module grouping keys

  • Improved visibility of groups and list current groups used in account balance report

  • Improved visibility of custom variable nodes in Account Balance module configuration

  • Fixed an issue on Historic Gift edit with removing the Person / Donor / Soft Credit

Motion 2

  • Fixed an issue in Workflow Data module where the state code was not added to the address field on the printed / exported record

Payment Processors

  • Added support for secondary payment processors
    Existing payment methods saved with the secondary payment processor and existing recurring associated with a payment method will continue to be processed with the secondary payment processor. The primary payment processor will be used for all new payment method and recurring contributions added to the system.
    Secondary payment processor can be configured from Admin by checking the “Secondary” checkbox in the Payment Processor edit form.

  • Fixed an issue on edit payment method page showing "Could not load payment wrapper" when adding attempting to add a new EFT payment method with the Payment Spring processor

  • Changed to include security code in iATS card processing for one time gifts and recurring gifts starting on the current date

  • Fixed an issue where incorrect variable names were sent for first and last name in Payment Spring gateway

  • Added Cornerstone (Quarry) payment processor

Search

  • Fixed possible indexing issues for CRM entities with malformed data

Site Planner

  • Fixed an issue with assigned content on folders not allowing drag and drop reordering of items

  • Added the ability to change / add tags in the “Person Content Items” module

  • Speed improvement for rendering front side content

Spark

  • Added ability to select a user group to send a message to, instead of just a person, in the "Send Message" outcome

  • Added ability to specify the sender address (From:) when sending a message via Spark

System Messages

  • Added support for text body in system messages
    Allow each available system message method to specify if body, text_body or both fields should be used. Text body is used for methods that don’t support rich text format, such as text messages.

  • Extend functionality of Send Email popup
    Accept new parameter which would show success message and close popup after 10 seconds, instead of just closing popup if email was sent successfully

Tags

  • Fixed multiselect dropdown list behavior

Other bug fixes and improvements

Site Stacker Release 2.30

Advocacy

  • Added new setting to “Related Campaigns” module to hide campaign owner

  • Always show donations / participants grid on advocacy detail page if the viewer is the campaign owner

  • Fixed progress bar going over 100% when campaign has exceeded it's goal in "Active Campaigns" module

Api

  • Added CRM entity data into the person endpoint

Contributions

  • Fixed start date, next run date and payment method dropdown in Edit Recurring Popup module

  • Added support for refunding / reversing multiple contributions from admin

  • Fixed Contribution report to include total amount on all main groups

  • Fixed logic for Monthly goal module to show stats for the current month

  • Added default country feature to checkout page
    The country field will be hidden by default and it will default to the country specified in the Locations component site channel settings.

  • Added new site channel setting to specify custom text for the Add Card button on the checkout page

  • Added channel setting for specifying a title for the recurring section of the checkout page

  • Improvements to Campaign Fixed Amounts feature
    Added fixed amounts grid in Campaign Info panel in the Site Planner edit item window.
    Ability to add default fixed amounts on campaign categories and content folders.

  • Added partial recurring site channel setting that enables the ability to have mixed recurring and non recurring gifts on the same checkout page

Core

  • Added developer tool to fix row format issue on mysql clients

CRM

  • Fixed CRM Record module basic fields visibility based on ACL permissions

  • Duplicate scanning and CRM Merge improvements
    Display the number of duplicates in the CRM grid panel.
    Allow ordering and open a window on click to show the possible duplicates for that record.
    Add support for merging CRM records with Motion 2 data.
    Fixed merging CRM entities.
    Improved merge scan progress in admin.

  • Added "New Phone Added" and "Phone Updated" system messages. These are sent when a new phone is added and when an existing phone is updated.

Historic Giving

  • Added notes column to historic giving export

  • Change historic giving export to hide anonymous donation donor fields

  • Fixed PDF statements printing blank page when exporting from second page of the grid

  • Fixed PDF print statements unable to render multiple statements

  • Speed improvements to chart dataset

  • Added ability to filter chart by custom range

Import

  • Added external id and phone type id fields to person phone import

  • Allow specifying the 'created' datetime when importing notes for people through the Import component

  • Fixed import rollback grid loading issue

Locations

  • Change state field to be always displayed in alphabetical order

  • Added setting to disable legacy fields for country / state / city
    Setting was added as a checkbox “Disable Legacy Address” on the site channel settings for the Locations component. By choosing this setting, default HTML dropdowns will be used for country and state fields.

Payment Processors

  • Fixed an issue with IATS that caused edited check payment methods to be switched to Savings account type

  • Fixed PayPal recurring cancellation issue caused by a change in the PayPal API

  • Implemented refund for card transactions in Paperless payment processor

Scripture

  • Update API Key for Scripture Passage API call

Search

  • New "Selected Filters" setting for Search Results module
    When this is enabled it will display below the filters a list of all the currently applied filter values. This provides a better view of the applied filters and an easy way to remove them.

Site Planner

  • Prevent pasting folders in content explorer into themselves or into child folders

Spark

  • Add new outcome 'Set a fixed value for accounting code for campaign(s) owned by a crm record'

System Messages

  • Allow initiating the conversation from the email inbox
    In case the receiver hits "Reply" instead of "Reply All", the admin has the possibility to send an email to the SendGrid inbound email address and add the person's (name and) email on the subject field, to record that into the person's CRM activity.

Other bug fixes and improvements

Site Stacker Release 2.28

Advocacy

  • Added accounting code to Advocacy Campaigns

Api

  • Ability to order contribution batches by 'amount', ''received', 'created' and 'modified'.

Contributions

  • Fixed a layout issue with scrollbars in admin Menu / Search toolbars

  • Fixed an issue in admin edit on transactions / recurring gifts with amount being reset when changing campaigns in campaign dropdown

  • Prevent “Checkout Campaign Checkbox” module from rendering “null” when “Show Learn More” option is OFF

CRM

  • Fixed saving addresses from Edit Profile modules that are using the "responsive" view. This happened only when "Hide Address Type" setting is enable in the module.

  • Fixed an issue that allowed entity fields to overwrite existing entity fields with the same alias.

Datagroups

  • Fixed order for multi-select datagroup fields

  • Added ability to import data groups and use imported data groups External Identifier in Architect, CRM Entities and other data group imports

Field Types

  • Fixed “required” red asterisk not visible when character counter is enabled in text fields

  • Added ability to configure some field types to bypass the max length validation when needed
    Added new setting “Permissive Max Length” for Text, TextArea, HtmlEditor and TinyMCE field types. If checked, when updating a record and the loaded value length is to big, the field max length will be increased to the length of the loaded value. This allows decreasing the max length of fields without causing issues when editing records with values that exceed the new max length.

  • Added "Alias not unique" error messages for dynamic fields under the dynamic types (Architect, CRM Entity and Datagroup)

Historic Giving

  • Fixed various issues with balance reporting (double the amount) and From filter not working

Import

  • Changed import process to stop on first error found with invalid columns

  • Changed import progress window to show the last 5 errors that occurred during import process

  • Added ability to run imports in background

Motion 2

  • Minor improvements to Trigger form and window

  • Fixed "Fixed Date" trigger, triggering on task completion

  • Fixed notification trigger sometimes being triggered multiple times

  • Fixed issue where moving / deleting tasks and landmarks would corrupt the Workflow tree, causing some tasks to disappear

  • Added warning icon in the Workflows tree to indicate tree data corruption
    Hovering the cursor over the warning icon will provide more details about the tree corruption.

  • Added icons to Workflows and Roles right click menus

  • Added ability to search in Motion 2 workflows
    This will search through names, titles and descriptions of landmarks, tasks and triggers.

  • Overwrite prior trigger delay if triggered again

  • Allow user to set specific date on a delayed trigger by using a field configured in a form task
    This can be configured by choosing the “Based on form date field” option in the Trigger delay configuration and then choosing a date field that has been previously added to the form. The “Relative to source” option (default) is the same behavior as it was prior to this release.

Site Planner

  • Fixed issues with change log not showing up correctly for modified / created / deleted architect items in content explorer

  • Added ability to specify “Edit Content Item Site Page” for “Person Content Items” grid module

  • Allow editing of any content item that is owned by the Editor (not just the first item)

Spark

  • New Spark Event for Person Photo Create/Update

  • New Spark Outcome for setting focal point coordinates of an image

System Messages

  • Added household_name and household_external_id properties to global "Receiver" system message variable

Templates

  • Improvements to static files loading in Base and child templates
    NOTE! The Base template should be updated as well, if an update is available.

Users

  • Changed text for failed login attempts in login module to “The username or password you entered is incorrect. Please try again.”

  • Skip the SAML identity provider selection screen if there's only one identity provider configured

Webhooks

  • Improved speed of background Webhook deliveries

Other bug fixes and improvements

Site Stacker Release 2.27

Api

  • Added support for using UTC dates in the search params for GET requests

  • New Newsletters endpoints

  • New CRM files endpoints

Contributions

  • Checkout Campaign Checkbox module
    Added Checkout Campaign Checkbox module that will allow a predefined campaign to be rendered as a quick give checkbox in the checkout page.

  • Added “Automatic” flags on contribution transaction and payment processor transaction
    Records processed by the recurring cron will be flagged with the automatic flag. Flags can be shown and filtered in admin grids.

  • Added empty text for tribute type dropdown in checkout page

  • Added accepted cards credit card icon for debit card on the checkout page

  • Added option to hide saved addresses when adding a new payment method on the checkout page
    This feature can be enabled from the site component settings for the Contributions component, using the checkbox “Hide Saved Addresses”

  • Added campaign info details when managing folder default values
    The default can be managed by right clicking on a campaign folder in Content Explorer and selecting “Contribution Campaign Defaults”. Currently, recurring fixed amounts can be managed at the folder level, with more settings coming soon.

  • Ability to add price variations to each campaign in a category that uses quantities
    Price variations can be managed from the “Campaign Info” section of content items associated with a quantity based campaign category. Each variation will have a label and a price. Additional changes will be necessary in site templates to display the list of variations.

CRM

  • Change Person details tooltip to handle missing / deleted CRM records

  • Add ACL roles for controlling all fields in the CRM Record module Person Details tab
    New roles were added in Components / People / CRM / Person

  • Added marital status and wedding anniversary columns to CRM Grid module

  • Reload domain list in Impersonate menu when a domain is added / remove on a site channel

  • Enforce ACL Entity access in CRM Record module PDF export

  • Link to specific entities in CRM Record module
    When scrolling through a long list of entities the URL will update with the entity that’s currently being displayed. When refreshing the page or reusing the URL the page will maintain it’s scroll position

  • Added email field in CRM record module for group records as well

Historic Giving

  • Fixed occasional corrupted PDF files when printing statements

  • Added household fields to historical giving grid

Import

  • Added Import endpoint for CRM Files
    Added secure file uploads section in Import admin to manage secure files destined solely for import purposes. Secure files section can be accessed with the “Secure Files Upload” button on the right side of the top toolbar.

  • Added tribute fields to historic gift import

  • Added multi field support in CRM Entity import

  • Removed redundant fields from various import templates and added missing description for some fields

  • Added the ability to cancel a running import
    An import in progress can be cancelled by right clicking on it in the grid and selecting “Cancel Import”

Modules

  • Added module grid formatter for boolean columns (display Yes / No / - instead of 1/0/-)

  • Added boolean filters to grid module filter lists

Motion 2

  • Fixed an issue with Country combo in address field set not selecting correct value on initial load in form tasks

  • Add "Auto Log Out" settings for KickOff and TaskSequence modules

  • Ability to specify a message sender for each workflow
    A custom message sender can be specified on each workflow version. Trigger, task and reference messages from the workflow will use the custom sender.

  • Added ability to use the session person id in the Motion 2 variables
    New smarty variable name is{$sessionPersonId}

  • Fixed forms that load data from repeatable entities to load the correct saved one

Payment Processors

  • Disable duplicate detection when processing automatic payments with Authorize.NET

  • Improve Authorize.NET error handling for failed payments

  • Added ability to save / import masked routing numbers

  • Changed transaction grid to retain column/sort configuration upon admin reload

Search

  • Hide datagroup values from search filters that have no search results

Site Planner

  • Added ability to remove owned content items from CRM details window

  • Fixed issues causing Site Plan move operation to delete wrapper items

  • New JavaScript Snippet module for adding custom javascript to site pages

  • Change minimum characters for search fields
    Change search field in Site Plan and Content Explorer to filter with a minimum of 3 characters instead of 4

Spark

  • Added custom icons and colors for Spark events and outcomes

  • Render available variables when sending a Spark Message
    All variables from Spark events output can now be used in the “Send Message” outcome’s subject and body.

Users

  • Fixed third level ACL roles not being registered on system updates

  • Added new group roles specific to sections of the Groups tab in Users admin
    Three new roles were added in Components / Users / Groups (Users, Groups, GroupUsers). These roles can be used to control access to the three panels in Admin / Users / Groups.

Webhooks

  • Added Newsletter webhook events

  • Optimize webhook triggering process to prevent processing and saving empty webhook triggers in the database

  • Add Historic Gift webhooks to the list in admin

Other bug fixes and improvements

Site Stacker Release 2.26

Api

  • Added support for using UTC dates in the search params for GET requests

  • New Newsletters endpoints

  • New CRM files endpoints

Contributions

  • Checkout Campaign Checkbox module
    Added Checkout Campaign Checkbox module that will allow a predefined campaign to be rendered as a quick give checkbox in the checkout page.

  • Added “Automatic” flags on contribution transaction and payment processor transaction
    Records processed by the recurring cron will be flagged with the automatic flag. Flags can be shown and filtered in admin grids.

  • Added empty text for tribute type dropdown in checkout page

  • Added accepted cards credit card icon for debit card on the checkout page

  • Added option to hide saved addresses when adding a new payment method on the checkout page
    This feature can be enabled from the site component settings for the Contributions component, using the checkbox “Hide Saved Addresses”

  • Added campaign info details when managing folder default values
    The default can be managed by right clicking on a campaign folder in Content Explorer and selecting “Contribution Campaign Defaults”. Currently, recurring fixed amounts can be managed at the folder level, with more settings coming soon.

  • Ability to add price variations to each campaign in a category that uses quantities
    Price variations can be managed from the “Campaign Info” section of content items associated with a quantity based campaign category. Each variation will have a label and a price. Additional changes will be necessary in site templates to display the list of variations.

CRM

  • Change Person details tooltip to handle missing / deleted CRM records

  • Add ACL roles for controlling all fields in the CRM Record module Person Details tab
    New roles were added in Components / People / CRM / Person

  • Added marital status and wedding anniversary columns to CRM Grid module

  • Reload domain list in Impersonate menu when a domain is added / remove on a site channel

  • Enforce ACL Entity access in CRM Record module PDF export

  • Link to specific entities in CRM Record module
    When scrolling through a long list of entities the URL will update with the entity that’s currently being displayed. When refreshing the page or reusing the URL the page will maintain it’s scroll position

  • Added email field in CRM record module for group records as well

Historic Giving

  • Fixed occasional corrupted PDF files when printing statements

  • Added household fields to historical giving grid

Import

  • Added Import endpoint for CRM Files
    Added secure file uploads section in Import admin to manage secure files destined solely for import purposes. Secure files section can be accessed with the “Secure Files Upload” button on the right side of the top toolbar.

  • Added tribute fields to historic gift import

  • Added multi field support in CRM Entity import

  • Removed redundant fields from various import templates and added missing description for some fields

  • Added the ability to cancel a running import
    An import in progress can be cancelled by right clicking on it in the grid and selecting “Cancel Import”

Modules

  • Added module grid formatter for boolean columns (display Yes / No / - instead of 1/0/-)

  • Added boolean filters to grid module filter lists

Motion 2

  • Fixed an issue with Country combo in address field set not selecting correct value on initial load in form tasks

  • Add "Auto Log Out" settings for KickOff and TaskSequence modules

  • Ability to specify a message sender for each workflow
    A custom message sender can be specified on each workflow version. Trigger, task and reference messages from the workflow will use the custom sender.

  • Added ability to use the session person id in the Motion 2 variables
    New smarty variable name is{$sessionPersonId}

  • Fixed forms that load data from repeatable entities to load the correct saved one

Payment Processors

  • Disable duplicate detection when processing automatic payments with Authorize.NET

  • Improve Authorize.NET error handling for failed payments

  • Added ability to save / import masked routing numbers

  • Changed transaction grid to retain column/sort configuration upon admin reload

Search

  • Hide datagroup values from search filters that have no search results

Site Planner

  • Added ability to remove owned content items from CRM details window

  • Fixed issues causing Site Plan move operation to delete wrapper items

  • New JavaScript Snippet module for adding custom javascript to site pages

  • Change minimum characters for search fields
    Change search field in Site Plan and Content Explorer to filter with a minimum of 3 characters instead of 4

Spark

  • Added custom icons and colors for Spark events and outcomes

  • Render available variables when sending a Spark Message
    All variables from Spark events output can now be used in the “Send Message” outcome’s subject and body.

Users

  • Fixed third level ACL roles not being registered on system updates

  • Added new group roles specific to sections of the Groups tab in Users admin
    Three new roles were added in Components / Users / Groups (Users, Groups, GroupUsers). These roles can be used to control access to the three panels in Admin / Users / Groups.

Webhooks

  • Added Newsletter webhook events

  • Optimize webhook triggering process to prevent processing and saving empty webhook triggers in the database

  • Add Historic Gift webhooks to the list in admin

Other bug fixes and improvements

Site Stacker Release 2.25

API


Contributions

  • Fixed user login during recurring contribution checkout
    Users were unable to login using the password fields on the checkout page.

  • New "Match On" setting in Unknown Giving module
    This allows matching on Accounting Code instead of External ID.

  • Added ability to disable editing of designations in “My Recurring” module

  • Added ability to disable editing of canceled recurring gifts “My Recurring” module

  • Added ability to disable editing of the frequency field in “My Recurring” module

  • Added ability to enable Google reCaptcha in checkout form
    This option can be enabled in the site channel settings for the Contributions component

  • Allow amount to be zero for offline contributions in “New Contribution” and “New Batch” windows

  • Added ability to use soft credits in checkout cart
    Individual gifts can be soft credited to a CRM record. One of the uses of this feature is for attributing gifts to a person.

  • Added quantity and fixed price support for contribution campaigns
    Campaigns can now be created with a fixed price. The donor will choose the quantity they wish to donate instead of the amount. This can be enabled on the campaign category and a new “Price” field will be available in Site Planner for campaigns belonging to the category.

  • Added forgot password link to “Thank You” page

  • Added increment / decrement feature for the checkout cart
    This allows for + / - buttons in template views to increment the quantity / amount of the gift in the cart.

  • Change donor related filtering to support soft credit person as well alongside affiliated person
    Giving grids will now show gifts that you are soft credited on.

  • Updated “account created” confirmation text on the thank you page to be correct regardless of site name

  • Added site setting for removing payment methods if the first transaction fails
    Can be enabled in the site component settings for the Contributions component with the checkbox “Failed Methods”

Core

  • Change alias field to cut down smaller words for alias to fit in max length of the field

CRM

  • Allow empty email when saving a person or group
    People and groups can now be created without an email address.

  • Added "Export All to CSV" functionality to CRM grid module
    This will export all records based on current grid filters, not just the ones seen on the page.

  • Added "Photo URL" column to CRM Grid module
    This column will show the CRM record’s photo path, not the actual image. Can be used for exports.

  • Prevent deletion of CRM records if they have associated contributions or Motion 2 data

  • Added tags filter to CRM Grid module

  • Added support for displaying Datagroup multi fields in the CRM grid module

  • Removed “Outside US” checkbox from phone fields and add autodetection for US phone numbers
    The checkbox was removed from admin, dashboards and contributions checkout page.

  • Archive person merge records and show any merged information on the target record

  • Added households support to CRM
    Every person created in CRM will automatically be assigned to a household. The default household name will be the person’s full name.

Datagroups

  • Fixed issue causing datagroup combos not to save because of empty value

Field Types

  • Fixed max length validation

  • Added spell check support for TinyMCE field
    Spell check can be enabled in the field configuration in Architect, Datagroups, CRM Entities and Motion 2

Google

  • New “Location Content Map” Cesium-based module
    A new full viewport module that shows a globe view with continent/country and other architect types views

  • New “Heat Map” module
    A new full viewport module that uses a 2d globe view to show various layers with highlighted country statistics

Historic Giving

  • Fixed issues with negative amounts in giving chart and also improve look and feel of the chart

  • New historic giving Statements module
    A new module using the grid framework that tracks/groups giving data on historical gifts by household

  • New historic giving “Account Balance” module
    A new module using the historic giving records to show total amount with various criteria

  • Added historic giving reports
    Add 'Historic Giving Reports' module that displays reports similar to how they are displayed in Contributions > Reports > Historic Giving, while showing only campaign owned by the logged user.

  • Added more presets to historic giving chart that allow filtering up to five years back

  • Change order of "Support Over Time" preset options

  • Synchronize historic giving credit person fields on CRM record changes
    Credit person fields will be updated in historic giving if the gift is soft credited to a person that has a CRM record

  • Added ability to edit soft credit fields in Historic Giving admin window

  • Removed extra unused fields in historic gift import template and add description to other used ones
    Removed all donor household related fields

Modules

  • Added new option to disable sorting on dashboard grid columns
    This option can be used on all dashboard grid modules.

Motion 2

  • New Statistics module (beta)
    Dashboard module for instance creation and task completion statistics.

  • Fixed "Cannot be empty" error when trying to submit some forms due to the CRM entity fields being required

Payments

  • Fixed card about to expire system message variables

  • Integrated Braintree payment processor

  • Added iframe handling for credit card payments and add new credit card form in Vantiv payment processor

  • Added site setting to disable CVV editing on credit card forms
    Can be enabled in the site component settings for the PaymentProcessors component with the checkbox “Disable CVV on Card Edit”

  • Save billing addresses on payment methods instead of CRM
    Billing addresses for payment methods will no longer be affected when a CRM address is changed or deleted.

Search

  • Allow applying filters on the CRM Entity datagroup fields

Sites

  • Change configured redirect URLs to be case insensitive

Site Planner

  • New Person Content Items module
    The new module will list content owned by a CRM record

  • Added new features to allow indexing and rendering of content item owner CRM basic and entity data
    Data from the CRM record that owns the content item can now be used in frontend templates. This allows for the creation of content types with no fields (eg. Missionary, Child) where all data is stored in CRM.

  • Added tags filter to Content Grid module

  • New visibility condition for checking the presence of a URL parameter
    Allows for showing / hiding an item in the frontend based on a URL GET parameter. Example: https://my.domain.com/projects/my-project?example-visibility-parameter

Spark

  • Added “Construct Entity Field” spark outcome
    Allows for saving data in a CRM entity field

  • Added “Historic Gift Create” spark event

  • Added option to create item only if it does not exists in “Content Item Create” outcome

  • Added Searchable option in the “Create Content Item” outcome

  • Added amount conditions to “Historic Gift Create” spark event

System Messages

  • Added file attachments capabilities

Templates

  • Template Inheritance
    This allows for the creation of a full featured “Base” template and “Child” templates with only small changes in views and style. Can be used when templates are very similar to each other to make them easier to maintain.

Users

  • Session groups
    In a scenario where a user belongs to multiple groups this feature allows only a subset of those groups to be active. It can be used to show different dashboard configurations for the same user.

  • Added SAML identity provider support
    SiteStacker can now be used as a SAML IDP for single sign on integration with other applications.

Virtuous

  • Integration with Virtuous CRM & Marketing Platform

Other bug fixes and improvements

Site Stacker Release 2.24

Advocacy

  • Added "Hide donation details" advocacy category setting
    The setting can be used to hide the entire donation details table from the campaign details page

  • Added new configuration to Related Campaign module to show/hide advocacy campaign title

Contributions

  • Added ability to show/hide title field in the checkout page
    This setting can be enabled in the Contributions component site channel settings

  • Added ability to make the title field required/optional
    This setting can be enabled in the Contributions component site channel settings

  • Add "Suffix" field to "Checkout" component page.
    This can be enabled, and made required or optional, from the Contributions component site channel settings.

  • Major rework of contribution reporting features
    The admin contribution reports interface was redesigned and multiple grouping and filtering options were added to the reports sidebar.

  • Added source codes column and other fixes to contribution reports

  • Added notes field to recurring reports

  • Added dynamic offline types for Contributions and Historic Giving
    The offline types we had before were Cash and Check. More types can be added now from Admin / Contributions / Offline types. In addition you can enable or disable the reference field for each offline type. (eg. In the case of check the reference field can be configured to be the Check Number).

  • Added "Soft Credit" data point to Contributions and Historic Giving
    You can associate a CRM Contact as a soft credit for each contribution designation when adding contributions from the admin “New Contribution” window, or from the “New Batch” window.
    Soft credit is also available as a column and filter in the Campaign View and in the dashboard contribution grids

  • Replaced "Affiliated Person" wording with "Affiliated Giver" throughout the system

  • Added support for saving drafts when adding new contribution batches
    In the “New Batch” window there now is a “Save Draft” button. This will save all data entered in the form without actually submitting contributions. A draft will be saved in the Batches grid with the “Draft” status and a blue color. Double clicking the draft will open the “New Batch” window with all the previously saved infromation.

  • Added "number of days before" setting to "Process Recurring" cron job. Defaults to 7 days.
    If the cron recurring cron was stopped for more than 7 days this value can be adjusted to process all the missed contributions.

  • Added ability to clear the end date value when editing a recurring batch record from My Recurring module

  • New "Recurring Canceled Notify Campaign Owner" system message.
    This is sent to the content item owner (AKA campaign owner) when a recurring contribution is canceled.

CRM

  • Added ability to show/hide title field in the registration page
    This can be enabled, and made required or optional, from the Users component site channel settings.

  • Add "Suffix" field to "Register Account" component page.
    This can be enabled, and made required or optional, from the Users component site channel settings.

  • Added setting to make the title field required/optional in EditProfile module

  • Add "Suffix" field to "Edit Profile" module.
    This can be enabled and made required or optional from the module's configuration.

  • Added ability to make emails clickable in CRM Grid and CRM Record modules. Initiates new email conversation when clicked.

Historic Giving

  • Fix "Download Report" PDF export not loading in Support Over Time module

Motion 2

  • Added "engagements" functionality to allow choosing a starting point and tracking a user's workflow
    The workflow and kickoff page can be selected from the “Automation” section in the Site Planner edit window.
    Motion 2 instances with an engagement will display the content item name in the Instances grid. The engagement is also available as a filter in the instances grid. Double clicking the instance will also show the engagement in the new “Information” section.
    Engagement information is also available in the Task List module.

  • Added new settings in the Workflow Data module that can be used to hide Basic Information or Task Details sections from the exported PDF files

  • Removed "Details" title from Workflow Data module generated PDF if "Hide task details" option is checked

  • Fixed due date triggers not sending notifications
    The due date trigger was not sending email notifications when the trigger was also set up with a delay.

  • Added ability to show additional note fields for note tasks (subject and important)
    This can be configured from the task settings.

  • Moved task type at the top of the task form and the type no longer defaults to "Standard"

  • Changed "Duration" label to "Due Date" in task form

  • Added settings to make tasks optional
    Any task can now be made optional. This can be done from the task’s settings and it will show a “Skip” button on the task page. If the skip button is used the task will be marked as complete without having to fill in the form, upload a file, add a note, etc.

  • Allow multiple selections for Relationship tasks
    This can be configured from the task settings. If enabled more than one CRM contact can be selected to create a relationship with.

  • Added option to repeat due date triggers until the task is complete
    This can be configured with two settings in the task settings:
    - number of times to repeat
    - Repeat frequency

  • New trigger source for landmark triggers based on a selected calendar date in the future
    Triggers added to landmarks can now use the “Fixed Date” trigger source. If selected a future date also needs to be selected. These triggers will run based on a new cron, processTriggerFixedDate, which will be installed automatically.

System Messages

  • Ability to populate the Subject field in the "Send Email" popup

Other bug fixes and improvements

Site Stacker Release 2.23

Advocacy

  • New "Campaign Name Description" and "URL Alias Description" settings for advocacy categories in "Manage Wordings and Misc." window.
    These settings allow editing the "Campaign Name" and "Url alias" fields description text on customize page.

Contributions

  • Added option for using fixed amounts for campaign categories for each recurring type
    By using this feature SiteStacker can be configured like a subscription system. A different price can be set for Monthly, Quarterly, Yearly recurring. At this time the option is only available at the category level, not at the campaign level, meaning, all campaigns in the category will have the same price.
    The option can be activated and configured in Admin / Contributions / Categories

  • Use database instead of session for all Contributions cart operations
    We’ve moved to a permanent storage for the cart system. This gives us the possibility to implement some more advanced cart features in the future, such as live statistics for admins, cart abandonment statistics, synchronizing the cart between devices for logged in users, etc.

  • Add campaign category cart expiration setting
    Campaigns from certain categories can now be set to expire automatically when added to cart. They will be automatically removed from the user’s cart after the configured expiration time elapses.
    The option can be activated and configured in Admin / Contributions / Categories

Cron

  • Add verifyCartExpiration cron job
    This needs to be activated for the cart expiration feature to work

CRM

  • Added record type date filter for dashboard grids
    The new filter allows filtering by a date range or preset of the record type assignment.
    As an example, it can be used to show all people that had the “Donor” record type applied in the past month.

  • Added ability to remove link on first column in CRM Grid module

  • Add "View Log" context menu item to Entity tree
    Opens the “Change Log” window for entities and entity groups

  • Improved wording and interface for CRM configuration
    The CRM configuration panel was improved for smaller screens

  • Improved geo-coding of addresses saved in CRM

Core

  • Upgraded all occurrences of reCaptcha to version 2 (Version 1 will no longer work after 2018-03-31)

Historic Giving

  • Add receiver record url setting to historic giving grid.

  • Changed historic giving grid to offer more control over links in columns.
    Any column in the historic giving module can now be configured to link to either the donor or the receiver of the gift. The link can be configured when adding / editing columns in the module’s configuration.

Menus

  • New "Ignore site channel" setting for menu items.
    When this is enabled the menu item's URL will be relative to the site channel where the menu is published.

Modules

  • Added saved views to dashboard grid modules
    The dashboard users now have the option to configure their modules with columns, filters and sorting options and saving them all under a “saved view”. Each user will have their own set of views. These views are currently not shared between users or configurable at the system level.

Motion 2

  • Fix task page, kickoff module and task sequence module not loading correct form data when using the browser back/forward functions.

Sites

  • Sort sites by name in Sites, Content Explorer and Site Planner

Spark

  • Added 'Add To Cart' and 'Remove From Cart' spark events
    The new events can be used to trigger outcomes when a campaign is added or removed from the cart. It also works together with the new cart expiration feature and the “Remove From Cart” event will trigger when an item expires.
    As an example, this can be used in a child sponsorship scenario where we want only one sponsor for each child by unpublishing the campaign when added to cart.

  • Fixed 'Change Workflow Stage' spark outcome unable to change to a live version

System Messages

  • Fixed an issue with date field being overridden by global date variable noticed in resend receipt feature
    The global “date” and “time” variables were renamed to “messageDate” and “messageTime”

Users

  • Session groups
    In a scenario where a user belongs to multiple groups this feature allows only a subset of those groups to be active. It can be used to show different dashboard configurations for the same user.

  • Order groups by name in the admin interface 

 
Other bug fixes and improvements
 

Site Stacker Release 2.22

API
- Added Replay function for re-running API logs
- Added cron task for cleaning old api logs from the Api Logs component. By default, it will clean all logs older than 12 months
- Filter improvements
- Make the time filters accept seconds
- Prevent the grid from breaking if an invalid html code is inserted

CRM
- Added ability for person addresses geocoding to use the Google API key from the Settings component if one is provided.
- Multi select filters for CRM record types in CRM Grid
- CRM Record column for CRM grid with multiple values support
- Show formatted display value for number fields in CrmRecord module

Cron
- Added crontab.guru link when adding/editing a cron task, below the expression field, for quick help

Contributions
- Added campaign "Accounting Code" and "Inventory Status" as columns in the grids.
- Renamed hidden column "Related To" into "Related To ID (if refund)" and added tooltip with further explanation

Field Types
- Apply options of Yes/No field type to make Explanation sub-field required or not
- Format Decimal field values in admin based on the "Decimal Precision" setting

Google
- Added ability for Geo Location fields in admin to use the Google API key from the Settings component if one is provided.

Motion 2
- Apply "Is Required" option for Address field in Motion 2 forms
- Disable saving filter states in Task List module
- New option to hide completed tasks in Task List module
- New conditional fields in form tasks

Search
- Fixes and improvements around Tag and Datagroup filtering
- Improve filters to prevent loosing them when re-submitting the search form.

Settings
- Added method to retrieve integration settings for a given alias, with the ability to retrieve only one field value
- New "Google" integration setting which provides a place to store the global Google API key
- New "Google reCAPTCHA" setting. This holds the required Site Key and Secret Key

Site Planner
- New accordion layout for Content Item edit window
- New visibility condition to check if a user is the owner of a content item
- Added campaign "Accounting Code" and "Inventory Status" fields to the Campaign Info fieldset, when editing an item in Site Planner
- Added multi select option for Record Type visibility condition

Spark
- Added 'active' config for the spark events so they can be easily deactivated to prevent triggering outcomes in unwanted scenarios.
- Added source code conditions for Contributions spark events
- Improvement for passing variables from Event to Outcome

System Manager
- Show previously updated commits if "Is Sandbox" is on, to be able to rollback. Previously, if no tags existed, the previous commits weren't shown.

Task Queue
- Optimization to reduce the size of scheduled tasks

Other bug fixes and improvements

Site Stacker Release 2.21

API
- Layout improvements for API Logs
- Date and time filters in API Logs

CRM
- New 'Visible Columns' setting for CSV export in CRM module. When enabled the CSV export will contain only the visible columns in the grid.

Content Map
- Do not try to load popups if views are not selected in settings
- Accept more settings coming from template

Contributions
- New feature that prevents deleting a content items (such as a Project or Missionary) that has contributions attached to it
- New site channel filter and column for My Recurring module
- Improved cancellations of PayPal recurring gifts
- Fixed affiliated field in the "New Contribution" admin form
- Fixed issue with transaction edit window unable to submit on reversed or refunded transactions with negative amount

Field Types
- Added character counter for Text, Text Area, HtmlEditor and TinyMCE fields
- New ImageSet field type with the following properties: URL, Alt Text, Brightness, Contrast, Position
- New LinkSet field type with the following properties: Text, URL, Site Page, Target

LogRocket
- Integration with LogRocket, a tool that can record everything that happens in the admin and help track down issues (requires subscription)

Motion 2
- Fixed multi phone / address field only saving the last record added
- Fixed tasks assigned to multiple roles only being assigned to one role
- Fixed unauthorized users being able to access some task assignments

Search
- New "Sticky Results" setting in Search Results module. This provides a way to show specific content items at the top of the search results (these only show up on first page and if no filtering is used)
- Added ability to configure hidden custom filters in search module

Settings Component
- Added new 'Settings' component in Admin, to be used for managing general system settings and integrations with other systems

Payment Processors
- Added a setting to the iATS gateway for the delay to pending verification cron. After this time has passed if the transaction is not in the "returns" list it will be marked as successful. The default is 8 days
- Remove restriction for editing checks saved with the Sage gateway

Spark
- Added ability to order outcomes inside an event
- New Spark Transformers feature that provides more flexibility for connecting events with outcomes

Task Queue
- Fixed "Job Stuck in Queue" system message not being sent when a job is stuck

Other bug fixes and improvements

Site Stacker Release 2.20

Admin
-Switched to the modern Desktop theme in Firefox (same as Chrome)
-Fixed broken search functionality for some admin grids

Core
-Added support for sending a token with URLs in system messages that will identify the user when directed to the site. If a different user is logged in they will be logged out and the new user will be put in a "pre login" stage.

Advocacy
-Do not show failed or pending transactions on Advocacy Campaign and Advocacy Confirmation pages

Contributions
-Added delete functionality for contribution batches
-Allow My Recurring module to filter by multiple site channel in the module's settings
-Tribute gifts feature
 - Activate the tribute gifts feature from the Contributions site channel component settings
 - Enable Tribute Giving: Two fields will be available in checkout
    - Tribute Type: In Memory Of / In Honor Of
    - Tribute Name: The name of the person
 - Tribute recipient option
    - A form will be available in checkout for the details of a person to be notified about the tribute gift
 - Tribute data will be available in Contribution and Historic Giving admin grids, and in frontend modules

CRM
-Added setting to show CRM Person ID in CRM Record module

Historic Giving
-Added recurring start date and recurring end date columns that are populated for each recurring gift made from Contributions
-Implemented Download report for any selected interval in HistoricGivingChart module
-Added full address details to historic giving PDF report
-Added ability to configure chart bar colors in Support Over Time module
-Hide address for anonymous donors in the PDF report from Historic Giving Chart module
-Added "Sort by Last Name" setting in Support Over Time module. If this is enabled the records in the PDF report will be sorted by last name/organization name.

Motion 2
-Added missing instruction notes to fieldsets
-Fixed issues with identifying the correct person when they belong to multiple roles in the same workflow (eg. Applicant, Reference, etc). in Task List, Workflow Progress and ----Notifications modules.
-Fixed issues with some users not being redirected to the correct dashboard after completing a task
-Fixed delete function for TextBox fields
-Fixed datagroup items ordering when rendered as checkbox group or radio group

Payment Processing
-Added option for disabling the pending flag for check transactions in iATS gateway
-Added option for using different refund credentials for iATS

Spark
-New events and outcomes
- Events
    - CRM
        - Person Type Assignment
    - Motion 2
        - Person Assigned to Workflow
        - Task Complete
- Outcomes
    - Motion 2
        - Assign Task

System Messages
-Added ability to override default sender for each site channel in site channel component settings for "System Messages"
-Added ability to customize system messages per site channel (previously only per site customization was available)

Other bug fixes and improvements

Site Stacker Release 2.19

Advocacy
-Added new site setting to hide/show social sharing buttons for unapproved campaigns
-Added new site setting to hide/show unapproved campaigns in all user campaigns page
-Added additional information text for unapproved campaigns in promote step.

CRM / Grid and Record Modules
-Added middle name, maiden name and nickname configurable columns to CRM Grid module
-Added setting to hide gender field in crm record module

CRM / Relationships Module
-Added setting to Relationship module to configure the related person fullname format
-Fix name column not displaying correctly for organizations

Contributions / Admin
-Allow editing of individual recurring gifts

Contributions / PayPal
-Fixes and improvements to PayPal recurring gifts

Contributions / My Recurring Module
-Added ability to filter records by site channel

Contributions / Unknown Giving Module
-Added minimum amount option

Historic Giving
-Wait for pending gifts from Contributions to be verified before saving them as historic gifts
-Added donor external id to export

Motion 2
-Improved handling data submitted in form tasks
-Fixed and improved creation of workflow instances to prevents duplicate instances
-Fixed notifications sometimes not sending for secondary roles

Motion 2 / Task List Module
-New option to hide completed landmarks in Task List module

Payment Processors / Admin
-Improved filtering and sorting for Transactions and Payment Method admin grids

Payment Processors / Pending Transaction Verification
-Increase number of days in the past to verify transactions from 7 to 10

Payment Processors / iATS
-Increase iATS soap timeout to 120 seconds

Stories
-Added ability to disable the Answer Questions, Timeline and Map tabs from site settings
-Added ability to turn off story options

Spark
-Improved handling of Event data output and Outcome data input

Security
-Prevent access to a private dashboard page when hitting the browser back button after logging out

Other bug fixes and improvements