RevOps keeps your business informed of key events in your customer lifecycle by sending webhook requests for each important event.
With every change to a Deal in RevOps, an event will automatically be sent to each webhook that you have configured to receive deal events.
URLs for webhooks can be configured in your RevOps instance at /integrations/webhooks
A Deal object represents a complete view of your deal in any status
. This includes agreement terms
, skus
, feature_flags
and other important contract information that can be used to provision billing, activate customer entitlements and much more.
The standard webhook response payload will contain a deal
property. In the reference documentation below, you can discover the pertinent information for your task at hand.
{
"body": {
"event": {
"id": "671b6fad-2634-49b4-bef5-5f4f18887ad6",
"time": 1619674995,
},
"deal": { /* Defined in this reference documentation */ }
}
deal
A complete list of properties on a customer deal.
name | type | description |
---|---|---|
id | string (UUID) | id is a globally unique identifier addressing the deal. |
status | string (ENUM) | An enumerated value representing the current deal. See Deal Status for options. |
signed_contract_url | string (URL) | URL to the completed signed Contract. The field is null when signing has not started or incomplete. |
contract_activates_date | string (ISO8601) | The date of contract activation in ISO8601 format. All dates are in UTC. |
opportunity_id | string | The string representing the deal's associated Opportunity from the connected CRM. |
original_net_price | string (Money) | The original_net_price describes a calculated total of the original deal without user-defined deviations. |
original_net_price_currency | string (ENUM) | See Currency section on supported currency values. |
original_net_price_precision | int | Precision value right of the decimal of original_net_price . |
net_price | string (Money) | The net_price describes a calculated total of the final deal amount with all user-defined deviations. |
net_price_currency | string (ENUM) | See Currency section on supported currency values. |
net_price_precision | int | Precision value right of the decimal of net_price . |
skus | array (sku Objects) |
A complete list of products (SKUs) associated with this deal. See SKUs section for more information. |
terms | array (term Objects) |
A complete list of Legal and Payment Terms associated with this deal. See Legal Terms section for more information. |
The following describes all higher-level object models described in deal
properties.
deal.status
Deal Status describes the business workflow status.
deal.status
name | description |
---|---|
draft | Deals in draft are private and not submitted for approval. |
attention | Deals in attention are to be responded to urgently defined by company's policy. Deals moved into this status can trigger notifications. |
in-review | Deals in in-review are under standard SLAs defined by company's deal desk. |
approved | Deals ready to be sent to customer's for negotiation are put in approved status. |
negotiation | Deals in negotation are available to be viewed publicly by the customer. |
signing | Deals in signing status are out for signature, where at least one signature has been submitted. |
signed | Deals in signed status have completed all buyer and seller signatures. |
rejected | Deals in rejected status are not available for signature. They can move back to draft by owners when being edited. |
deleted | Deals in deleted status are not available via the REST API and have been archived from users. |
deal.skus
deal.skus
contains a list ofsku
objects. A SKU object represents a purchased item that contains information about how to price, collect, and activate entitlements known as feature flags.
<sku>
Name | Type | Description |
---|---|---|
id | string (UUID) | id is a globally unique identifier addressing the sku. |
friendly_name | string | Friendly name is a short string the SKU is referred to. |
status | string (ENUM) | Status defines whether the SKU is active , retired , or archived . |
quantity | int | An integer value representing the total quantity of the SKU. |
title | string | Public title of the SKU used on customer facing contracts. |
description | string | Public description of the SKU that is displayed on customer facing contracts. |
original_description | string | Default public description the SKU used on customer facing contracts. |
unit_name | string | A singular or plural noun describing the SKU in units. |
billing_schedule | string (ENUM) | The schedule the SKU will be charged on. Enumerated values: monthly , annual , quarterly , one-time , usage |
sku_group | string (ENUM) | A Sku Group defines how to group the sku together on a quote. Options are professional-services , fixed-costs , variable-costs . |
feature_flags | array <FeatureFlag> | A list of feature flag objects configured for the SKU. See Feature Flags for definition of objects in array. |
unit_price | string (Money) | The list price defined by the user. |
unit_price_currency | string (ENUM) | The currency of unit_price . |
unit_price_precision | int | The precision of unit_price . |
original_unit_price | string (Money) | The original list price defined by the administrator. |
original_unit_price_currency | string (ENUM) | The currency of original_unit_price . |
original_unit_price_precision | int | The precision of original_unit_price . |
net_price | string (Money) | The total price of the SKU on the contract. |
net_price_currency | string (ENUM) | The currency of net_price . |
net_price_precision | int | The precision of net_price . |
original_net_price | string (Money) | The total price of the SKU based on the original_unit_price . |
original_net_price_currency | string (ENUM) | The currency of original_net_price . |
original_net_price_precision | int | The precision of original_net_price . |
annual_price | string (Money) | The annual price (12 x unit_price x quantity ) of the SKU based on user-defined values. |
annual_price_currency | string (ENUM) | The currency of annual_price . |
annual_price_precision | int | The precision of annual_price . |
original_annual_price | string (Money) | The original annual price (12 x original_unit_price x quantity ) of the SKU based on administrator-defined values. |
original_annual_price_currency | string (ENUM) | The currency of original_annual_price . |
original_annual_price_precision | int | The precision of original_annual_price . |
monthly_price | string (Money) | The monthly price of the SKU based on user-defined values. |
monthly_price_currency | string (ENUM) | The currency of monthly_price . |
monthly_price_precision | int | The precision of monthly_price . |
original_monthly_price | string (Money) | The original monthly price of the SKU based on administrator-defined values. |
original_monthly_price_currency | string (ENUM) | The currency of original_monthly_price . |
original_monthly_price_precision | int | The precision of original_monthly_price . |
crm_provider | string | The CRM associated with pricebook_id and product_id . Options are salesforce or hubspot |
pricebook_id | string | The CRM external identifier for what catalog the SKU belongs to. |
product_id | string | The CRM external identifier for what product the SKU represents. |
product_code | string | The ledger code for what product the SKU's revenue is recognized in. |
billing_provider | string | The billing provider associated with billing_provider_product_id . Example: billing_provider is set to stripe when the Stripe integration is connected. |
billing_provider_product_id | string | The CRM external identifier for what product the SKU represents. |
sku.feature_flags
Feature Flags can be assigned to SKUs. They define what features are gated, limited, or a set number and what restrictions can be set on products.
feature_flag
Name | Type | Description |
---|---|---|
id | string (UUID) | id is a globally unique identifier addressing the flag. |
friendly_name | string | friendly_name is a label used to identify the feature flag. |
mode | string (ENUM) | feature_flags.mode can be one of the following options: gate , limit , number . |
enabled | boolean | Indicates if the flag is enabled for the current sku. |
value | string | (Optional) Maximum value for limit |
{
"name": "enable-sso",
"mode": "gate",
"enabled": true
}
{
"name": "user-limit",
"mode": "limit",
"enabled": true,
"value": "10"
}
{
"name": "connections",
"mode": "number",
"enabled": true,
"value": "1000"
}
deal.terms
deal.terms
contains a list ofterm
objects.
A term
defines legal terms and conditions of a deal that customers must agree to.
term
Name | Type | Description |
---|---|---|
id | string (UUID) | id is a globally unique identifier addressing the sku. |
description | string | Public description of the Term that is displayed on customer facing contracts. |
friendly_name | string | Friendly name is a short string assigned to the Term |
is_modifiable | boolean | Indicates if term conditions are modifiable or must be accepted as defined |
is_reserved | boolean | Indicates if the term is one of the reserved RevOps legal terms |
is_standard | boolean | Indicates if the term is standard for the customer organization and eligible for auto-approvals |
type | string (ENUM) | Identifies the type of legal term. See term.type for possible values |
value | string | Value of the the accepted term. Possible values are determined by term.type |
value_options | list | List of valid value options for this legal term. See term.valueOption |
variables | list | List of variables attached to the term. See term.variables |
term.type
We can distinguish term
types by the term.type
property.
Built-in term types define important Terms that are needed to build a complete billing solutions for the Deal.
Term Type | Category | Description |
---|---|---|
accountId | billing | A Term with this type defines the identifier used to connect and synchronize accounts across your CRM and billing systems. This identifier is used to record usage data and create invoices. |
billingStartDate | billing | A Term with this type defines the start date of the first Invoice. This will be a string ISO8601). |
contractActivationDate | billing | A Term with this type defines the starting date of the Deal as a string (ISO8601). |
contractTermLength | billing | A Term with this type defines the length of the contract in months. |
daysUntilDue | billing | A Term with this type specifies the number of days until the Invoice is due. |
latePaymentPercentageFee | billing | A Term with this type defines the penalty for late payment as a floating point number. |
purchaseOrderNumber | billing | A Term with this type defines the purchase order number. |
Term Type | Description |
---|---|
boolean | A Term containing arbitrary text. |
date | A Term containing a date field. This will be a string (ISO8601). |
dropdown | A Term containing a predefined set of valueOptions. |
contract-period | A Term containing the contract period as two ISO8601 datetime stings. |
money | A Term containing a monetary unit amount. |
number | A Term containing a number value. |
text | A Term containing arbitrary text defined by the Term Language. |
term.value_options
value_options
are pre-defined values that customers can choose from.
Name | Type | Description |
---|---|---|
friendly_name | string | Friendly name is a short string assigned the value option |
value | string | Value assigned to the term when selected by a customer |
term.variables
Term variables can be attached to a term to provide added flexibility.
Name | Type | Description |
---|---|---|
default_value | string | Default value to assign to the variable when a new deal is created |
friendly_name | string | Friendly name is a short string assigned the value option |
value | string | Value assigned to the term when selected by a customer |
variable_name | string | A singular or plural noun describing the term variable. |