Billing Arbitrary Objects

← Billing Automation

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_Invoice field (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.

Parent-Child Objects

You can generate invoices based on source objects that are in a parent-child relationship, like, for example

  • orders with order products
  • opportunities with opportunity products
  • quotes with quote lines

or other parent-child objects. 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

Single 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

Data Mapping

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

Additional Options

The generic invoice run supports a number of additional options.

Recurring Billing

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.

Why recurring billing via generic invoice run instead of subscription billing?

Usually, JustOn recommends to create subscriptions and, consequently, to produce invoices based on them when billing recurring items on a contractual, regular basis. So why use the generic invoice run – reproducing the subscription behavior – instead?

Reasons to do so may include:

  • You bill CPQ subscriptions.
  • You use another object to keep all contractual data (like orders, for example) and do not want to add another data maintenance layer.
  • You primarily sell one-time products and rarely bill recurring items.

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.

Invoice Criterion

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.

Associated Documents

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

gir_source_lookup With the 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.