RevOps 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 feature flags, pending deals, signed documents, and legal terms with only a few lines of code.

Use Cases

  1. Activating accounts
  2. Activating features in your application platform
  3. 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.

Check out our how-to on deal webhooks to get started with your next project.

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 when using https://github.com/revops-io/revops.js

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.

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": "", //
    "feature_flags": [
      {}, // See Feature Flag Data Model
    ],
    "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