Webhooks
- Intended Audience
- What Are Rest Notification Hooks?
- When to Use Them
- How Does it Work?
- Example Using cURL
- Unsubscribing
- Events
- Other Information
Intended audience
This document is intended for developers who wish to receive event notifications from ProProfs Project to their own application. Some familiarity with REST concepts and the ProProfs Project API is assumed.
Zapier Integration
We offer integration with hundreds of apps through Zapier, including many CRM's and billing platforms. If you are not a developer, we suggest using this tool to help with your integrations.
What Are REST Notification Hooks?
REST Notification Hooks, or Webhooks, are a way for ProProfs Project to tell your application when some event has happened. It will also supply a resource to allow you to fetch the new data via the REST API.
This avoids your application contacting the ProProfs Project API every x minutes to see if anything has changed. i.e. removes the need to poll the ProProfs Project API.
A list of supported events can be found towards the end of this document.
When to Use Them
As an example, if your app needs to know when a new calendar event has been added in ProProfs Project then your app can send a subscribe request to the 'new_event' hook and when the user adds a new calendar event a REST notification will be sent to your app.
This avoids the overhead of your app repeatedly polling ProProfs Project thus reducing the load on your server as well as the ProProfs Project server.
How Does it Work?
Step 1
Your app sends a subscription request to ProProfs Project. This contains the event you are interested in and a unique url that ProProfs Project will send notifications to.
Step 2
When the event occurs (e.g. an event is added to the calendar) then ProProfs Project will send notification to the unique url given in step 1. The notification contains a ProProfs Project API url which references the new resource. e.g. https://api.projectbubble.com/v2/events/12345
Step 3
Your app can now fetch the new data using the url given in step 2.
And that's it!
Example Using cURL
This shows a subscription to the 'new_event' hook. This is triggered when a new event is added to the calendar. The key and domain are just placeholders so replace these with your credentials.
Step 1 - Subscribe
-H "key:27838413e610417bd866352767fe322ca97d94c8" \
-H "domain: mydomain.projectbubble.com"
-H Content-Type: application/json \
-d '{"target_url": "https://yourapp.com/<unique_target_url>", "event": "new_event"}'
Upon successful subscription ProProfs Project will return JSON with a unique subscription id as shown below. Your app should store this id as it's used for unsubscription.
"id": "897236485762347563485"
}
ProProfs Project Response Codes:
400 - Incorrect field data sent / invalid event
401 - Authentication issue
409 - Target url is not unique
Step 2 - Event occurs and ProProfs Project sends notification to your app
-H Content-Type: application/json \
-d {"resource_url": "https://api.projectbubble.com/v2/events/123456"}
Your app should return one of the below responses:
401 - Unsubscribe. ProProfs Project will immediately unsubscribe your app from this event.
Anything Else - ProProfs Project will assume failure so will wait and retry sending again. After 3 failures you will be unsubscribed from the event. See below for more details on unsubscribing
Step 3 - Your app fetches the new data from ProProfs Project API
-H "key:27838413e610417bd866352767fe322ca97d94c8" \
-H "domain: mydomain.projectbubble.com"
-H Content-Type: application/json
ProProfs Project responses:
401 - Authentication/Permission issue
404 - Resource not found
Unsubscribing
You can unsubscribe from an event by sending a DELETE request as shown below.
-H "key:27838413e610417bd866352767fe322ca97d94c8" \
-H "domain: mydomain.projectbubble.com"
ProProfs Project Responses
401 - Authentication/Permission issue
404 - Subscription not found
Events
Completed Task - completed_task
New Client - new_client
New Event - new_event
New Project - new_project
New Subtask - new_subtask
New Task - new_task
Other Information
- All data is exchanged using JSON
- Events are tied to the subscribed user API key. So, for example, only calendar events created by the subscribed user will trigger the event notifications.
- ProProfs Project does not include authentication when sending event notifications to your app. We recommend you use long and complex unique identifiers as the target urls that your app generates. As an extra precaution, you should check that the POSTed resource_url is actually a ProProfs Project url.