Deal Webhook
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
Deal Webhook Response Format
A Deal object represents a complete view of your deal in any status
. This includes agreement terms
, skus
, 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. |
hubspot_deal_id | string | The string representing the deal's associated HubSpotDealId if connected to a HubSpot deal. |
opportunity_id | string | The string representing the deal's associated OpportunityId if connected to a Salesforce Opportunity. |
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 . |
owner | object | The currently assigned owner of the deal. See Deal Owner section for more information. |
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. |
Property schema definitions for object models.
The following describes all higher-level object models described in deal
properties.
deal.status
Deal Status describes the business workflow status.
List of Status Options for deal.status
name | description |
---|---|
draft | Deals in draft are works in progress and have not been submitted for approval. |
attention | Deals in attention require the review and approval of deal desk. Deals moved into this status will trigger a notification. |
in-review | in-review is a legacy status and can be considered equivalent with attention |
approved | Deals in approved are ready to be shared with the customer for signature. |
negotiation | Deals in negotiation have been shared with the customer but no signatures have been completed. |
signing | Deals in signing status have been signed by at least one party. Deals in this status can no longer be edited without revoking the completed signature. |
signed | Deals in signed status have completed all signatures required or have been manually marked as completed. |
rejected | Deals in rejected status have been marked as invalid by an approver. They cannot be approved until changes are made and the deal is resubmitted for approval. |
deleted | Deals in deleted status have been archived from users. These deals cannot be accessed through Deal Desk. |
deal.owner
deal.owner
contains information regarding the currently assigned deal owner
List of Properties for <owner>
Name | Type | Description |
---|---|---|
id | string (UUID) | id is a globally unique identifier addressing the user. |
name | string | The name of the user as defined within their user profile. |
string | The email of the user as defined within their user profile. |
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 custom properties.
List of Properties for <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 <CustomProperty> | A list of custom property objects configured for the SKU. See Custom Properties 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
Custom Properties can be assigned to SKUs. They define what features are gated, limited, or a set number and what restrictions can be set on products.
List of Properties for 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 custom property. |
mode | string (ENUM) | 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 |
Example: Gate Flag to enable SSO.
{
"name": "enable-sso",
"mode": "gate",
"enabled": true
}
Example: Limit Flag to set total allowed users to 10.
{
"name": "user-limit",
"mode": "limit",
"enabled": true,
"value": "10"
}
Example: Number Flag to set total included number of connections.
{
"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.
List of Properties for 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
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. |
User defined Terms types
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. |