Custom objects and Synchronization order
Whilst most objects in BillForward have two-way synchronization, some currently do not.
One-way: BillForward -> Salesforce
Data from the following types is synced from BillForward to Salesforce.
Two-way: BillForward <-> Salesforce
Data from the following types are synced from BillForward to Salesforce and also editable in Salesforce natively.
Individual types are synchronized to Salesforce based on created or updated time. Only the most recent version of any data is synchronized.
Records are also synced in a well defined order, this is to preserve referential integrity.
Metadata in BillForward is automatically synchronized against the corresponding Salesforce object. To facilitate this properties are dynamically added to the Salesforce type based on the metadata key and value.
As a new property is added it will not be in the default layout. Thus to display the metadata field the layout must be manually edited via the setup page.
See Adding metadata field to layout below for steps to add metadata columns
Resources and Limitations
Salesforce has a restriction in the amount of data that can be stored. This should be taken into consideration when deploying the BillForward integration.
As an indicative number: 1,000 subscriptions billed monthly for 1 year would take between 20MB to 30MB. This represents:
- 1,000 accounts
- 12,000 invoices
- 12,000 receipts
- 12,000 payments
- 1,000 payment methods
It is worth noting Salesforce imposes a minimum 2kb size per record regardless of the number of columns.
The the API calls needed per 24 hours can be estimated based on the amount of data and the frequency of the Salesforce synchronization.
Current usage values can be seen on the Salesforce system page.
Records are automatically synced using the Salesforce batch API to reduce round trips and number of API requests consumed.
The frequency of the synchronization job is customizable, by default it is set to a 15 second interval. This can be tweak based on the number of API requests available for that instance. If there are surplus API requests the sync interval can be lowered or if there is not enough API requests it can be slowed down.
Salesforce native Product and Pricebook have been associated with BillForward Objects to enhance the quoting flow by using BillForward quoting system.
A default BillForward All pricebook is automatically created in Salesforce. For each rate-plan in BillForward a Salesforce Product is created and linked to a BFRatePlan. These Salesforce Products can be added to multiple pricebooks manually.
When performing the quote process a Pricebook is selected per a quote.
Salesforce Account/Contact and BFAccount association can also be customized as required. This facilitates organizations who have one layer or hierarchy structure of accounts
Adding metadata field to layout
Step 1: Metadata column added to type
The metadata column has been added to this Account type.
The field has been named `bfMeta_METADATA-KEY__c`. Note the type of the metadata field. This can vary based on what is stored in the metadata.
Step 2: Add Metadata column to layout
Edit the Accounts layout type. Adding the `Foo` metadata type to the layout.
Step 3: Permission Metadata column for appropriate users
To be able to see the `Foo` field users must be permissioned.
Example Salesforce System Page
The below screen shows the Salesforce System Overview page. This indicates the number of API requests currently in use, and the data used.