CPQ Integration: Trigger actions in Orb from Salesforce
Use the Orb CPQ integration to automate your provisioning and quote-to-cash workflows. This guide includes installation and set-up of common workflows the integration can power. You can also review this video to see an example set-up and workflow configuration.
How it works
Orb’s CPQ integration automates provisioning from SFDC to Orb based on custom triggers and flows built into SFDC flow-builder. The integration is installed via a Salesforce managed package and includes endpoints available within Orb’s API packaged as Apex actions that are fully supported so you can uniquely power your company's workflows.
Those actions can be triggered either manually, or upon standard SFDC triggers (e.g. “Opportunity moved to closed-won”). The Apex actions we’ve included have hybrid APIs that work well directly in Flow Builder, but also work well when composed together in code written by the customer’s SFDC deployment experts. This is done by providing Apex action classes that are Flow Builder-compatible, but have a “raw JSON” input option when the builder UI is insufficient or cumbersome.
Reach out to the Orb team to check if the integration is available in your plan and for a direct installation link. Installation of the package should be done by a Salesforce Admin using the workflow below.
Installation
Orb's Salesforce application is distributed as a Salesforce Managed Package. Installation of the package should be done by a Salesforce Admin.
- Navigate to the installation link provided, and click Install for Admins Only.
- Once the package is installed, navigate to the App Launcher and search for the Orb app.
Configuration
On the configuration page for the Orb application, you'll be asked to provide an API key. This is an Orb API Key that is used to make requests via Orb’s SFDC package to the Orb API. While any valid API Key for your account can be used, we recommend provisioning a specific Salesforce API key for this purpose and identifying it appropriately. To provision an Orb API key, visit the API Keys page in the Developers section of the Orb dashboard.
Use Cases
Description | Orb API Endpoints | |
---|---|---|
Provision new contracts | A new Enterprise contract is sold to an existing customer on a self-serve paid plan, an existing user of the free plan, or to a net new user. | In flow builder, fetch or create an Orb customer. When a customer does not have an existing Orb subscription, use Create subscription: - Equivalent APEX action: OrbCreateSubscription - API docs When a customer does have an existing Orb subscription, Schedule plan change: - Equivalent APEX action: OrbSchedulePlanChange - API docs |
Amend an existing contract | An existing contract is amended (edited), usually in an upsell or revision scenario. Often the following is amended: - Usage quantities: Increasing usage commits or decreasing them - Adding new products within the contract term | The APEX actions used depend on the contract changes made. Update fixed-fee quantity: - This is specifically for cases where you need to update a quantity on a non-usage-based fee; allocations are a special kind of non-usage-based fee, so allocation amounts can be updated this way - Equivalent APEX action: OrbUpdatePriceQuantity - API docs Add and edit price intervals: - This endpoint lets you end prices on the subscription at specific dates, and add new ones - These changes can be backdated or forward-dated - Ending a price interval, and adding a new one with similar-but-different configuration, is the common way to “amend” a particular price point - Equivalent APEX action: OrbAddEditPriceIntervals - API docs |
Cancel and replace an existing contract | An existing contract is canceled and replaced. Typically this is an upsell scenario, if a customer is growing in their usage, they want to negotiate a cheaper rate. | You’ll likely model this with a plan change, scheduled at the time of the transition to the new contract (note: this can be backdated or forward-dated). - Equivalent APEX action: OrbSchedulePlanChange - API docs |
Renew contracts | At the end of the contract term, the sales person will negotiate and provision a new contract. | You might model this as: A plan change: - Equivalent APEX action: OrbSchedulePlanChange - API docs A cancellation, plus a new subscription (in the event it’s a “new billing relationship” - e.g., with M&A): - Equivalent APEX actions: OrbCancelSubscription , OrbCreateSubscription - API docs for cancellation - API docs for creation |
Early termination | An enterprise customer ends a contract prior to the end of term and is no longer a customer or is moved to an existing paid or free plan. | You’ll likely model this as either a cancellation (churn): - Equivalent APEX action: OrbCancelSubscription - API docs Or a plan change (downgrade): - Equivalent APEX action: OrbSchedulePlanChange - API docs Orb will track prorated refunds for in-advance fees, but won’t issue them automatically - you’ll need to disburse those funds manually in the case of a prorated refund. |
Setting up your first flow
High-level, the steps to automate creating a subscription and customer from an Opportunity are:
- Create a new record triggered Flow. Make sure to select the
Include a Run Asynchronously path...
checkbox at the bottom when creating the Flow. This allows you to use the Orb actions. - Configure the flow to run when an Opportunity object is transitioned to the Closed/Won stage.
- Under the
Run Asynchronously
path, add an Action and search for theCreate Orb Customer
action
- Fill in appropriate fields from the opportunity, account, and other built in or custom fields.
- You can also create an Orb object by assigning a variable, to pass in more complex fields. For example, to create an
Address
variable, create anAssignment
with a data type ofApex-Defined
. Search for thewithorb__OrbAddressInput
Apex class, and fill in fields as needed. - You can use this variable as input to the
Create Orb Customer
action.
- You can also create an Orb object by assigning a variable, to pass in more complex fields. For example, to create an
- Next, add the
Create Orb Subscription
action. Similar to customer, fill in the appropriate fields.- To support custom pricing per customer, assign a variable of type
withorb__OrbPriceOverride
and fill in appropriate fields. This data is normally stored on the Opportunity Line Item.
- To support custom pricing per customer, assign a variable of type
- Save and activate the Flow. To test it, transition an opportunity to Closed/Won.
For a detailed walkthrough, we recommend watching the video.