Integrating Salesforce with Third-Party Billing Systems for Subscription Services
A seamless sales-to-billing integration is essential for an efficient and reliable Quote-to-Cash (QTC or Q2C) process.
The QTC process typically starts in a CRM system with opportunity management and quoting, and completes in a billing system after several steps, such as order processing, provisioning, and more.
While Salesforce and other CRM vendors offer their own billing platforms, many industries — such as communication service providers or utilities — often depend on external billing systems, necessitating an integration.
Subscription services pose additional challenges for CRM/billing integration with subscription-specific operations such as renewals, re-rates, service add-on changes or early termination liability (ETL) calculations to name a few. All these transactions must be reflected in billing and (ideally) should originate in the CRM.
This post describes CRM to billing integration using Salesforce, Nextian and Gotransverse billing platform; however, the concepts and general architecture will apply to other systems as well.
Reasons for CRM / billing separation
Typical reasons for separation include:
- Replacement cost: Billing systems are costly to configure & turn up and organizations are reluctant to replace them leading to their longer-than-usual lifespans.
- Scalability: Dedicated billing platforms generally perform better than CRM-based ones for large volumes of customers, bills and items.
- Functionality: Dedicated billing systems have rich functionality that CRMs lack, like CDR (Call Data Record) collection and rating, advanced billing rules, etc.
- Handling of sales taxes and regulatory fees & surcharges.
- Integration with financial systems: Billing systems have existing integrations to financial packages for receivables, payment processing, collections, bill reconciliations, etc.
Conversely, while billing systems have built-in CRM functionality, it is usually focused on post-sales account management — CRM systems are much better suited for new sales.
QTC for subscription services — a quick overview
A simplified QTC process for subscription services can be visualized as follows:
Opportunity → Quote → Order → Subscription Service → Bill
Subscription services are different from traditional “widget” sales and involve:
- Quoting various types of requests during service lifecycle (new service, change, replace, re-rate, re-term, cancel, etc.)
- Mixing various request types within a single quote (especially for wholesale)
- Handling subscription add-ons (recurring and non-recurring) and add-on changes after initial service turn-up
- Auto-renewals processed automatically without quotes
Systems architecture design
While there is little doubt what CRM or billing should do, there are multiple choices as to where order processing should happen (CRM or billing), as well as where the master subscription inventory is to be tracked.
At Nextian, we recommend keeping as much as possible in the CRM/Salesforce, due to the following advantages:
- Order Management in CRM:
- Reduces swivel-chairing
- Eliminates one integration point (CRM to order management)
- Provides additional information to the traditional CRM users: sales reps and account managers (e.g., how many orders does a customer have, what’s in flight, risks, open support cases, etc.)
- Subscription Service Inventory in CRM:
- Enables 360° view of current and past services to sales and account management
- Enables easy quoting of operations on existing services (upgrades, renewals, etc.)
- Customer Support in CRM:
- Eliminates one integration point (CRM or order delivery to customer support)
- Providers support teams with additional context (e.g., customer services, product types, revenue, open orders, etc.)
Important | From the architecture design standpoint, it does not matter which individual packages are used for implementation (e.g., Service Cloud vs. a custom ticketing solution), what matters is the division of responsibilities between systems. |
Nextian uses a seven-step approach for CRM-to-Billing integration:
Step 1 | Object mapping |
This is obvious for some objects, e.g., it is highly likely that both CRM and billing will have customer accounts.
For others, such as orders, subscriptions or add-ons, it may be more difficult to determine, especially if Salesforce record types come into play.
Step 2 | Field mapping |
Once the objects are mapped, the next step is determining which fields need synchronization/linking between systems.
For example, a Salesforce account may require a billing id or BAN (billing account number), billing cycle or others.
It is best to keep the field mapping to a bare minimum (at least initially), to minimize synchronization complexity.
For example, Nextian Gotransverse Connector only adds nine fields to the account object in Salesforce:
Important | Since, most likely, it will be easier to add new fields in Salesforce than in the billing system, it is preferable to make modifications in Salesforce — in fact, for Nextian Gotransverse Connector integration no changes were required on the billing side. |
Step 3 | Manual synchronization actions |
Please note that data migration and product synchronization have not been mentioned just yet. These are likely the very first topics that come to mind for people who are experienced with billing systems integrations. However, these can only be determined after the overall solution design has been determined and they will be addressed in later steps.
The objective of this step is to build UI actions (in this case Salesforce quick actions) helping to achieve end-to-end synchronization process in a manual fashion. This is to test the business logic before automating it.
For instance, Nextian Gotransverse Connector adds actions like synchronization, open, query for each integrated object:
Communication Manual synchronization is the first step requiring communication with the billing system. Using REST API is recommended, as:
Since REST calls are metered in Salesforce, it is important to “bulkify” them during implementation and use other tools like Data Loader for mass data import/initial synchronization. |
Step 4 | Process design |
This step is closely related to synchronization actions and looks as follows:
Initial product/account configuration → Run orders end-to-end via manual actions → Automating the process in the flows
It is important to start small and once all the details have been sorted out, automate from there.
Step 5 | Process automation |
Automation can be implemented in Salesforce using process flows, APEX triggers, batch jobs and others.
Nextian implements automation via work order workflows and automated (code) tasks enabling APEX execution, which in turn communicate with other systems.
Work order templates are a part of the product catalog and are defined operation type, product and optionally other criteria e.g., New ‘Virtual Server’, Cancel SIP Trunk.
Nextian Gotransverse Connector provides an APEX library for building automated tasks for order creation, starting orders, manipulating add-ons and other billing operations.
Step 6 | Product catalog synchronization |
Once the process flows have been designed, it is time to address the full product catalog synchronization. The most important question is where to keep the master product catalog? At Nextian we found the following to work best:
- Keep master product catalog in the billing system (products/add-ons/fees)
- Pull the catalog to Salesforce
- Enrich the catalog in Salesforce with items like workflows and other Salesforce-specific data that either serves quoting or order processing
- Enable continuous synchronization of Salesforce product catalog from billing
Step 7 | Initial data synchronization |
Apart from the product catalog, typically a lot of other data must be synchronized before go-live, such as accounts (billing accounts need to be linked to their CRM equivalents), subscriptions, etc.
This synchronization is best done using bulk loading and migration tools such as Data Loader.
Other important considerations — customer self-care
Customer self-care is an essential component of quote-to-cash process. Its implementation is important for planning CRM/billing integration as the portal needs to handle subscription and billing data (invoices, payments, pay my bill, etc.) as well as CRM data (account, current orders, etc.).
Conclusions
The approach outlined above is a solid blueprint for any CRM/billing integration, validated across multiple projects.
It can also be expanded to support additional integrations, such as order processing, interfacing with third-party provisioning systems, survey generation, and other orchestration tasks.
Contact us today to find out how we can help you!