ProsperWorks Webhooks

What Are Webhooks?

 

Webhooks are real-time notifications that are sent to a specified URL that describe a certain record related activity. The webhook notifies the receiving URL with a JSON response.

Customers who integrate business systems want to be able to capture events that take place in ProsperWorks in real time. These events within ProsperWorks can trigger events in other integrated systems.

When a record is created, changed or deleted in ProsperWorks, you can trigger a process in another system,  real-time after the initial change. For example, when a Person’s record is updated in ProsperWorks, the record for the same Person in a billing system is simultaneously updated.

The event in ProsperWorks triggers the event in the connected system quickly, to minimize the chance of data inconsistency and to ensure that all  required steps will be performed  efficiently.

 

How to Use Webhooks

**We only support sending webhooks to HTTPS endpoints

Webhook concepts

Subscription

Register a URL that notifications will be sent to.

Notification

The object delivered by a webhook

Topic

The type of event that triggers a notification and the object it is related to

Subscription Types

Topics available for subscription

  • Create = a new record is created
  • Update = any field in the existing entity record is changed. Excludes: new entity relationships, new Activity or any change in meta data.
  • Delete = an existing record is removed

 

Subscribe to a notification

Request

Method: POST

Url: API

Event options: { “new”, “update”, “delete” }

Type options: { “lead”, “project”, “task”, “opportunity”, “company”, “person” }

Optionally, you can include the in the request a custom secret in a key:value pair format. This data can be used to authenticate the request on the receiving endpoint.

 

**target URL must be https. To test this you can use https://ngrok.com or http://requestb.in or Zapier:

 

Example request to get updates for people records

 

curl --request POST \
--header "Content-Type: application/json" \
--header "X-PW-AccessToken:YOURTOKEN" \
--header "X-PW-Application: developer_api" \
--header "X-PW-UserEmail:YOUREMAIL" \
https://api.prosperworks.com/developer_api/v1/webhooks \
--data '{"target":"https://yourTargetURL.com","type": "person","event": "update","secret":{"key":"value"}}'

 

Example response

{"id":12821,"target":"https://yourTargetURL.com","type":"person","event":"update","secret":{"key":"value"},"created_at":1481067722}

 

Unsubscribe from a notification

Request

Method: DELETE

Url: https://api.prosperworks.com/developer_api/v1/webhooks/<subscription_id>

 

curl --request DELETE \
--header "Content-Type: application/json" \
--header "X-PW-AccessToken:TOKEN" \
--header "X-PW-Application: developer_api" \
--header "X-PW-UserEmail:EMAIL" \
https://api.prosperworks.com/developer_api/v1/webhooks/SUBSCRIPTION-ID

 


Response

Receive Notification

Request

Our server sends the notifications as POST requests.

Url: <provided by user>

Notifications deliver the id's of the involved records as an array. An array may contain a single e.g. [17] or multiple ids e.g. [17,287,542] but it will always be an array format.

See the status of a specific notification

Request

Method: GET

Url: https://api.prosperworks.com/developer_api/v1/webhooks/<subscription_id>

Response

See the status of all active notifications

Request

Method: GET

Url: https://api.prosperworks.com/developer_api/v1/webhooks/

 

curl --request GET \
--header "Content-Type: application/json" \
--header "X-PW-AccessToken:TOKEN" \
--header "X-PW-Application: developer_api" \
--header "X-PW-UserEmail:EMAIL" \
https://api.prosperworks.com/developer_api/v1/webhooks 

 

Response

 

Rate limits

The number of notifications sent are bound by the following limits. When a rate limit is exhausted, our system will stop sending notifications until the rate limit renews.

  • 600 notifications per minute per account
  • 1,800 notifications per account for every 10 minutes

Retries

Our server currently sends the notifications once, regardless of the results of the request. Please make sure the endpoint you specify is available as needed to receive notifications.

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request

Comments

Article is closed for comments.