ABOUT THIS UPGRADE
This upgrade provides performance improvements for payments processed from bank integrations. Payment records are no longer processed individually, but instead are transferred in bulk to Salesforce.
TIP
Backend upgrades are deployed automatically to all customer installations that meet the minimum requirements. This upgrade requires the installation of the RaiseNow Digital Fundraising Kit v1.38 from the Salesforce AppExchange. Contact RaiseNow support for the installation link.
Bulk Transfer for Direct Debit Payments
Direct Debit payments for the payments methods
- ch_ta (LSV+ Switzerland)
- ch_dd (debit direct from PostFinance Switzerland)
- SEPA DirectDebit
are now transferred in bulk. Opportunities are identified in Salesforce by querying Salesforce for Opportunity.RaiseNow__Invoice_Identifier__c
. According to the reported payment status in the camt file, Opportunity StageNames will be updated to either
- Closed Won
- Reversed Lost
Opportunities
, npe01__OppPayment__c
and RaiseNow__Transaction__c
will be created for the identified Opportunities in bulk requests.
Bulk Transfer for Referenced Payments
Before processing referenced payments, RaiseNow will build collections of certain payment types. These collections will be processed in bulk requests to reduce the number of API requests required and increase the performance of the operations. The process is always:
- Query
RaiseNow__Business_Process_Reference__c.RaiseNow__Payment_Reference__c
to determine the types of payments contained in the collection. - Build payment collections for each identified payment type and execute bulk processes for these collections.
Referenced Opportunity Collection
If RaiseNow__Business_Process_Reference__c.RaiseNow__Business_Process_Type__c
is Payment for Online Pledge
an Opportunity will be returned from the initial query for each such payment. Depending on the StageName of the Opportunity different actions will be taken.
-
Pledged
: Update Opportunity StageName toClosed Won
and createnpe01__OppPayment__c
,RaiseNow__Bank_Account__c
andRaiseNow__Transaction__c
-
Closed Lost
: Update Opportunity StageName toClosed Won
and createnpe01__OppPayment__c
,RaiseNow__Bank_Account__c
andRaiseNow__Transaction__c
-
Closed Won
: Create new Opportunity for the identified contact with StageNameClosed Won
and createnpe01__OppPayment__c
,RaiseNow__Bank_Account__c
andRaiseNow__Transaction__c
Referenced Campaign Member Payment Collection
If RaiseNow__Business_Process_Reference__c.RaiseNow__Business_Process_Type__c
is Payment for Direct Marketing Campaign initiated outside RaiseNow
an Opportunity will be created for the Contact and Campaign specified in the corresponding object in Salesforce.
- The StageName for the created Opportunity will be set to
Closed Won
and the Opportunity will reference the Campaign - A
npe01__OppPayment__c
object will be created for the Opportunity. - A
RaiseNow__Bank_Account__c
according to the debtor bank account specified in the payment will be created or updated. - A
RaiseNow__Transaction__c
will be created for the Opportunity, linking to theRaiseNow__Bank_Account__c
Referenced Recurring Donation Payment Collection
If RaiseNow__Business_Process_Reference__c.RaiseNow__Business_Process_Type__c
is Recurring Donation Payment Slip Pledge initiated by RaiseNow
the linked npe03__Recurring_Donation__c
will be queried for Opportunities
- Opportunities with StageNames in
'Pledged', 'Payment Requested'
will be retrieved from Salesforce and the returned Opportunity with the oldest CloseDate will be selected for the identified payment. - If no Opportunity can be identified for the
npe03__Recurring_Donation__c
an Opportunity for thatnpe03__Recurring_Donation__c
will be created. - The StageName for the selected Opportunity will be updated to
Closed Won
- A
npe01__OppPayment__c
object will be created for the Opportunity. - A
RaiseNow__Bank_Account__c
according to the debtor bank account specified in the payment will be created or updated. - A
RaiseNow__Transaction__c
will be created for the Opportunity, linking to theRaiseNow__Bank_Account__c
Referenced Unmatched Payment Collection
If no RaiseNow__Business_Process_Reference__c.RaiseNow__Business_Process_Type__c
can be identified for the reference provided in the payment, individual contacts are created with the data provided in the payment. If Salesforce duplicate rules detect an existing contact, that contact is used.
- An opportunity will be created based on the data retrieved from the camt file
- A
npe01__OppPayment__c
object will be created for the Opportunity. Note that the payment will have the reference innpe01__OppPayment__c.npe01__Check_Reference_Number__c
- A
RaiseNow__Bank_Account__c
according to the debtor bank account specified in the payment will be created or updated. - A
RaiseNow__Transaction__c
will be created for the Opportunity, linking to theRaiseNow__Bank_Account__c
Note: There is a breaking change in this implementation. The previous version of this process would also create RaiseNowBusiness_Process_Referencec object containing the reference used. However, this lead to problems when the same reference was used repeatedly.
Referenced Unpersonalized Campaign Payment Collection
If RaiseNow__Business_Process_Reference__c.RaiseNow__Business_Process_Type__c
is Non-Personalized Campaign Reference
new contacts are created with the data provided in the payment. If Salesforce duplicate rules detect an existing contact, that contact is used.
- An opportunity with StageName
Closed Won
will be created based on the data retrieved from the camt file. The Opportunity will link to the Campaign specified inRaiseNow__Business_Process_Reference__c.RaiseNow__Campaign__c
- A
npe01__OppPayment__c
object will be created for the Opportunity. Note that the payment will have the reference innpe01__OppPayment__c.npe01__Check_Reference_Number__c
- A
RaiseNow__Bank_Account__c
according to the debtor bank account specified in the payment will be created or updated. - A
RaiseNow__Transaction__c
will be created for the Opportunity, linking to theRaiseNow__Bank_Account__c
Processing of Acquirer Payouts
This process has been rewritten to better account for situations in which not all payments referenced in the reconciliation report are present in Salesforce. In this case, the process used to fail, requiring manual error resolution by transferring the missing payments and retriggering the process. The new mechanism will query Salesforce first to identify which payments can safely be processed. These payments will be updated in bulk, setting the following fields:
- Opportunity:
RaiseNow__Transaction_Identifier__c,RaiseNow__Value_Date__c,RaiseNow__Acquirer_Payout_Received__c,RaiseNow__Gross_Amount__c,RaiseNow__Net_Amount__c
-
RaiseNow__Transaction__c
:RaiseNow__Acquirer_Fees__c,RaiseNow__Acquirer_Transaction_ID__c,RaiseNow__Original_Currency__c,RaiseNow__Reconciliation_Report_Identifier__c,RaiseNow__Value_Date__c,RaiseNow__Original_Amount__c,RaiseNow__Gross_Amount__c,RaiseNow__Net_Amount__c,RaiseNow__Original_Gross_Amount__c,RaiseNow__RaiseNow_Fees__c,RaiseNow__Transfer_Amount__c,RaiseNow__Opportunity__c
After processing these payments, the process will end in a transient error state with a message specifying which payments (RaiseNow UUIDs) could not be matched. A transient error states indicates that RaiseNow will attempt this process again. Retries will be executed automatically every hour for 12 hours. After that the process will go into a permanent error state but may be re-triggered from the business process monitor.
Comments
0 comments
Please sign in to leave a comment.