Billing Arbitrary Objects
You can create invoices from arbitrary objects that are configured accordingly. Using the generic invoice run, you can completely bypass subscriptions – if you do not need them to model any contractual relations or conditions.
To this end, JustOn allows for configuring virtually any Salesforce object ( except for Line Item Schedule) to hold the required invoicing data. This may include orders, contracts, opportunities or custom objects. Using custom filters, you then define which objects and records to include in the invoice run.
Creating invoices from arbitrary objects
When executing the generic invoice run, JustOn
Creates a lookup relation from the billed source record to the produced invoice
To this end, you must properly set up the
ON_Invoicefield (see Configuring Parent Object or Setting Up Single Object). Setting this field marks a record as invoiced, preventing it from being invoiced again.
If the produced invoice is canceled, the object records become subject to the invoice run again.
Writes information about the billed source record to the generated invoice line items, setting the following fields:
Field Label API Name Data Type Description Source Id SourceId Text(18)(External Id) The ID of the source object. Filter Filter Text(255) The name of the invoice run filter.
Optionally, you can, in addition, have JustOn create lookup relations from the invoices to the original source records (see Enabling Lookup to Sources).
For details on how to set up the generic invoice run, see Billing Arbitrary Objects.
General Setup Approaches
The way to set up the generic invoice run depends on the representation of your source data in Salesforce.
You can generate invoices based on source objects that are in a parent-child relationship, like orders with order products. If set up accordingly, the invoice run takes the parent object ( order) to produce the invoice, and the child objects ( order products) to produce the invoice line items.
Creating invoices based on accordingly configured parent-child objects
You can generate invoices based on single source objects that hold all invoicing data using, like, for example, specifically customized contracts. If the object records are marked as the single source, and based on the appropriate configuration, JustOn can produce both invoices and invoice line items from these records.
Creating invoices based on one accordingly configured object
There may be data in addition to the configured fields for source objects in a parent-child relationship or for single source objects. If you need to create invoices based on data that is not accessible otherwise, you set up specific data mappings to retrieve it.
Creating invoices based on a mapping
Invoice Run From Parent
You can set up JustOn to allow for manually starting the generic invoice run from a parent of the actual source object. Think, for example, of an account that has multiple contracts (or orders with order products) set up as source objects – now you want to generate an invoice for this account that covers all related contract (or orders).
Invoking invoice creation from a parent object
The generic invoice run supports a number of additional options.
- Recurring billing
- Pre-payment balance assignment
- Invoice criterion
- Associated documents
- Lookup to sources
Your business may require to set up arbitrary objects to be billed repeatedly. That is, you must reproduce the behavior of recurring subscription items in the context of the generic invoice run – without subscription.
To enable recurring billing with the generic invoice run, you add the fields that hold the specific billing information to the source object from which the invoice line items are generated. For details, see General Billing Settings.
For details, see Configuring Recurring Billing.
Pre-Payment Balance Assignment
For repeated billing (see Recurring Billing), you can have a pre-payment balance automatically assigned to an invoice. JustOn makes use of a specific balance assignment key to make sure that the automatic balance assignment correctly relates the balances with the matching invoices. For details, see Assigning Pre-Payment Balance to Invoice.
To support the balance assignment key with the generic invoice run, you must create the field
ON_BalanceAssignmentKey on the source object from which the invoice is generated, and then make sure to have it set on the relevant source records. Subsequently, the balance assignment key is set on the produced invoices.
For details, see Enabling Pre-Payment Balance Assignment.
Your business may require to group and distribute invoice line items along a specific criterion – only invoice line items with the same criterion are to be included in one invoice, others are invoiced separately. To support this, JustOn makes use of invoice criteria, which are a means for controlling the distribution of invoice line items to multiple invoices.
To enable the invoice criterion, add the field
ON_InvoiceCriterion to the source object from which the invoice line items are generated.
For details, see Applying Invoice Criterion.
During the generic invoice run, JustOn can link documents that are associated to (parent or child) source records with the resulting invoice record. If the file type is not excluded (using the field
Email File Types on the template, see Modifying Invoice Email), the linked documents are then attached to the invoice upon distribution (emailing, etc.) and sent to the corresponding recipient.
To allow a fine-grained control over which (of possibly multiple) documents are linked with the invoice, the setting is made using a checkbox on document basis. If required by your business case, make sure that the intended documents are selected accordingly.
For details, see Propagating Associated Documents.
Lookup to Sources
ON_Invoice field properly set up (see Configuring Parent Object or Setting Up Single Object), JustOn creates lookup relations from the source records to the invoices. Your business may, however, also need lookup relations in the opposite direction – from the invoices to the original source records.
To this end, you create a (formula) ON field for the record ID on the source object and a (correspondingly named) target field on the invoice. Assuming you create invoices from orders, you create
ON_OrderID on the Order object and the Invoice object.
This will insert the order ID to the
ON_OrderID field on the order, and, on invoice creation, copy the ID value to the corresponding
ON_OrderID field on the invoice – producing a lookup relation from the invoice to the original order.
For details, see Enabling Lookup to Sources.