action.skip

Setting Up Account Statement Management

← Setting Up Overdue Receivables Management

Account statements are reports that show the billings and payments of a given account for a specific time period.

JustOn Billing & Invoice Management implements account statements using specific statement records that summarize the account's balances.

Understanding account statements

Businesses may want to remind customers of sales that have not yet been paid – but perhaps without expressly stating an overdue receivable and without starting a dunning process. To this end, they create, for example, monthly reports on issued invoices and received payments, and send them out to their customers.

Usually, these statements include all unpaid invoices, even if they are not yet due. In this sense, they are still a collection tool, because they prompt customers to pay.

Implementation details

To support accounting purposes, JustOn Billing & Invoice Management allows for generating account statements – reports that summarize the balances of a given account for a specific time period. PDF copies of the account statements can then be distributed to the corresponding recipients.

Account statements can have different statuses:

  • Draft: New account statements have the status Draft. You can check draft account statements for correctness and edit them as necessary.
  • Closed: Finalizing account statements sets them to Closed and generates the PDF account statements to be sent out.

There are two ways to create account statements:

  • individually for a single account using the function Account Statement,
  • for multiple accounts using the Statement Runs functionality.

After reviewing them, you can then distribute the generated account statements.

If the involved balances relate to business entities, JustOn Billing & Invoice Management groups the balances by their business entity and, consequently, creates separate account statements for each account-business entity pair. In this case, you may want to add the field Business Entity to the list of displayed fields of the Statements list view (see Modifying Page Layouts or Search Layouts) so that the business entity to which an account statement relates will immediately be visible.

When creating an account statement for balances without related business entity, JustOn Billing & Invoice Management will associate the produced account statement with the default business entity (if set).

Setting up account statement management may involve the following tasks:

Info

For details about account statement creation and distribution, see Managing Account Statements.

Basic Account Statement Configuration

Customizing Account Statement PDF

JustOn ships a default template detail Account Statement, used to overwrite certain template fields when generating account statements and printing the corresponding PDF files.

Info

If you use account-specific templates (referred to using the ON_Template field on the account), you need a template-specific Account Statement template detail as well. Use the default Account Statement template detail as a model when creating your custom template details associated to account-specific templates.

As a fallback, make sure to keep the default template (named Default) and its associated Account Statement template detail.

Configuring the Account Statement template detail according to your organization's requirements may involve:

Adjusting Account Statement Table

The account statement is made up of balances, hence the account statement template detail overwrites the balance table definition. As explained in Balance Table Concepts, there are two fields that control the balance table display: Balance Columns and Balance Types.

Account Statement Table Concepts

The field Balance Columns defines the columns for the balance table, where the definition must be a list of balance field API names separated by semicolons. The default value in the Account Statement template detail is:

BalanceTitle;Date__c;OpenAmount;AmountGT

where

  • OpenAmount displays the open amount of invoices/credits on the creation date of the account statement,
  • AmountGT adds an additional row that shows the aggregated amount of all balances before the account statement start date.

Your business may require to display the related invoice of a balance record. To this end, add the field InvoiceNo__c to the balance table configuration (see Modifying Account Statement Table Columns).

The field Balance Types specifies a mapping (in JSON notation) of the values defined in the Type field of the Balance object to some display text (which can include placeholders). The default value for account statements is:

[ {
  "type" : "Payment",
  "title" : "Payment"
}, {
  "type" : "Refund",
  "title" : "Refund"
}, {
  "type" : "Prepayment",
  "title" : "Prepayment"
}, {
  "type" : "Payout",
  "title" : "Payout"
}, {
  "type" : "Clearing",
  "title" : "Clearing"
}, {
  "type" : "Settlement",
  "title" : "Settlement for Invoice [RelatedInvoiceNo]"
}, {
  "type" : "Dunning Fee",
  "title" : "Dunning Fee"
}, {
  "type" : "Invoice",
  "title" : "Invoice"
}, {
  "type" : "Credit",
  "title" : "Credit"
}, {
  "type" : "Manual",
  "title" : "Manual"
} ]

Types that are not specified in the mapping are not displayed on the account statement.

If required, you can define an aggregation per balance type. This results in a single line on the account statement even if there are multiple balances available. The value aggregation is to be defined using the following pattern:

"aggregate" : {"FIELDNAME1":"FUNCTION","FIELDNAME2":"FUNCTION"}

The following aggregation functions are available:

Function Supported Data Types Description
SUM Numeric and string values Adds up all values, preserves Null values.
MIN Numeric, Date and DateTime values Selects the minimum of all values, preserves Null values.
MAX Numeric, Date and DateTime values Selects the maximum of all values, preserves Null values.
LAST Numeric, string and Date values Selects the last processed value.
CLEAR Numeric, string, Date and DateTime values Allows to explicitly clear fields on the aggregated balance.

To aggregate, for example, balances of the type Payment, you can use:

{
  "type" : "Payment",
  "title" : "Payment",
  "aggregate" : {"Amount__c":"SUM", "Reference__c":"SUM"}
}
Modifying Account Statement Table Columns

Depending on your organization's requirements, you must add or remove columns or change their sequence modifying the Balance Columns field (see Account Statement Table Concepts).

  1. Open the relevant Account Statement template detail.

    Depending on your use case, you may have to edit the template detail associated to an account-specific template or the one associated to the Default template.

  2. In the Information section, click next to the Balance Columns field and specify the balance column configuration as required.

    Alternatively, you can click Edit in the detail view to edit the field.

  3. Click Save.

Example: Displaying related invoice

Displaying the number of the related invoice together with a balance record involves the following tasks:

  • Creating a custom formula field (for example, InvoiceNo) on the Balance object that retrieves the number of the related invoice using this formula:

    ONB2__Invoice__r.Name
    
  • Specifying the required balance column configuration in the Balance Columns field of the invoice, like

    BalanceTitle;InvoiceNo__c;Date__c;OpenAmount;AmountGT
    
Modifying Account Statement Type Display

You can configure which balance types are to be displayed in the balance table and modify their display names modifying the Balance Types field (see Account Statement Table Concepts).

  1. Open the relevant Account Statement template detail.

    Depending on your use case, you may have to edit the template detail associated to an account-specific template or the one associated to the Default template.

  2. In the Information section, click next to the Balance Types field and specify the balance type configuration as required.

    Alternatively, you can click Edit in the detail view to edit the field.

  3. Click Save.

Modifying Template Detail Texts

Depending on your organization's requirements, you must modify the text building blocks for the account statement. Usually, the relevant texts are included in the following fields of the Account Statement template detail:

Field Description Default Value
Display Type Specifies the type of the document to be printed to the PDF. Statement of account
Info Right Defines an area for printing general information like a page counter and the date above the actual document text.
You can use all account and dunning placeholders here.
Date: [DunningDate]
Text 1 Specifies the text to be rendered above the account statement table, can include placeholders.
Email Subject Defines the default email subject, can include placeholders. Statement of account
Email Body Defines the plain text body for the email, can include placeholders.
Line breaks are considered.
PDF Name Specifies the name pattern for the generated PDF file, can include placeholders. AccountStatement_[AccountName|cut:70].pdf

To modify the texts:

  1. Open the relevant Account Statement template detail.

    Depending on your use case, you may have to edit the template detail associated to an account-specific template or the one associated to the Default template.

  2. Click next to the relevant field and specify the corresponding text as required.

    Alternatively, you can click Edit in the detail view to edit all fields at once.

  3. Click Save.

Adjusting Custom Labels

Depending on your organization's requirements, you can modify the labels used in the account statement table. These labels are defined as custom labels in Salesforce.

Custom Label Default Value
Balance Balance
BalanceAggregatedRow Balance amount up to [BalanceDate]
AmountGT Amount
OpenAmount Open Amount
BalanceTitle Item

Note

To modify custom labels, you must enable the Translation Workbench. For details, see Enable and Disable the Translation Workbench in the Salesforce Help.

  1. Click to enter Setup, then open the Custom Labels list.

    In Salesforce Lightning, navigate to User Interface > Custom Labels.

    In Salesforce Classic, navigate to Create > Custom Labels.

  2. Click the name of the label you want to modify.

  3. Click New Local Translations/Overrides.
  4. Select the target language and specify the text as required.
  5. Click Save.

Info

For help about modifying custom labels, see Create and Edit Custom Labels in the Salesforce Help.

Enabling Account Statement Generation for Single Accounts

To enable the option for individually creating an account statement, add the Account Statement button to the account detail view.

Note

When upgrading JustOn Billing & Invoice Management from a pre-2.97 version, you must remove the deprecated account statement button (labeled Deprecated Account Statement) from the layout and add the new Account Statement button.

  1. Navigate to the object management settings of the Account object.
  2. Click Page Layouts.
  3. In the Account Layout row, click Edit.
  4. Add the Account Statement button to the page layout.

    In Salesforce Lightning, drag the button from the Mobile & Lightning Actions palette to the Salesforce Mobile and Lightning Experience Actions section.

    In Salesforce Classic, drag the button from the Buttons palette to the Custom Buttons area.

  5. Click Save to save the modified page layout.

For help about modifying page layouts, see Managing Page Layouts.

Enabling Account Statement List Display

Optionally, you can enable the display of related account statements on the account detail page using Salesforce's related list functionality (see Work with Related Lists on Records in the Salesforce Help).

  1. Navigate to the object management settings of the Account object.
  2. Click Page Layouts.
  3. In the Account Layout row, click Edit.
  4. Select the Related Lists palette.
  5. Drag the Statements list to the Related Lists section.
  6. Click Save to save the modified page layout.

For help about modifying page layouts, see Managing Pages.

Additional Account Statement Options

Enabling Contact Roles for Account Statement Distribution

You can use contact roles to pre-populate contact and address fields when executing an account statement run. JustOn supports contact roles as defined using the custom picklist field JustOn Contact Role on the Contact object or on the Account Contact Relationship object.

Depending on your business requirements or use cases, proceed as follows:

  • For users with a JustOn license, you add the managed field JustOn Contact Role (API name ONB2__ContactRole__c) to the page layout of the Contact object.
  • For users without a JustOn license, the managed Contact field ONB2__ContactRole__c is not visible. If you still must support contact roles on contacts, you create the custom field JustOnContactRole on the Contact object, which replicates the behavior of ONB2__ContactRole__c but is available for other Salesforce users.

    Once the custom field is defined, it takes precedence over the managed field.

  • If you need the contact role functionality on account–contact relationships, you create the custom field JustOnContactRole on the Account Contact Relationship object.

JustOn Contact Role priority
  • If both JustOn Contact Role on the account–contact relationship and JustOn Contact Role on the contact are set, the role defined on the account–contact relationship (irrespective of whether it is a primary or secondary relation) has priority over the role defined on the contact.
  • If JustOn Contact Role is set both on a direct and an indirect account–contact relationship, the role defined on the direct account–contact relationship (primary relation) has priority over the role defined on the indirect account–contact relationship.
  • JustOn Billing & Invoice Management considers JustOn contact roles defined on primary contacts (related via a direct account–contact relationship) only.

    If you need a JustOn contact role on a secondary contact (related via an indirect account–contact relationship), you must define it on the corresponding ACR record.

  • Salesforce allows time limitations and an explicit Active status for account–contact relationships. These settings, however, do not have influence on the priority of the assigned JustOn contact roles. If an account–contact relationship is valid on a given date, JustOn Billing & Invoice Management will consider the assigned contact role.

    You must make sure to not assign two or more contacts with the same role to an account. If this is the case, the system randomly picks one of them, which may produce unwanted results.

  • Contact role settings on the account–contact relationship (ACR) and on the contact can complement each other, as long as they are not in conflict.

  • For compatibility reasons, JustOn Billing & Invoice Management still supports existing Salesforce Classic Account Contact Roles. If available, they take general precedence over the values set in the JustOn Contact Role fields on the contact or the account–contact relationship.

To keep control simple, use JustOn contact roles either on contacts or on account-contact relationships only. If you decide to use account-contact relationships, JustOn recommends to use JustOn contact roles on account-contact relationships for more flexibility.

The examples in JustOn Contact Role Priority illustrate the behavior.

Using Managed Contact Role Field on Contact

To add the managed field JustOn Contact Role (API name ONB2__ContactRole__c) to the page layout of the Contact object:

  1. Click to enter Setup, then navigate to the object management settings of the Contact object.
  2. Click Page Layouts.
  3. In the Contact Layout row, click Edit.
  4. Drag the JustOn Contact Role field to the page layout.
  5. Click Save.

    For help about modifying page layouts, see Managing Pages.

Creating Custom Contact Role Field on Contact

To create the custom field JustOnContactRole on the Contact object to replicate the behavior of ONB2__ContactRole__c:

  1. Click to enter Setup, then navigate to the fields list of the Contact object.

    Open the field configuration for JustOn Contact Role in a new browser window or tab for later reference.

  2. Create the following new field.

    Label API Name Data Type Values
    JustOn Contact Role JustOnContactRole Picklist (Multi-Select) Copy all picklist entries from JustOn Contact Role that are needed for your org's uses cases.
    Make sure to use the same API names for the picklist entries.

    For help about creating fields, see Managing Object Fields in the JustOn Documentation or Create Custom Fields in the Salesforce Help.

  3. Allow the relevant users access to the new field either by adding it to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

  4. Allowlist the new field to make it accessible for database queries.

    To this end, create the new Field Whitelist record JustOnContactRole__c.

  5. Add the new picklist field (API name JustOnContactRole) to the Contact layout.

    Remove, if necessary, the managed field (API name ONB2__ContactRole__c) from the layout.

    For help about modifying page layouts, see Managing Pages or Page Layouts in the Salesforce Help.

Creating Contact Role Field on Account Contact Relationship

Salesforce allows associating one contact to multiple accounts through the Account Contact Relationship object. For details and configuration instructions, see

Once set up accordingly, you can enable JustOn contact roles on account–contact relationships. To this end, you create the custom field JustOnContactRole on the Account Contact Relationship object:

  1. Click to enter Setup, then navigate to the fields list of the Account Contact Relationship object.

    Open the field configuration for JustOn Contact Role on the Contact object in a new browser window or tab for later reference.

  2. Create the following new field.

    Label API Name Data Type Values
    JustOn Contact Role JustOnContactRole Picklist (Multi-Select) Copy all picklist entries from JustOn Contact Role on the Contact object that are needed for your org's uses cases.
    Make sure to use the same API names for the picklist entries.

    For help about creating fields, see Managing Object Fields in the JustOn Documentation or Create Custom Fields in the Salesforce Help.

  3. Allow the relevant users access to the new field either by adding it to their assigned profiles or permission sets.

    For details, see Set Field Permissions in Permission Sets and Profiles in the Salesforce Help.

  4. Allowlist the new field to make it accessible for database queries.

    To this end, create the new Field Whitelist record JustOnContactRole__c.

    If you have already allowlisted the custom field JustOnContactRole as created on the Contact object, do not create a second record. A Field Whitelist record allowlists a field, irrespective of its object.

  5. Add the new picklist field (API name JustOnContactRole) to the Account Contact Relationship layout.

    For help about modifying page layouts, see Managing Pages or Page Layouts in the Salesforce Help.

Once enabled, you can define contact roles for the account statement distribution use cases.

Enabling Invoice PDF Attachments

You can attach the related invoice PDF files to the account statement. To enable the invoice PDF attachment, the feature has to be activated in the global settings.

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. Select the checkbox Attach Invoice PDFs to Account Statement.
  5. Click Save.

Note

Note that processing large or many PDF files may quickly exceed the Apex heap size limit.

Enabling Account Statement Filters

With each account statement run, JustOn creates statements for all accounts that have balances produced in the selected period. If there are many accounts, the number of produced account statements may become difficult to handle. To prevent this, you can define filters that restrict the statement run scope on an account basis. This helps keeping the account statements separated if you work, for example, with multiple business entities.

Info

The option to create account statement filters is available as of JustOn 2.51.

An account statement filter defines the following fields:

Field Name Required Description Example Value
Name A unique name for the filter, will be available as an option value when triggering the statement run.
Must not exceed 38 ASCII characters. Special characters like brackets will be URL encoded, which makes them count three, like ( makes %28.
Statements for <company name>
Target Specifies the API name of the target object.
For account statement filters, always use Account.
Account
Condition Specifies a condition expression as used in an SOQL WHERE clause to restrict the set of included records.
Starting with JustOn 2.74, the SOQL expressions in filter conditions must not contain line breaks.
Tenant__c = '<company name>'
Use Case Specifies the specific filter use case.
For account statement filters, always use AccountStatement.
AccountStatement

To create an account statement filter:

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Filters.

  3. Create the account statement filter as required.

    For help about creating filters, see Filters.

    Once you have defined an account statement filter, users can select it when invoking an account statement run.

Info

Note that filters are not available when creating an account statement directly from the account.

Enabling Duplicate Draft Account Statements

By default, JustOn does not allow multiple draft account statements for the same period and filter. Repeatedly executing a statement run with the same parameters will not produce new draft statements.

You can, however, change this behavior enabling the corresponding setting in the global settings:

  1. Click to enter Setup, then open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. Select the checkbox Multiple Draft Statements.
  5. Click Save.

    This forces JustOn to create a new account statement with each statement run.

Info

The option to allow duplicate account statements is available as of JustOn 2.51.

Advanced Account Statement Options

Automating Account Statement Email Dispatch

Your organization's business may require to send invoice or statement emails automatically upon finalization when certain conditions become true.

To support this scenario, you add the checkbox AutoSend to the Invoice or Statement object. You can then apply custom logic to have this checkbox set selectively on specific records or globally on all produced records using a formula, the ON field mechanism or a Salesforce Flow. Remember that for an invoice or statement to be considered in the email distribution, the checkbox Email Invoice or, respectively, Email Statement must be selected.

Note

For the auto send feature to work, the custom setting Auto Queue Emails After Finalization must not be selected.

  1. Navigate to the fields list of the Invoice or Statement object.
  2. Create the following new field.

    API Name Data Type Description
    AutoSend Formula (Checkbox)
    Checkbox
    When selected, JustOn Billing & Invoice Management will automatically send the emails on invoice or statement finalization.

    For help about creating fields, see Managing Object Fields.

Defining Balance Sort Order

By default, the entries of the account statement are sorted by the balances on which they originally base. The first order criterion is their type, the second their date. Since the balance's Type field is a picklist field, which has its own sort order, the resulting display order may not resemble the usual alphabetical or numerical order.

You can, however, define a custom sort order. To do so, you create the custom field CustomSequence__c on the Balance object. You can then specify your sorting criterion as a formula, which produces a value that is sorted alphabetically or numerically.

  1. Navigate to the fields list of the Balance object.
  2. Create the following new field.

    API Name Data Type Description
    CustomSequence Formula Specifies the sorting criterion, returns a value that is sorted in alphanumeric order.
    Formula(Text) values are sorted alphabetically
    Formula(Date) values are sorted by date

    For help about creating fields, see Managing Object Fields.

The following examples illustrate the behavior:

Criterion Formula Return Type Example Value
Sort by type, then by amount TEXT(Type__c) + TEXT(Amount__c) Text Invoice100,00
Sort by date Date__c Date 2017-11-30
Sort by invoice record Invoice__c Text a01000000000001

Disabling Manual Account Statement Status Modification

Account statements are supposed to be finalized using the Finalize functionality. Finalizing account statements sets them to Closed and generates the PDF account statements to be sent out.

To prevent users from accidentally (or incorrectly) changing the account statement status manually, you set the Status field to Read-Only.

  1. Navigate to the object management settings of the Statement object.
  2. Click Page Layouts.
  3. In the Dunning Layout row, click Edit.
  4. Click next to the Status field to open the field properties.
  5. Select the Read-Only checkbox.
  6. Click OK to save the field properties.
  7. Click Save to save the modified page layout.

    For help about modifying page layouts, see Managing Pages.