Best Practice: Setting Up a JustOn Project
You use Salesforce to manage customers, deals or products. Now you want to monetize your offering – you need e-invoicing with JustOn Billing & Invoice Management. The guidelines below will get you going.
Your businesses vary, and so do the ways you set up your billing and invoicing solution. There are, however, some general recommendations. Following them helps realizing JustOn projects smoothly.
This article both
- Covers the technical approach, see How to Proceed
- Outlines the usual feature scope to consider, see Feature Implementation.
Best Practice: Setting Up Billing and Invoicing Solution walks you through setting up JustOn Billing & Invoice Management completely for two major business scenarios: contract-based recurring billing and one-time sales.
How to Proceed
Production vs. Sandbox
Basically, we recommend to install and configure most of JustOn Billing & Invoice Management in your production org. Doing so
- saves time and money,
- keeps your business running without interferences,
- makes sure all data and access permissions are available.
For details, see Why install and configure JustOn in a production org?
This advice does, however, not extend to custom implementations or functional tests. To this end, we still recommend to create a sandbox copy of your production org after the general JustOn configuration is done.
Note that we do not recommend to use developer sandboxes for two reasons: they do not contain any of your original org's data, and setting up JustOn does usually not involve Apex development. Therefore, use full or partial sandboxes instead (see Sandbox Types and Templates in the Salesforce Help).
Remember that your approach may vary, but here is our rule of thumb:
Beyond the installation itself, you do everything that involves the creation or modification of data records within the scope of the delivered package in the production org.
This includes, among others,
- Custom settings
- Dunning process configuration
- Bookkeeping data generation
Once done, you refresh your sandbox and proceed to customize your solution.
In the sandbox, you can do anything that extends the scope of the delivered package and all testing.
- Creating custom objects
- Creating custom fields on standard, JustOn or custom objects
- Setting up custom processes
- Scheduling jobs
Once done, you create a change set and deploy it to your production org.
Note that depending on some feature's complexity you may have to iteratively switch between configuring the production org and customizing in a sandbox.
Deploy Enhancements from Sandboxes in the Salesforce Help
Sandbox Types and Templates in the Salesforce Help
Create a Sandbox in the Salesforce Help
Refresh Your Sandbox in the Salesforce Help
Change Sets in the Salesforce Help
Before you start, make yourself familiar with JustOn's operating requirements:
Preparing JustOn Installation
Enable the following Salesforce features for JustOn Billing & Invoice Management:
For development purposes, disable browser caching for the Salesforce session (see why).
In Setup, open the Session Settings page.
In Salesforce Lightning, navigate to Security > Session Settings.
In Salesforce Classic, navigate to Security Controls > Session Settings.
In the Caching section, deselect the checkbox
Enable secure and persistent browser caching to improve performance.
- Click Save.
- Visit the Salesforce AppExchange to get JustOn.
- Click Get It Now to invoke the installation procedure.
Follow the instructions and provide the required information as necessary.
To complete the basic installation:
As a system administrator, grant login access to JustOn Support.
For details, see How to grant login access to JustOn support?
Assign a JustOn license to your users.
For details, see Assign Licenses for Managed Packages in the Salesforce Help.
Assign the relevant permissions to your users who need them.
This involves creating a permission set that covers the required access settings for any project-specific custom objects and fields, Visualforce pages and Apex classes.
For details, see How to enable access for new users?
Modeling Billing and Invoicing
Generally, your business model and the nature of your products determine how to set up the billing engine of JustOn Billing & Invoice Management:
- If you want to bill recurring items, usage data, etc. on a regular basis, we recommend to create subscriptions and, consequently, to produce invoices based on them.
- If you sell one-time products, however, you do not need subscriptions – you can directly create invoices from arbitrary objects.
Deciding how to set up JustOn billing
For details, see
Other specifics that may impact the way you configure the software include
- Billing type, depending on the nature of your products:
Transactional(for usage data),
- Your pricing model
- Number of involved parties, like in a marketplace model
Whatever process you model, configuring JustOn billing and invoicing processes usually involves
- Creating a number of custom fields on your source objects – controlling fields, which hold meta data for assignment purposes and process control, and data fields, which hold the actual data to be invoiced
- Creating filters, which selectively narrow down the set of records included in an invoice run or subscription build
- Setting up the (automatic) invoice generation
- Creating a permission set that covers the required access settings for any project-specific custom objects and fields
As mentioned before, depending on the features' complexity you may have to iteratively switch between configuring the production org and customizing in a sandbox.
Best Practice: Modeling Billing and Invoicing walks you through setting up JustOn Billing & Invoice Management completely for two major business scenarios: contract-based recurring billing and one-time sales.
To meet your business requirements, configuring JustOn involves a number of additional tasks beyond implementing the actual billing and invoicing model. Usually, you cover these topics in the production org.
The template is the model based on which the PDF copy of an invoice, dunning reminder or account statement is rendered. It defines its contents and layout. Produced PDF documents are intended to be distributed via email or postal service to customers, and can be exported and archived.
Combining data with a template to produce an output
In addition to the fields that are printed to the PDF, the templates also include texts for the email that JustOn sends to distribute the rendered PDF documents.
You create a dedicated template for each language (and, possibly, other criteria) you want to support.
How to specify which template to use?
Depending on your business scenarios, you may have to use dedicated templates to support, for example,
- different locales (languages),
- specific customer groups,
- individual business entities.
So if there are multiple templates, what is the best way to specify which one to use – for a specific use case or as a fallback?
- This is how JustOn looks for a template:
ON_Templatefield on the invoice source records
ON_Templatefield on the account
(1) To predefine a specific template for your standard use cases, you usually set it via the ON field
ON_Template on your source records for the invoice generation.
ON_Template is a formula field. In the simplest use case, you just name the template to use. If necessary, however, you use a formula that returns a dedicated template according to your specific criteria – target region, business entity, product group, etc.
(2) In addition, you can define a dedicated template – using an
ON_Template field, again – on the account. In this case, the template set on the account will take precedence over the one defined on the invoiced source record.
(3) If neither the source record nor the account specify a template to use, JustOn falls back to the
Default template (see Template Assignment). Note that you can leave the
Default template shipped with JustOn untouched and use this as your fallback, or create a custom template according to your needs and name it
Preparing templates usually involves the following tasks:
- Defining standard texts for both the printed document and the related email
- Including a logo, adjusting the layout
- Defining a counter
- With templates v1, creating placeholders for custom fields to be included in templates
- With templates v1, creating template details for your use cases
The way you configure and work with templates differs depending on the PDF rendering approach you use:
- Visualforce PDF rendering (v1)
- JustOn PDF service (v2)
For details, see Working With Templates.
Custom settings are a means to manage custom sets of data that can be accessed across your org. For an introduction and general information, refer to Create Custom Data Sets in the Salesforce Help.
JustOn ships a number of custom settings to support the business processes around invoice generation and management. The most relevant that you are very likely to use include
- Assignment Rules - G/L Account
- Business Entities
- Custom Placeholders
- Export Settings
- Product Groups
- Tax Rules
Modify the list view All for your custom settings to show all relevant fields in the table. For details, see Create a Custom List View in the Salesforce Help.
In order to meet your users' needs, you may have to modify existing page layouts or create new ones.
Page layouts or record pages
Page Layouts in the Salesforce Help
Create and Configure Lightning Experience Record Pages in the Salesforce Help
Search layouts or
Record list views
Create or Clone a List View in Lightning Experience in the Salesforce Help
Custom settings list views
Create a Custom List View in Salesforce Classic in the Salesforce Help
Depending on your business use cases, you may need to configure additional features like
- Tax handling
- Dunning processes
- Payment entry registration or automatic payment collection
- Bookkeeping data generation for invoice data or for payment balances
- Bookkeeping data transfer to accounting systems
- SEPA export
- Multi-currency support
- Scheduling jobs for the invoice run, payment collection, etc.
- Logs and notifications
- History tracking for JustOn objects, as described in Track Field History for Custom Objects in the Salesforce Help
For a summary of JustOn's features, see JustOn Overview. For further explanatory documentation, see
For definitions of individual concepts, refer to our glossary.