Webhooks
If you want to take advantage of creating automation around your business workflows, RevOps webhooks gives you the tools you need to keep your systems up-to-date.
You can easily connect custom properties, pending deals, signed documents, and legal terms with only a few lines of code.
Use Cases
- Activating accounts
- Activating features in your application platform
- Issuing SLAs to accounts
How does it work?
On every change that occurs to an Object in RevOps, a webhook request will be sent to the URL assigned in your RevOps account. This request will contain information about the event and the specific Object instance to which the event pertains.
Configuring HTTP methods
Webhooks currently supports the standard HTTP POST
and GET
methods. Choose your preferred option from webhook settings in RevOps
dashboard.
Types of Webhook Objects
Webhooks are supported by two objects, Deals
and Accounts
.
Objects | Description |
---|---|
Deals | Deal Webhooks help you automate post-signature operations such as connecting to billing. |
Account | Account Webhooks help you automate post-account creation operations |
Deal Webhooks
Webhook Event | Description | Attached Model |
---|---|---|
deal-created | When the deal is first created. This webhook event will only be occur once, when the deal is saved as a draft or first sent to Deal Desk. | Deal |
deal-updated | When any edits or status changes occurs on the deal. | Deal |
deal-signed | When all parties have completed signature on the deal. This webhook event will only be sent once. | Deal |
deal-active | When customer has been activated for billing from the deal. | Deal |
Account Webhooks
Webhook Event | Description |
---|---|
account-created | When an account is first created. Usually with a draft status. |
account-deleted | When an account has been deprovisioned. |
account-updated | When an account property has been updated. |
HTTP Response Format
All HTTP responses are sent with content-type of application/json
. Each request will contain
an Event object and corresponding object such as a deal
or account
.
Content-Type: application/json
{
"event": {
"id": "6b82cbd3-dd0b-497e-bb44-292025c90481",
"time": "1562205650",
"type": "deal-created",
},
"<object>": {}
}
Responding to webhooks
Your endpoint must return a 200 OK
HTTP status code and a response
body containing the following text: RevOps API Event Received.
Otherwise, the callback is considered a failure and retried.
Failures and Retries
If your callback url is not reachable or does not return an HTTP
Status Code of 200 OK
, RevOps will automatically retry the request.
Every failed attempt will be retried for 5 times with 1 hour between each attempt. All requests
timeout after 30 seconds and are considered failed attempts.
HTTP Security
RevOps requires that all webhooks terminate with an https://
URL.
See Deal Webhooks response format for more information on the deal response and other objects.
Example Webhook Body from HTTP POST Request
Content-Type: application/json
{
"deal": {
"id": "",
"contract_activates_date": "",
"customer": {}, // See Customer Data Model
"net_price_currency": "",
"net_price_precision": "",
"net_price": "",
"original_net_price_currency": "",
"original_net_price_precision": "",
"original_net_price": "",
"opportunity_id": "",
"original_net_price": "",
"signed_contract_url": "",
"status": "", //
"skus": [
{}, // See SKU Data Model
],
"terms": [
{}, // See Term Data Model
]
},
"event": {} // See Event Data Model
}
Testing webhooks
You can test your own webhook service in RevOps or by issuing a curl request or
similar. Make sure to test with Content-type: application/json
.
curl -v -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST \
-d '{"deal": { ... }, "event": "deal-created"}' \
https://yourcompany.tld/revops-webhook