Payment Plan Overview and Automation

VIII. Payment Plan Overview and Automation

Payment Plan: A Payment Plan is a detailed chart outlining the installment schedule, including the dates and percentages for each payment. This helps the customer understand their financial commitments for the purchase.

Field Label Field Type Pick List Value Description
Payment Plan Name Text NA The name or title of the payment plan.
Project Lookup (Project) NA Links to the related project name.
Building Lookup (Building) NA Links to the related building name.
1st Installment Date Date NA The date for the first installment.
1st Installment Percentage Percentage NA The percentage for the first installment.
2nd Installment Date Date NA NA
2nd Installment Percentage Percentage NA NA
3rd Installment Date Date NA NA
3rd Installment Percentage Percentage NA NA
4th Installment Date Date NA NA
4th Installment Percentage Date NA NA
4th Installment Percentage Percentage NA NA
5th Installment Date Date NA NA
5th Installment Percentage Percentage NA NA
6th Installment Date Date NA NA
6th Installment Percentage Percentage NA NA
payment-Plan

Once the Payment Plan is added and record is saved, An Opportunity Payment Plan will be created to capture and manage the payment details for the opportunity.

opportunity-payment-plan

Opportunity Payment Plan: This object stores information about the opportunity and the payment plan, including the amount and other relevant details.

Field Label Field Type Pick List Value Description
Payment Plan Number Auto Number NA An auto-generated number for identifying the opportunity payment record.
Inst. Number Number NA A numerical value representing the installment number in the payment plan.
Inst. Name Picklist 1st Installment
2nd Installment
3rd Installment
4th Installment
5th Installment
6th Installment
A picklist to select the installment name.
Inst. date Date NA The specific date for each installment payment.
Inst. Percentage Number NA A numerical value representing the percentage of the total amount allocated to the specific installment.
Amount Currency NA The amount for each installment, typically calculated based on the installment percentage of the total opportunity amount.
Opportunity Lookup(Opportunity) NA A lookup field that links the record to the related Opportunity.
Payment Plan Lookup (Payment Plan) NA A lookup field to link the record to the associated Payment Plan.
Bank Finance Lookup(Bank Finance) NA A lookup field that links to any associated bank financing related to the payment plan.
Bank Finance Status Picklist Yes
No
A picklist field to capture the status of the bank financing. Possible values might be provided based on specific needs.
opportunity-payment-plan

Once the Payment Plan is added and record is saved, An Opportunity Payment Plan will be created to capture and manage the payment details for the opportunity.

Automations / Flow :

When a payment plan is added to the Opportunity object, follow these steps to create Opportunity Payment Plans automatically:
     Create Opportunity Payment Plans: For each installment defined in the payment plan, create a
       corresponding Opportunity Payment Plan record.
     Divide the Amount: Divide the total opportunity amount based on the percentage specified for each
       installment.
     Add Details: Include the installment name, date, and link each Opportunity Payment Plan to the related
       opportunity.
This process ensures that the payment plan is accurately reflected in the Opportunity Payment Plans, with the amount distributed according to the defined installments.


To Setup this flow:
Step 1: Create a Flow
      • Go to Setup in Salesforce, and then search for Flows.
      • Click New Flow, and choose Record-Triggered Flow.
      • Set the flow to trigger when a record is created or updated on the Opportunity object.

Create-a-Flow
Create-a-Flow
Create-a-Flow

Step 2: Define the Trigger Condition
    • Specify the condition that triggers the flow. For example, you can set it to run when a payment plan field is updated
      or added on the Opportunity object.

Define-the-trigger-condition
Define-the-trigger-condition

Prerequisite: A
    • Create a variable called PaymentPlanId as below.
    • Click on New Resources
 Select type as Variable

  • After that Filled out the API Name, Select Data type as Record and choose Available for Input.

Prerequisite: B
      • Create a formula variables (datatype= currency) as following using the below formulas.
      InstallmentAmount1 = {!$Record.Amount} * {!PaymentPlanId.X1st_Inst_Percent__c} / 100 InstallmentAmount2 =
      {!$Record.Amount} * {!PaymentPlanId.X2nd_Inst_Percent__c} / 100
      InstallmentAmount3 = {!$Record.Amount} * {!PaymentPlanId.X3rd_Inst_Percent__c} / 100
      InstallmentAmount4 = {!$Record.Amount} * {!PaymentPlanId.X4th_Inst_Percent__c} / 100
      InstallmentAmount5 = {!$Record.Amount} * {!PaymentPlanId.X5th_Inst_Percent__c} / 100
      InstallmentAmount6 = {!$Record.Amount} * {!PaymentPlanId.X6th_Inst_Percent__c} / 100

Define-the-trigger-condition-Prerequisite-B

Step 3: Create Opportunity Payment Plan Installments
      • Add label, add manually values, and setup values as below.

  • Do the same for the all the 6 installment.
  • Link all the elements.

Step 5: Save the flow and Test it
      • Save flow, give meaningful name and activate the flow.

save-the-flow-and-test-it

Test it by adding or updating a payment plan on an Opportunity, and check if the Opportunity Payment Plan records are created properly.

The customer has two payment options: they can either pay directly according to the payment plan or apply for a loan.

If the customer chooses to apply for a loan, the sales user will coordinate with them throughout the process. Sales user will update the opportunity status to “Bank Finance Approval in Process” and will also manage and record details related to the bank finance, including the bank finance status and the percentage of bank finance approved.

payment-plan-overview-and-automation

When the Opportunity stage changes to “Bank Finance in Process” or “Negotiation,” the system will automatically check if the related Unit’s stage is not “Blocked.”

Automations / Flow :

When the Opportunity stage changes to “Bank Finance in Process” or “Negotiation,” the system will automatically check if the related Unit’s stage is not “Blocked.”

If the Unit’s stage is not “Blocked,” the system will automatically update the Unit’s status to “Blocked.”

Why This Is Important
      o Saves Time and Reduces Errors
         Manually checking and updating Unit statuses can be time-consuming and prone to errors. Automating this ensures
         it’s done consistently and accurately.

       o Keeps Data Accurate:
          The flow ensures that once an Opportunity reaches certain stages, the related Unit is properly marked as “Blocked.”
          This helps keep data up-to-date without manual intervention.

To setup the flow follow below steps:
Step 1: Create a Flow
      o Navigate to Setup, In the Quick Find box, type Flow and select Flows.
      o Click on New Flow and select Record-Triggered Flow.

create-a-flow
create-a-flow

Step 2: Configure the Trigger
      o Object: Select the Opportunity object.
      o Trigger: Set it to trigger when a record is updated.
      o Conditions: Set conditions as follows:
      o Opportunity Stage = “Bank Finance approval In Process” or “Negotiation”.

configure-the-trigger
configure-the-trigger

Step 3: Fetch Related Units using the Opportunity units Object
      o Add a Get Records element to query the Opportunity units that link the Opportunity and Units.
      o Filter Criteria: Use the Opportunity ID from the updated record to find related Opportunity unit’s records, and related
         units not is null.

fetch-related-units-using-the-opportunity-units-object

Step 4: Add a Loop Element (If Multiple Products):
        If an Opportunity can have multiple Products, you’ll need a loop to iterate through each Product and check
        their status.

  o Drag and drop the Loop element.
  o Set the Collection to the unit records retrieved in the previous step.
  o Direction: Set the loop to iterate through the unit list.

Step 5: Add Decision Element
    o Add a Decision element to check the conditions:
    o The related Unit’s stage is not “Blocked.”

add-decision-element

Step 6: Update Records
    o Use the Update Records element to find the related Unit(s) and update their status.
    o Criteria: Specify condition to identify records, and set fields individually and choose Unit Object.
    o Action: Update the Unit’s status field to “Blocked”.

update-records
update-records

Step 7: Save the flow and Test it
      o Save and activate the flow.

save-the-flow-and-test-it
save-the-flow-and-test-it

Test it by updating an Opportunity record that meets the conditions and ensure the related Unit’s status changes to “Blocked.”

After Bank Finance approved the loan sales user will change the stage to Bank Finance Approved.

After the loan application process, the sales person will enter the Negotiation stage. During this stage, they will negotiate all terms with the customer.

Once all processes are completed and both parties agree, the deal is finalized, and the opportunity stage is updated to “Sold.”

After-the-loan-application-process
Automations / Flow :

When the Opportunity stage changes to “Sold,” the system will automatically check if the related Unit’s stage is not “Sold.”

If the Unit’s stage is not “Sold,” the system will automatically update the Unit’s status to “Sold.”

To setup the flow follow below steps:
Step 1: Create a Flow
      o Navigate to Setup, In the Quick Find box, type Flow and select Flows.
      o Click on New Flow and select Record-Triggered Flow.

create-a-flow

Step 2: Configure the Trigger
      o Object: Select the Opportunity object.
      o Trigger: Set it to trigger when a record is updated.
      o Conditions: Set conditions as follows:
      o Opportunity Stage = “Sold”

Configure-the-trigger
Configure-the-trigger

Step 3: Fetch Related Units Using the Opportunity units Object
      o Add a Get Records element to query the Opportunity units that link the Opportunity and Units.
      o Filter Criteria: Use the Opportunity ID from the updated record to find related Opportunity unit’s records,
         and units not is null.

Fetch-Related-units-using-the-opportunity-units-object
Fetch-Related-units-using-the-opportunity-units-object

Step 4: Add a Loop Element (If Multiple Products):
        If an Opportunity can have multiple Products, you’ll need a loop to iterate through each Product and check
        their status.

  o Drag and drop the Loop element.
  o Set the Collection to the unit records retrieved in the previous step.
  o Direction: Set the loop to iterate through the unit list.

add-a-loop-element-(if-multiple-products)

Step 5: Add Decision Element
      o Add a Decision element to check the conditions:
      o If the Opportunity Stage is either “Sold” AND related Unit’s stage is not “Sold.”

add-decision-element

Step 6: Update Records
      o Use the Update Records element to find the related Unit(s) and update their status.
      o Criteria: Use a relationship field (for example, if Opportunity and Units are related through a lookup field)
         to find the Units related to the Opportunity.
      o Action: Update the Unit’s status field to “Sold”.

Step 7: Save the flow and Test it
      o Save and activate the flow.

save-the-flow-and-test-it

Test it by updating an Opportunity record that meets the conditions and ensure the related Unit’s status changes to “Sold.”

If the opportunity is lost for any reason sales user update the stage to closed lost and select the closed lost reason from the list.

payment-plan-overview-and-automation

At each installment date specified in the Opportunity Payment Plan, an invoice will be created in the system.