Setup Guide - PGE

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:

  1. Check the Product Releases page for the latest package versions

  2. Click on the link to open the release notes

  3. Copy the URL and append it to the end of your primary domain name in the browser address bar

  4. Press Enter and it will load an installation screen

  5. 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

  1. Go to Setup > Profile > Object Settings

  2. Enable access to all fields for the following objects:

    1. Account

    2. Contact

    3. Funding Project

    4. Product

  3. For Opportunity, enable access to all fields and set the record types and page layout assignments to active.

Object Manager Settings

  1. Go to Setup > Object Manager > Account

    1. go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile

    2. the Page Layout Assignment should be PGE Account Layout

    3. For the Lightning record page assignment, assign as Org default > PGE Account Record page

    4. for Compact Layout Assignment, choose PGE Account Compact Layout

    5. for Buttons, Links and Actions - only display the fields the rollups are using

    6. Donation information - display the following:

      1. Total Gifts

      2. Last Gift Date

      3. First Gift Date

      4. Largest Gift

      5. Last Gift Amount

      6. Total number of Gifts

  2. Go to Setup > Object Manager > Contact

    1. go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile

    2. the Page Layout Assignment should be PGE Contact Layout

    3. For the Lightning Record page assignment, assign as Org default > PGE Account Record page

    4. for Compact Layout Assignment, choose PGE Contact Compact Layout

    5. for Buttons, Links and Actions - only display the fields the rollups are using

    6. Donation information - display the following:

      1. Total Gifts

      2. Last Gift Date

      3. First Gift Date

      4. Largest Gift

      5. Last Gift Amount

      6. Total number of Gifts

  3. Go to Setup > Object Manager > Funding Project

    1. go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile

    2. the Page Layout Assignment should be PGE Funding Layout

    3. For the Lightning Record page assignment, assign as Org default > PGE Funding Project Record page

  4. Go to Setup > Object Manager > Product

    1. go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile

    2. the Page Layout Assignment should be PGE Product Layout

    3. For the Lightning Record page assignment, assign as Org default > PGE Product Record page

    4. to add the donation Product Family, go to Object Manager > Product > Product Family

  5. Go to Setup > Object Manager > Opportunity

    1. go to Page Layouts > Page Layout Assignment and assign it to the correct system Profile and Record Types

    2. set the following page layout assignments:

      1. Bequest - PGE Bequest

      2. Corporate Partnership - PGE Corporate Partnership

      3. Donation - PGE Donation

      4. Grant - PGE Grant

      5. Major Gift - PGE Major Gift

      6. Opportunity Group - PGE Opportunity Group

    3. for the Lightning Record Page, assign as the Org default

Naming Convention

  1. 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 key

        • Setup > 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

ProntoEngage

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.