Skip to content

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.

IR_gen
Creating invoices from arbitrary objects

Info

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 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.

ir_ON_field
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.

ir_ON_field_single_o
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.

ir_mapping
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).

ir_ON_field_single_o_parent
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.

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. 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 shared with the invoice recipients, 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.