Posi Giving Essentials (PGE) is an unlocked package, which means you can install it into your org and modify it according to your requirements. There is no licence subscription, just a one-off cost to purchase the package. Please note unlocked packages are sold as a baseline tool and do not fall under the same conditions of product support as managed packages.
Installing the package
When you have created your new org environment, install PGE as follows:
Check the /wiki/spaces/TPDM/pages/6359396 Product Releases page for the latest package versions
Click on the link to open the release notes
Copy the URL and append it to the end of your primary domain name in the browser address bar
Press Enter and it will load an installation screen
Follow the instructions through until you have successfully installed the package. These steps can also be used when upgrading a package to a higher version.
Configuring the package
Here are the configuration steps to follow after installing the package.
Update System Admin Profile
Go to Setup > Profile > Object Settings
Enable access to all fields for the following objects:
Account
Contact
Funding Project
Product
For Opportunity, enable access to all fields and set the record types and page layout assignments to active.
Object Manager Settings
Go to Setup > Object Manager > Account
go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile
the Page Layout Assignment should be PGE Account Layout
For the Lightning record page assignment, assign as Org default > PGE Account Record page
for Compact Layout Assignment, choose PGE Account Compact Layout
for Buttons, Links and Actions - only display the fields the rollups are using
Donation information - display the following:
Total Gifts
Last Gift Date
First Gift Date
Largest Gift
Last Gift Amount
Total number of Gifts
Go to Setup > Object Manager > Contact
go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile
the Page Layout Assignment should be PGE Contact Layout
For the Lightning Record page assignment, assign as Org default > PGE Account Record page
for Compact Layout Assignment, choose PGE Contact Compact Layout
for Buttons, Links and Actions - only display the fields the rollups are using
Donation information - display the following:
Total Gifts
Last Gift Date
First Gift Date
Largest Gift
Last Gift Amount
Total number of Gifts
Go to Setup > Object Manager > Funding Project
go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile
the Page Layout Assignment should be PGE Funding Layout
For the Lightning Record page assignment, assign as Org default > PGE Funding Project Record page
Go to Setup > Object Manager > Product
go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile
the Page Layout Assignment should be PGE Product Layout
For the Lightning Record page assignment, assign as Org default > PGE Product Record page
to add the donation Product Family, go to Object Manager > Product > Product Family
Go to Setup > Object Manager > Opportunity
go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile and Record Types
set the following page layout assignments:
Bequest - PGE Bequest
Corporate Partnership - PGE Corporate Partnership
Donation - PGE Donation
Grant - PGE Grant
Major Gift - PGE Major Gift
Opportunity Group - PGE Opportunity Group
for the Lightning Record Page, assign as the Org default
Naming Convention
Go to Setup > Custom Settings > Opportunity Naming Settings > Manage > New
Opportunity Settings
Go to Setup > Opportunity Settings > tick the two checkboxes under Manage General Settings
Posi Giving App
Go to Setup > Profiles > System Admin > Assigned Apps > tick Posi Giving Essentials
Trigger Handler
Create Apex Triggers
To configure the OpportunityTrigger, go to Setup > Apex Triggers
Click Developer Console
Click File > New > Apex Trigger
Fill in the Name and sObject
Copy and paste the following code:
trigger OpportunityTrigger on Opportunity (before insert, before update, before delete, after insert, after update) {
if(PGE.RollupTriggerHandler.firstRun){
PGE.RollupTriggerHandler.firstRun = false;
PGE.RollupTriggerHandler newRollupTriggerHandler = new PGE.RollupTriggerHandler( Trigger.old, Trigger.new, 'Opportunity', 'Primary_Contact__c' );
newRollupTriggerHandler.isBefore(trigger.isInsert, trigger.isUpdate, trigger.isDelete);
newRollupTriggerHandler.isAfterHandler( trigger.isInsert, trigger.isUpdate, trigger.isDelete );
}
PGE.OpportunityProductTriggerHandler handler = new PGE.OpportunityProductTriggerHandler(Trigger.oldMap, Trigger.newMap, 'Opportunity');
if (Trigger.isAfter) handler.isAfterHandler(Trigger.isInsert, Trigger.isUpdate, Trigger.isDelete);
if (Trigger.isBefore) handler.isBeforeHandler(Trigger.isInsert, Trigger.isUpdate, Trigger.isDelete);
}
To configure the OpportunityLineItemTrigger, go to Setup > Apex Triggers
Click Developer Console
Click File > New > Apex Trigger
Fill in the Name and sObject
Copy and paste the code below
trigger OpportunityLineItemTrigger on OpportunityLineItem (after insert, after update, after delete, before update, before delete) {
if(PGE.RollupTriggerHandler.firstRun){
PGE.RollupTriggerHandler.firstRun = false;
PGE.RollupTriggerHandler newRollupTriggerHandler = new PGE.RollupTriggerHandler( Trigger.old, Trigger.new, 'OpportunityLineItem', '' );
newRollupTriggerHandler.isAfterHandler( trigger.isInsert, trigger.isUpdate, trigger.isDelete );
}
PGE.OpportunityProductTriggerHandler handler = new PGE.OpportunityProductTriggerHandler(Trigger.oldMap, Trigger.newMap, 'OpportunityLineItem');
if (Trigger.isAfter) handler.isAfterHandler(Trigger.isInsert, Trigger.isUpdate, Trigger.isDelete);
if (Trigger.isBefore) handler.isBeforeHandler(Trigger.isInsert, Trigger.isUpdate, Trigger.isDelete);
}
Setup Dynamic Opportunity Naming buttons
Note: This is already part of the package
Contact
/lightning/o/Opportunity/new?useRecordTypeCheck=1&defaultFieldValues=
Name={!contact.name }+Donation+{!TODAY()},
PGE__Primary_Contact__c={!Contact.Id},
StageName=Prospecting,
CloseDate={!TEXT(TODAY())}
Account
/lightning/o/Opportunity/new?useRecordTypeCheck=1&defaultFieldValues=
Name={!account.name}+Donation+{!TODAY()},
AccountId={!account.id},
StageName=Prospecting,
CloseDate={!TEXT(TODAY())}
Opportunity
/lightning/o/Opportunity/new?useRecordTypeCheck=1&defaultFieldValues=
Name=Donation+{!TODAY()},
StageName=Prospecting,
CloseDate={!TEXT(Today())}
Post config with other pronto products installed
ProntoPayments
Go to ProntoPayments Settings
Basic
Enabled Features:
Allow Payment Processing in a Sandbox Environment - Enabled
Enable payment processing in Opportunity – Enabled
Generate Encryption Keys
Generate Encryption Key – Generate
Scheduler
Generate Encryption Key – Generate
• Check generated encryption keySetup > Custom Settings > ProntoPayments > Encryption Key
Scheduled:
Batch Payment Processing
Batch Get Payment Status
Gateway – Create Gateway record
ProntoPayments Settings > Gateway
Click New button
Fill out the required fields
Uncheck Active button
Click Save
In the Gateway record. Click the Authenticate button on the top right of the page
Create ‘Process Payment in Opportunity ‘flow and create a custom quick action button for Process Payment
Process Payment in Opportunity
Layout
Add Payment Transaction in related tab
...
Follow the config advice in the ProntoEngage 2.9 release notes.
Create Email Template for Comms Log
Example:
{dateToday}
Dear {salutation},
From the entire organisation, we would like to sincerely thank you for the generous gift of ${amount} on {relatedToCloseDate}.
We are grateful for the aid provided to help reach those who are in need. Thank you for sharing with us the opportunity to make a difference.
Comms Log Email Template
Enable Lightning Email Templates using drag and drop
Enable Template Folder Sharing
Go to Setup and search for Lightning Email Templates
Switch on Folders and Enhanced Sharing
Create and assign permission set
Create a new Permission Set called Lightning Email permissions
Go to System Permissions
Tick Access drag-and-drop content builder (This controls whether the “Edit in Builder” button appears later)
Save, then assign to users
Log out and log in again. This will refresh the Lightning functionality. If you don’t see “Edit in Builder” when using the Template Builder in the next section, then your system still hasn’t been updated.
Test the functionality
Click on App Launcher and search Email Templates. This is where you create Lightning Email Templates
Create a new test template
Click New Email Template button
Try adding a new shared folder and saving the new template inside it
The next screen should have an Edit in Builder button, which indicates the permission sets is enabled for the user. Please note: Templates which have created before you enabled the permission set, will not have this button displayed. Therefore, they will need to be recreated in the drag and drop builder. If the button is not displayed, check the user has been assigned the permission set correctly and hard refresh the page. You may also need to log out and log back in again.
•