Skip to main content

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.

nametypedescription
idstring (UUID)id is a globally unique identifier addressing the deal.
statusstring (ENUM)An enumerated value representing the current deal. See Deal Status for options.
signed_contract_urlstring (URL)URL to the completed signed Contract. The field is null when signing has not started or incomplete.
contract_activates_datestring (ISO8601)The date of contract activation in ISO8601 format. All dates are in UTC.
hubspot_deal_idstringThe string representing the deal's associated HubSpotDealId if connected to a HubSpot deal.
opportunity_idstringThe string representing the deal's associated OpportunityId if connected to a Salesforce Opportunity.
original_net_pricestring (Money)The original_net_price describes a calculated total of the original deal without user-defined deviations.
original_net_price_currencystring (ENUM)See Currency section on supported currency values.
original_net_price_precisionintPrecision value right of the decimal of original_net_price.
net_pricestring (Money)The net_price describes a calculated total of the final deal amount with all user-defined deviations.
net_price_currencystring (ENUM)See Currency section on supported currency values.
net_price_precisionintPrecision value right of the decimal of net_price.
ownerobjectThe currently assigned owner of the deal. See Deal Owner section for more information.
skusarray (sku Objects)A complete list of products (SKUs) associated with this deal. See SKUs section for more information.
termsarray (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

namedescription
draftDeals in draft are works in progress and have not been submitted for approval.
attentionDeals in attention require the review and approval of deal desk. Deals moved into this status will trigger a notification.
in-reviewin-review is a legacy status and can be considered equivalent with attention
approvedDeals in approved are ready to be shared with the customer for signature.
negotiationDeals in negotiation have been shared with the customer but no signatures have been completed.
signingDeals 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.
signedDeals in signed status have completed all signatures required or have been manually marked as completed.
rejectedDeals 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.
deletedDeals 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>

NameTypeDescription
idstring (UUID)id is a globally unique identifier addressing the user.
namestringThe name of the user as defined within their user profile.
emailstringThe email of the user as defined within their user profile.

deal.skus

deal.skus contains a list of sku 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>

NameTypeDescription
idstring (UUID)id is a globally unique identifier addressing the sku.
friendly_namestringFriendly name is a short string the SKU is referred to.
statusstring (ENUM)Status defines whether the SKU is active, retired, or archived.
quantityintAn integer value representing the total quantity of the SKU.
titlestringPublic title of the SKU used on customer facing contracts.
descriptionstringPublic description of the SKU that is displayed on customer facing contracts.
original_descriptionstringDefault public description the SKU used on customer facing contracts.
unit_namestringA singular or plural noun describing the SKU in units.
billing_schedulestring (ENUM)The schedule the SKU will be charged on. Enumerated values: monthly, annual, quarterly, one-time, usage
sku_groupstring (ENUM)A Sku Group defines how to group the sku together on a quote. Options are professional-services, fixed-costs, variable-costs.
feature_flagsarray <CustomProperty>A list of custom property objects configured for the SKU. See Custom Properties for definition of objects in array.
unit_pricestring (Money)The list price defined by the user.
unit_price_currencystring (ENUM)The currency of unit_price.
unit_price_precisionintThe precision of unit_price.
original_unit_pricestring (Money)The original list price defined by the administrator.
original_unit_price_currencystring (ENUM)The currency of original_unit_price.
original_unit_price_precisionintThe precision of original_unit_price.
net_pricestring (Money)The total price of the SKU on the contract.
net_price_currencystring (ENUM)The currency of net_price.
net_price_precisionintThe precision of net_price.
original_net_pricestring (Money)The total price of the SKU based on the original_unit_price.
original_net_price_currencystring (ENUM)The currency of original_net_price.
original_net_price_precisionintThe precision of original_net_price.
annual_pricestring (Money)The annual price (12 x unit_price x quantity) of the SKU based on user-defined values.
annual_price_currencystring (ENUM)The currency of annual_price.
annual_price_precisionintThe precision of annual_price.
original_annual_pricestring (Money)The original annual price (12 x original_unit_price x quantity) of the SKU based on administrator-defined values.
original_annual_price_currencystring (ENUM)The currency of original_annual_price.
original_annual_price_precisionintThe precision of original_annual_price.
monthly_pricestring (Money)The monthly price of the SKU based on user-defined values.
monthly_price_currencystring (ENUM)The currency of monthly_price.
monthly_price_precisionintThe precision of monthly_price.
original_monthly_pricestring (Money)The original monthly price of the SKU based on administrator-defined values.
original_monthly_price_currencystring (ENUM)The currency of original_monthly_price.
original_monthly_price_precisionintThe precision of original_monthly_price.
crm_providerstringThe CRM associated with pricebook_id and product_id. Options are salesforce or hubspot
pricebook_idstringThe CRM external identifier for what catalog the SKU belongs to.
product_idstringThe CRM external identifier for what product the SKU represents.
product_codestringThe ledger code for what product the SKU's revenue is recognized in.
billing_providerstringThe billing provider associated with billing_provider_product_id. Example: billing_provider is set to stripe when the Stripe integration is connected.
billing_provider_product_idstringThe 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

NameTypeDescription
idstring (UUID)id is a globally unique identifier addressing the flag.
friendly_namestringfriendly_name is a label used to identify the custom property.
modestring (ENUM)mode can be one of the following options: gate, limit, number.
enabledbooleanIndicates if the flag is enabled for the current sku.
valuestring(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 of term objects.

A term defines legal terms and conditions of a deal that customers must agree to.

List of Properties for term

NameTypeDescription
idstring (UUID)id is a globally unique identifier addressing the sku.
descriptionstringPublic description of the Term that is displayed on customer facing contracts.
friendly_namestringFriendly name is a short string assigned to the Term
is_modifiablebooleanIndicates if term conditions are modifiable or must be accepted as defined
is_reservedbooleanIndicates if the term is one of the reserved RevOps legal terms
is_standardbooleanIndicates if the term is standard for the customer organization and eligible for auto-approvals
typestring (ENUM)Identifies the type of legal term. See term.type for possible values
valuestringValue of the the accepted term. Possible values are determined by term.type
value_optionslistList of valid value options for this legal term. See term.valueOption
variableslistList 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 TypeCategoryDescription
accountIdbillingA 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.
billingStartDatebillingA Term with this type defines the start date of the first Invoice. This will be a string ISO8601).
contractActivationDatebillingA Term with this type defines the starting date of the Deal as a string (ISO8601).
contractTermLengthbillingA Term with this type defines the length of the contract in months.
daysUntilDuebillingA Term with this type specifies the number of days until the Invoice is due.
latePaymentPercentageFeebillingA Term with this type defines the penalty for late payment as a floating point number.
purchaseOrderNumberbillingA Term with this type defines the purchase order number.

User defined Terms types

Term TypeDescription
booleanA Term containing arbitrary text.
dateA Term containing a date field. This will be a string (ISO8601).
dropdownA Term containing a predefined set of valueOptions.
contract-periodA Term containing the contract period as two ISO8601 datetime stings.
moneyA Term containing a monetary unit amount.
numberA Term containing a number value.
textA Term containing arbitrary text defined by the Term Language.

term.value_options

value_options are pre-defined values that customers can choose from.

NameTypeDescription
friendly_namestringFriendly name is a short string assigned the value option
valuestringValue assigned to the term when selected by a customer

term.variables

Term variables can be attached to a term to provide added flexibility.

NameTypeDescription
default_valuestringDefault value to assign to the variable when a new deal is created
friendly_namestringFriendly name is a short string assigned the value option
valuestringValue assigned to the term when selected by a customer
variable_namestringA singular or plural noun describing the term variable.