Introduction
LogiSense Billing for Salesforce is implemented using an AppExchange Salesforce application which integrates LogiSense with Salesforce to sync the data related to:
Products
Product Services
Accounts and Opportunities
Contact Points
Contact Types
Currencies
States and Countries
LogiSense Records
Rate Groups
Rate Plans
Charges
Services
Service Charges
Usage Buckets
Tenants
Basically the application allows administrators to connect their Salesforce org with LogiSense Billing, pull products and product services from LogiSense Billing, and sell those products to customers in Salesforce. Sales / deal (Opportunity) and customer (Account / Contact) information is in turn pushed back from Salesforce to LogiSense Billing.
Configuration
The following section allows both LogiSense and Salesforce admins to work independently on setting up their systems. However, there are instances during setup where values must match between both systems. These instances will be called out in the steps below.
LogiSense Billing Configuration
The following items need to be configured in your EngageIP application. Screenshots are provided to indicate where the settings can be found / provide sample configuration data.
Owner Configuration: Owner Currencies which your organization supports
Must match values in Salesforce (the Salesforce configuration steps can be found under the 'Salesforce (Pre App Installation Process)' section below)Regional Settings: Countries (country and state relationships, city is optional)
Must match values in Salesforce (the Salesforce configuration steps can be found under the 'Salesforce (Pre App Installation Process)' section below)Accounts: Contact Types and Contact Points
Note: if Contact Types and Contact Points are configured as 'Required' in LogiSense Billing then they should also be set as required in Salesforce. The 'Contact Field Mapping' section below explains how to map LogiSense fields to Salesforce fields. Referencing which fields are mapped to Salesforce will tell you which Salesforce fields need to be set as required in order to match the LogiSense Billing configurationAdd an additional contact point to each contact type
Name: sfdcid
Data Type: Text
Allow Multiple: False
Required: False
Accounts: Account Status Types
Accounts: Account Types
Must match values setup under the Salesforce Account "Type" field (the Salesforce configuration steps can be found under the 'Salesforce (Pre App Installation Process)' section below)Billing: Bill Groups
Dunning Process: AR Terms
Custom Fields
Account:
Entity: Account
Field Type: String(255)
Name: sfdcid
Column Name: sfdcid
Description: Salesforce Account Id
Layout: Account Settings (optional)
Package Frequency:
Entity: Package Frequency Must match values in Salesforce (Product 'Product Family' field)
Field Type: String(255)
List: True
Lookup: False
Allow Multiple Selection: False
Name: Product Family
Column Name: family
Description: Salesforce Product Family
List Values: add the values listed in Salesforce (Setup → Object Manager → Product → Fields & Relationships → Product Family Picklist Values)
Layout: Add Product Family to the Package Frequency Layout
Note: any additional custom fields setup on package frequencies will not sync to Salesforce by default. To configure syncing of custom fields see the 'Package Field Mapping' section below
Packages
Only packages / package frequencies that are "Active" will be synced to Salesforce
IMPORTANT!
A product will be created in Salesforce for each Package Frequency
The product's name will be constructed by concatenating the following LogiSense fields, "PackageName PackageFrequencyName CurencyCode". For example, "ABC 1m GBP". It is important that all stakeholders are aware of this naming convention so that the names given to packages are user friendly for both Salesforce reps and LogiSense Billing Admins
If a package was already synced to Salesforce and then becomes inactive on the LogiSense side and resynced, it will be disabled on the Salesforce side and not available to be added to opportunities
Any package services whose Status pricing is NULL will not be synced to Salesforce
Rate plans (if applicable) must be attached at the package service level
Contracts (if applicable) must be attached to the package frequency
There should be a value in the SKU field. This field is mapped to the Product Code native field on the Product object in Salesforce. When a product is added to an opportunity a unique LogiSense Package Product Code will be assign to the opportunity product (SKU-ID). For example, if the SKU was ABC the product code will become, ABC-1. The next product added to any opportunity would be "SKU"-2, and so on. If no SKU is provided in LogiSense Billing and the product catalog is synced with Salesforce, then the product code for each product added to an opportunity would become, -1, -2, -3, ... (no SKU prefix).
Select the correct Product Family custom field value on the package frequency
The current Salesforce app doesn't support tiered pricing. The package will be synced however the tiered structure will not be displayed in Salesforce
Optional Configuration depending on deployment
Product Catalog Contracts - these can be attached to package frequencies and will be shown on the Salesforce Product Object. (Custom Field: "Minimum Term", LogiSense_Minimum_Term__c)
Usage Buckets - these can be attached to services and populate the Usage Bucket custom object installed with the Salesforce App. The connection between the usage bucket and service will also be established in Salesforce and show as a read-only "allowance" on the custom Opportunity Product Service Visual Force page
Rate Plans - standard configuration of Rate Plan/Rate Group/Rates. These must be attached to Package Services and not Package Frequencies in order to allow Salesforce users to override rate amounts
Salesforce (Pre App Installation Process)
Although the following are called out as "pre" app installation steps these can be done after the app is installed. The important thing to make the Salesforce admin aware of is steps one and two below as these are natively disabled in Salesforce. Step two will require the most work from the Salesforce admin, especially if they have a lot of countries and states to configure. Although this is mostly a requirement for taxing and data integrity, LogiSense requires our internal IDs for Countries and States in order to add addresses correctly.
There is no mapping screen within Salesforce between LogiSense and Salesforce country/states, instead the app relies on standard ISO codes. You are covered when it comes to countries, however keep this in mind when configuring states in both systems as the LogiSense Billing States Abbreviation value should match the Salesforce State Code value.
Activate Multiple Currency Support
Must match values in LogiSense Owner CurrenciesIn Salesforce access Setup
Search for 'Company' on the left and expand Company Settings
Click on Company Information
On the Company Information screen click on the Edit button
Enable Activate Multiple Currencies
Click Save
On the Company Information screen click the Currency Setup button
On the Currency page ensure that the currencies setup match the LogiSense Billing currencies configured (click New to add additional currencies)
Enable Country State Picklist Support
Must match values in LogiSense Regional SettingsIn Salesforce access Setup
Search for 'Country' on the left and select the State and Country/Territory Picklists option
Complete the 'Configure states and countries' step ensuring the states and countries configured in your Salesforce org match the states and countries setup in LogiSense Billing
Complete the 'Scan your organization' step to check for sate/country references
Complete the 'Covert your data' step
Turn on state and country/territory picklists by licking the Enable button
Add LogiSense instance URL to Remote Site Settings
In Salesforce access Setup
Search for 'Remote' on the left and select Remote Site Settings
Click the New Remote Site button
Enter a name for the site under Remote Site Name
Enter the URL of the LogiSense Billing application under Remote Site URL
Click Save
Configure Product Family Picklist
Must match values in LogiSense Package Frequency Custom Field "Product Family"In Salesforce access the Object Manager
In the list of objects click on Product
Load Fields & Relationships then select Product Family
Under Product Family Picklist Values add new values to match the custom field values populated on price frequencies in LogiSense Billing
Configure Account Type Picklist
Must match values in LogiSense Account TypesIn Salesforce access the Object Manager
In the list of objects click on Account
Load Fields & Relationships then select Type
Under Account Type Picklist Values add new values to match the account types setup in LogiSense Billing
Setup Custom Profiles that LogiSense App permissions will be added to (Note: permissions cannot be mapped to stock Salesforce profiles)
in Salesforce access Setup
Load / search for Profiles
Clone the profiles for administrators and agents that will be using the LogiSense App. For instance, if your sales staff are using the 'Standard User' profile, clone that profile (e.g. create a cloned profile named 'LogiSense Standard User')
Salesforce (app installation)
Install the latest version of the LogiSense Billing for Salesforce App in your production/sandbox Salesforce instance (Classic or Lightning are both supported).
IMPORTANT! If this is the first time installing the app on a fresh Salesforce instance follow the steps below during the install process
Select the third option Install for Specific Profiles
Scroll down on the Install page and configure the profiles which will have LogiSense Standard User vs. LogiSense Standard Admin permissions
LogiSense Standard User - Provides full access to all sales related objects (i.e. accounts, contacts, opportunities) however users do not have access to sync products, price books or create custom field mapping
LogiSense Standard Admin - Provides full access to the application including ability to sync products, price books, custom field mapping as well as access to API request logs
Click Install
After installing the app switch to either LogiSense Lightning or LogiSense in the App Launcher
Configure Account Page Layouts to display relevant LogiSense Billing data
Note: the following steps assume that you are creating a custom section for all LogiSense related fields. However, you can mix the fields in with existing ones on your current layouts if desired. ID fields that are listed are not required and used mainly for testing and support. All other fields require values and therefore must be added to your layouts are you can create a custom trigger that sets default valuesLoad the Object Manager
Access Page Layouts and modify the layouts that need to present LogiSense Billing data
Custom data can be grouped into a 'LogiSense' section or added to existing layout sections as needed. The following fields are required to successfully sync data with LogiSense Billing:Tenant
AR Term
Bill Group
Account Status
Subscription Invoice Recipient
Usage Invoice Recipient
Sync With LogiSense
Create a new section to display LogiSense Billing invoice data, and add the 'InvoiceList' Visualforce page to that section:
Edit the properties of the InvoiceList and enable scrolling
For more information how to configure which columns will be displayed, refer to the 'Account Invoice List' section below. To view the invoice, click on the Invoice Name/Id in the Visualforce page on the account object and it will launch a PDF version of the invoice as it appears in LogiSense Billing
Add the 'Sync With LogiSense' button/action under Buttons or Mobile & Lightning Actions
Lightning:
Classic:
Contact Object Layout
Create a new section on the Contact page layout and add the following fields:
Contact Type
Opportunity Object Layout
Create a new section on the Opportunity page layout and add the following fields:
Buttons or Mobile & Lightning Actions
Sync With LogiSense
Opportunity Product Layout
Create a new section for LogiSense and add the following fields:
Minimum Term
Account Product Code Name
Create a new section (e.g. 'LogiSense Product Services') and add the following Visualforce page:
OpportunityProductServicesListing
Enable 'Show scrollbars' on OpportunityProductServicesListing
Create a new section (e.g 'LogiSense Share Plans') and add the following Visualforce page (only if you are using Share Plans in LogiSense):
SharePlanListing
Enable 'Show scrollbars' on SharePlanListing
Product Layout
Create a new section for the LogiSense data and add the following fields:
Minimum Term
Base Time Unit
Base Frequency
Connecting Salesforce to LogiSense Billing
The following steps will allow you to connect your Salesforce org to the LogiSense Billing instance:
Navigate to the LogiSense Integration tab within Salesforce
Click on the Edit button in the top right
Enter the LogiSense instance URL in the Endpoint URL field. This should be the same one you entered in Remote Settings
Set the Client Id value to: 044b8ad6006845c29446b2f18e5b5909
For User Name and Password enter the LogiSense Billing credentials supplied by LogiSense
Click the Test Connection button
Once you receive a Success response, click Save
Account Field Mapping
Additional native or custom fields from the Account object in Salesforce can be mapped in order to sync with LogiSense Billing when account data is pushed (account data is only pushed down from Salesforce, it is not pulled or pushed from LogiSense Billing).
To configure account field mapping:
Navigate to the LogiSense Integration tab
Click on the Account Extensions button
Click the Add Mapping button
Select the Salesforce Field
Enter the LogiSense Field value
Value entered in the 'Column Name' field for the custom field on the Account entity in LogiSense Billing
This value cannot have spaces and must start with a lowercase letter (Note: even if the Column Name starts with a Capital in the LogiSense Billing UI, the API name will be created with a lowercase character)
Continue steps 3-5 above for each field mapping
Click Save
Package Field Mapping
LogiSense Package Frequency custom fields can be mapped to any custom fields created on the native Salesforce Product object.
To configure package frequency to product field mapping:
Navigate to the LogiSense Integration tab
Click on the Product Extensions button
Click the Add Mapping button
Enter the LogiSense Field value
Value entered in the 'Column Name' field for the custom field on the Package Frequency entity in LogiSense Billing
This value cannot have spaces and must start with a lowercase letter (Note: even if the Column Name starts with a Capital in the LogiSense Billing UI, the API name will be created with a lowercase character)
Select the Salesforce Field to map to
Continue steps 3-5 above for each field mapping
Click Save
Contact Field Mapping
By default Contact Names, Titles, Types and Addresses will sync from Salesforce to LogiSense Billing. All other fields require mapping to be configured within Salesforce.
IMPORTANT! All contact points for each contact type must be configured with Salesforce/LogiSense mapping prior to syncing any accounts.
To configure mapping of additional contact data:
Navigate to the LogiSense Integration tab
Click on the Contact Point Mapping button
Select the LogiSense Contact Type from the drop down
Select the Salesforce Field for each contact point
Click Save
Repeat steps 3-5 above for each contact type
Once all fields across all types have been configured, click Close
Account Invoice List
As part of the default Salesforce for LogiSense app, all account invoices in LogiSense will be reflected back to a custom Visualforce page that can be added to the Account object.
Which columns are displayed and their names is customizable from the Invoice Configuration section on the LogiSense Integration tab.
Navigate to the LogiSense Integration tab
Click on the Invoice Configuration button
Select which columns you would like to see in the Visualforce page
Optional, rename the Label value
Click Save
Any changes will take effect immediately across all account layouts that are configured to show the Visualforce page.
Importing and Syncing Data
Importing Data from LogiSense Billing
There are two buttons on the LogiSense Integration tab which allow you to import data into Salesforce from LogiSense:
Import Catalogues
Clicking on this button will import the following objects from LogiSense:
Packages (includes all package frequencies, package currencies, pricing rules, and rate plan connections to each package service)
Services (includes any connected usage buckets)
Rate Plans (includes groups and rates)
Share Plans (includes all data surrounding participating levels (package or service) as well as participating and contributing amounts)
Import Data
Clicking on this button will import the following objects from LogiSense:
Account Status Types
Account Types
Contact Types and Points
Countries and States
Owners and their Currencies
Bill Groups
AR Terms
Background Data Sync
To enable background syncing navigate to the LogiSense Integration tab and click on the Start Data Sync button.
Once Accounts and Contacts have been synced between both systems, changes to either of these objects within Salesforce will automatically create a LogiSense Request Record in order to update the record in LogiSense. These records will show on the LogiSense Requests tab with a status of Waiting and will be picked up by the Scheduler for resyncing.
For accounts changing of the following fields will trigger an automatic resync:
Name
Type
Status
Bill Group
AR term
Parent account
Usage or Subscription invoice recipients
Any custom fields that were mapped between both systems
Contact update changes to mapped contact fields/when a new contact is added or deleted
Background Data Sync Frequency
By default the scheduler in the LogiSense app is set to a 15 minute interval. In order to change this within Salesforce:
Go to Setup
Enter Custom Settings
Click on Manage for LogiSense Syncing Settings
Click Edit next to Syncing Settings
Enter a new value in the Syncing Frequency (in Minutes) field
Remember that this only works from Salesforce to LogiSense, meaning that if any changes are made to Accounts or Contacts within LogiSense are not pushed to Salesforce. Therefore it is recommended that the Salesforce instance be the master for any Account/Contact updates or hierarchical structure.
Logs
LogiSense Requests (API Logs)
Each sync request between LogiSense and Salesforce is recorded on the LogiSense Requests tab in Salesforce. This screen contains records related to import of data in Salesforce from LogiSense as well as syncing of Account and Opportunities from Salesforce to LogiSense.
From this screen you can see which requests were successful vs. failed within the Status column (Note: switch your list view to 'All' if you do not see the Status column). If a request failed, the reason can be found by clicking on the LogiSense Request Name which will show you the Request Error Logs within a Related list.