This release requires the RaiseNow Fundraising Kit for Salesforce version 1.36 in conjunction with version 1.18.x of our backend integration.
This release focuses on enhanced duplicate management and improved dunning mechanics.
New Features and Improvements
Support updating recognized duplicates and protected field definition
With version 52.0 of their REST API Salesforce shipped improved duplicate management functionality. This RaiseNow release leverages this new functionality to better deal with contacts that have been recognized as duplicates by the Salesforce duplicate rules.
"RaiseNow__Object_Duplicate_Detected__e": {
"RaiseNow__Matched_Record_Identifier__c": "0037Q00000eLLt7QAG",
"RaiseNow__Matched_Record_Entity_Type__c": "Contact",
"RaiseNow__RaiseNow_Record_Identifier__c": "fd2dd3c5-f4ac-4c3b-b82b-26776167d2f9",
"RaiseNow__Report_Message__c": "These fields were not updated as they have been configured as protected.",
"RaiseNow__Ignored_Fields__c": "{\"external_identifer__c\":\"43212new123ab\"}"
}
New platform event for credit card expiration
RaiseNow will trigger a platform event in Salesforce when a credit card is about to expire. The expiration reminder will be triggered 8 and 4 weeks before the expiration date is reached.
Example:
"RaiseNow__Card_Expiration_Notice__e": {
"RaiseNow__Expiration_Month__c": "05",
"RaiseNow__Expiration_Year__c": "23",
"RaiseNow__Masked_Card_Number__c": "424xxxxxxxx42",
"RaiseNow__Subscription_Identifier__c": "876948e6c44befd482282dd495df2011bbc5dc6a"
}
Improved dunning mechanics for retrying failed payments
We have extended support for existing methods to execute recharges for opportunities programmatically. Previously it was only possible to recharge opportunities if they belonged to direct debit subscription collected via our new Hub platform.
Example:
List<List<Id>> opps = new List<List<Id>>();
opps.add(new List<Id>{'0067Q00000I2UcWQAV','0061i00000b5b4XAAQ'});
for (List<Id> entry : opps) {
RaiseNow.ProcessBuilderOpportunityChargeHandler.requestOpportunityCharge(entry);
}
Note that you list must not exceed 2000 entries. If you need to process lists with more than 2000 opportunities you have to call this method in batches.
Saving payment methods using the RaiseNow forms
RaiseNow tokenizes payment methods for recurring payments. Given the donor provides an opt-in in the donation process, RaiseNow can also tokenize card payments for one-off donations. The donation form will feature an additional checkbox in the payment method step:
Given the donor has provided such an optin, you can enable a lightnin web component in your page layout in Salesforce.
Using that button on the opportunity will allow you to charge an opportunity directly in Salesforce.
Note: Payment processed in this way will be directly attributed to this opportunity. Regardless of opportunity status or contact information. Contact information will not be updated.
Improved job management in Salesforce
With recent releases we have increasingly relied on Apex job to process tasks in asynchronous jobs. As Salesforce introduces a hard limit on the number of jobs that can be present in the queue at the same time, a better management of these asynchronous tasks is required.
This release introduces two new objects (RaiseNow__Async_Operations__c, RaiseNow__Async_Operation_Object_Segments__c) to store information about jobs being scheduled. If a job cannot be enqueued right away due to Salesforce governor limits, the exception will be caught and the job information will be stored in the RaiseNow objects for automatic retries at a later time.
Every 20 minutes tasks will run to re-enqueue jobs (first in, first out) and clean up jobs from the object that were successfully completed. This will ensure we are not using up storage capacity in your Org unnecessarily.
Remove some permissions in the RaiseNow permission set
The following permissions were removed from the RaiseNow permission set shipped with our managed package:
-
View all records on Campaign object
-
View all records on Contact object
-
Remove Create and Delete Permission from
Permissions on the Contact object are no longer required due to the change in how we handle deduplication.
The permission on
The permission on the Campaign object was removed as it runs contrary to Salesforce approved practice. However, RaiseNow does actually read valid campaigns from
Other bugs and improvements
- Reduce batch size when passing reconciliation information to Salesforce to avoid breaching Salesforce SOQL limits for large reconciliation reports.
- Improved handling of composite requests to Salesforce to automatically deal with row lock errors.
- Automatically create opportunity for a recurring donation payment if no open opportunity can be identified. This was done to mitigate a behaviour observed with some legacy recurring donation configurations in Salesforce NPC & NPSP as well as automatically dealing with recurring donation payments when the recurring donation has been closed between payment initiation and reporting of a successful payment.
- Automatically cancel non-initiated outstanding payments for RaiseNow subscriptions when the corresponding recurring donation is either suspended or lapsed in Salesforce.
Comments
0 comments
Please sign in to leave a comment.