Salesforce Rollup Solutions Final Presentation

34
Changing the way people change the world.

Transcript of Salesforce Rollup Solutions Final Presentation

Page 1: Salesforce Rollup Solutions Final Presentation

Changing the way people change the world.

Page 2: Salesforce Rollup Solutions Final Presentation

RollupsCidar Mendizabal, Dan Reider & Carlos Gallardo

Page 3: Salesforce Rollup Solutions Final Presentation

What is the purpose of Hard Credit Fields?Record amounts which a donor is directly responsible for giving to a nonprofit

Hard Credit Roll Ups

Page 4: Salesforce Rollup Solutions Final Presentation

What do the Fields Calculate?Not restricted to giving records that are tax receiptable in a given calendar year.

may reflect:

- amounts ranging from organization fiscal year giving to a donor's member year giving,

- amounts that are pledged but not yet paid. 

Page 5: Salesforce Rollup Solutions Final Presentation

What do the Fields Calculate?Based on parent gifts, including pledges,

may include amounts for transactions with close dates outside the current year

(a multi-year pledge, for example, will be hard credited entirely within the year on which it is pledged; the transactions will not appear in any separate hard credit rollups for each year).

Page 6: Salesforce Rollup Solutions Final Presentation

Account Hard CreditsBy salesforce design, giving (opportunity) records are always related to account records via the Account lookup.

All giving records may be considered for rollup as part of the account hard credit fields–within the capabilities and limitations of this functionality, described in detail within this manual.

No eligible giving record will be excluded from hard credit roll up on its account for any other reason

(e.g., account hard credits are not excluded on gifts which have contact hard credit).

Hard based on the Account lookup only.

NGO Connect will populate the "Hard Credit Account" field for reporting purposes

modifying this field currently has no function

Page 7: Salesforce Rollup Solutions Final Presentation

What Setup must I perform to make Giving Roll Up?Account hard credit rollups consist of three distinct sets of fields on the Account.

- Summary flag Rollups

- Calendar year information from giving object

- giving amounts from summaries related to account.

Page 8: Salesforce Rollup Solutions Final Presentation

Accounts - Major Giver and Sustainer FlagsAccount_RollupSummaries apex class rolls up:

Current Year Major GiverCurrent Year Sustaining GiverLifetime Major GiverLifetime Sustaining GiverPrior Year Major GiverPrior Year Sustaining Giver

Defined as calendar year, relative today.

If a summary exists whose giving level active date fits into this date range, and has any one of these flags to true, the account flags will reflect that

No filter by activity type, affiliation, or any other summary characteristic

Flags are cleared out and re-evaluated each time the rollup summaries job is executed

Page 9: Salesforce Rollup Solutions Final Presentation

Account - Calendar Year Hard Credit RollupsRolled up by the Account_RollupHardCredits apex job

Prior_Calendar_Year_Hard_Credit_Amount__cPrior_Calendar_Year_Hard_Credit_Count__c Current_Calendar_Year_Hard_Credit_Amount__cCurrent_Calendar_Year_Hard_Credit_Count__c

- Roll up information directly from parent giving records based on the close date of the gift relative to the calendar year

- Amounts roll up from the Current Giving Amount (fields display pending, open, or completed transactions)

- Not dependent on giving summaries

- Do not need calendar year giving type engine configured or calendar year summary created

- Do not include deleted or archived gifts

Page 10: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

rolled up by the Account_RollupHardCredits apex job

- Rollup from giving summary records

- Fields are defined on a relative current/prior year basis

- Compatible with giving summaries using giving type engines of calendar year, fiscal year, or member year.

Page 11: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

If summaries store member year giving, current year and prior year fields could capture different timeframes depending on account

(membership started on January 1st will have a different current year than membership started on August 1st. )

If summaries capture fiscal year giving, then current year will always correspond to the current fiscal year on all accounts.

Derived from summaries, and governed by summary behavior

Page 12: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

Summary records are not guaranteed for every year (no summary record is created if there is no giving)

Specific logic which governs which giving summaries are rolled up to these fields. This logic may not always produce results that correspond to exactly adjacent years for current and prior

Current and prior may also vary by account

Rollup fields have ability to add together amounts from multiple giving summary records.

When evaluating summaries for inclusion in these fields, summaries are

- filtered to the primary affiliation of the account:

- filtered by the opportunity record type setting has "Track Account Hard Credits" enabled

Page 13: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

If more than one activity type has this enabled, then summaries for those activity types may be added together.

This may be desirable if your organization uses calendar year giving summaries for donation, membership, or other types of giving separately, but then wishes to aggregate them into a single calendar year total in the current year.

On the other hand, if your organization uses both member year and calendar year summaries, you will want to ensure that only one activity type has Track Account Hard Credits enabled.

Adding together a member year and calendar year total will naturally produce inconsistent/meaningless results for reporting purposes, since the timeframe of the member year will vary widely while the calendar year is fixed.

Page 14: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

Current Year

Current year fields retrieve information from a summary that is defined as "most recent" and is also active.

The most recent summary on an account = last summary created (for a particular affiliation/activity type), and it may be in an active or inactive status.  

A summary that is both "most recent" and active will contain the current year data.  

If summary status is being updated promptly by batch job, the current year fields will accurately display information from the current member year, or from the currently valid calendar year/fiscal year, depending on your summary configuration.

Current_Year_Hard_Credit_Amount__cCurrent_Year_Hard_Credit_Count__c

Page 15: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

Prior Year

Retrieve information from a summary that

- was superceded by a most recent summary

- most recent, but which is no longer active.

Prior year will not always be the same year, if for some donors their last gift was several years in the past.

Prior_Year_Hard_Credit_Amount__cPrior_Year_Hard_Credit_Count__c

Page 16: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

First/Last

Contains information from a single summary created most recently and which contains the most recent date for the desired information.

If the summary does not contain a particular value for whatever reason, the value may be retrieved from another summary which does contain it.

First hard credit date and last hard credit date may be derived from summaries with different activity types

First_Hard_Credit_Amount__c First_Hard_Credit_Date__cLast_Hard_Credit_Amount__c Last_Hard_Credit_Date__cLargest_Hard_Credit_Amount__c Largest_Hard_Credit_Date__cFirst_Hard_Credit_Date__c Last_Hard_Credit_Date__cLargest_Hard_Credit_Date__c

Page 17: Salesforce Rollup Solutions Final Presentation

Account - Current Year/Prior Year, First/Last, and Lifetime Credit Rollups

Lifetime

Retrieved from account lifetime summaries

Results may be aggregated from multiple lifetime summaries

(Example: if you have separate calendar year summaries for donation and membership)

Lifetime_Hard_Credit_Amount__cLifetime_Hard_Credit_Count__c

Page 18: Salesforce Rollup Solutions Final Presentation

Custom Setting ConfigurationRollup Hard Credits Settings

Controlled on a per giving -record type basis:

rC Giving Opportunity Record Type Setting >Track_Account_Hard_Credits__c.

Controlled on a per-account basis:

rC_Giving Account custom field Track_Hard_Credits__c.  

Giving records rolled up to the account must match the account Primary Affiliation (in Primary_Affiliation__c); records for other affiliations will be excluded.

Page 19: Salesforce Rollup Solutions Final Presentation

Custom Setting ConfigurationGiving Summary Settings

rC Giving Opportunity Record Type Setting

Activity Type. Ensure that the activity types defined in these settings are aligned with the activity types on your giving level records. 

Summaries?. Ensure that the Summaries? checkbox is checked, to allow summary generation for these record types. 

Giving Type Engine?. Ensure that a giving type engine is specified from the supported types of Standard, Public Media, Calendar Year, and Fiscal Year. Note that Standard and Public Media are only supported on the membership record type and cannot be used with donation or any other type. Calendar Year and Fiscal Year, however, can be used with special restriction (e.g., calendar year membership is supported).

Page 20: Salesforce Rollup Solutions Final Presentation

Custom Setting ConfigurationRollup Hard Credits Settings

The recommended approach is to configure only one opportunity record type to track hard credits, for clarity at the account and contact level.

Rollup Account Hard Credits can be configured to run in batch mode by setting rC_Giving Account Setting > Rollup_Hard_Credits_Batch__c = TRUE.  

The recommended way to schedule account hard credit rollup is to use the rC_GivingAsyncRecovery class.  For more information, see Schedulable and Batchable Jobs.

Page 21: Salesforce Rollup Solutions Final Presentation

Custom Setting ConfigurationRollup Summaries can be configured to run in batch mode

rC_Giving Account Setting > Rollup_Summaries_Batch__c = TRUE.  

The recommended way to schedule summary rollup is to use the rC_GivingAsyncRecovery class.  For more information, see Schedulable and Batchable Jobs.

Page 22: Salesforce Rollup Solutions Final Presentation

Getting Started with

AGENDA• Discuss the Pro versus Cons• Create Sample Rollup Field• Manual & Schedulable Jobs• Additional Rollup Helper Resources

Page 23: Salesforce Rollup Solutions Final Presentation

Pros

• Run as many rollup jobs as desired

• Real-time Execution Capability

• Simple and Helpful Rollup creation wizard

Cons

• Not Free– Multi-Year Discount– 30% Non-Profit Discount

• Approximately $4,000 for a three year license org-wide

Rollup Helper Pros & Cons

Page 24: Salesforce Rollup Solutions Final Presentation

Creating a Rollup Field Using Rollup Helper• Step 1 – Create custom field in target object• Step 2 – Rollup Helper Wizard

i. Select object where custom field was createdii. Select the custom fieldiii. Select Source Field

i. Select the child object and relationship field from where the values will be rolled up from

ii. Select the field and the calculation type that will be calculated and rolled up

iv. Select custom filter, or create a new one.

Page 25: Salesforce Rollup Solutions Final Presentation

• Step 3 - Rollup Filter Editori. Enter name for new filterii. Specify sort order, if needediii. Specify filter criteria

i. Select Closed equals TRUE, then submitii. Select Won equals TRUE, then submitiii. You can even have filter logic in place

iv. SAVE & RUN

Creating a Rollup Field Using Rollup Helper

Page 26: Salesforce Rollup Solutions Final Presentation

roundCorner Team• I am not an expert, but we can all gain a level of proficiency working

together!!!• Easy Rollups vs Difficult Rollups

• Soft and Recognition Credits?

Page 27: Salesforce Rollup Solutions Final Presentation

Manual and Schedulable Job• Manual Job

– Click on the drop down action button and run the rollup job (FYI: it runs the job in increments of 500 records, so “Run Once For 30,000 records” it means you have between 25 to 30k records)

• Schedulable Job– Click on the drop down action button and select Schedule– Activate!– Select the repeatable frequency (Hours, Days, Weeks, etc.) and the amount of

records.• FYI: Rollups will restart where they stopped on the last run to ensure all records are

eventually updated. – Finally, select Next Run date and SAVE!

Page 28: Salesforce Rollup Solutions Final Presentation

Additional Rollup Helper Resources• Rollup Helper’s Resource Page has documentation in how to do real-time

rollup for custom objects and release note information. Take a look!– http://rolluphelper.thinkreid.com/resources

• They also have example rollups that might be useful for creation practice.– http://rolluphelper.thinkreid.com/resources/example-rollups

Page 29: Salesforce Rollup Solutions Final Presentation

• Discuss the Pro versus Cons• Review Wiki Page• Discuss design considerations• Portability

Agenda

Page 30: Salesforce Rollup Solutions Final Presentation

Pros ConsOpen sourced Open Sore

It’s Free Support from us is not free.

Has a real nice Layout to create and deploy rollup summary fields.

Requires a high level Salesforce.com knowledge.

Has a Salesforce Community

It can be portable and extends our product functionality.

Require that you document solution for the client.

Can be used with Process Builder, Schedule Apex or other Apex classes

Think about:

Page 31: Salesforce Rollup Solutions Final Presentation

Real life exampleClient wants to see Account’s with the total Fiscal Year Unrestricted Giving.

• Not possible without Apex class and Apex Trigger• Not part of our packaged code

Page 32: Salesforce Rollup Solutions Final Presentation

Solution• Create the process with the Declarative Lookup Rollup Summaries Tool.

Page 33: Salesforce Rollup Solutions Final Presentation

Where do I find more information?• Declarative Lookup wiki page.• Github: https://github.com/afawcett/declarative-lookup-rollup-summaries• Salesforce Community:

https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009O5p

Contribution and testing is encouraged.

Page 34: Salesforce Rollup Solutions Final Presentation

QUESTIONS?