Using Webhooks for Push Notifications
We on the Fulcrum team work hard to make collecting your data a breeze. And we’re always thinking of ways to make Fulcrum more valuable and powerful for you, our customers. To that end, we are pleased to announce the release of webhooks for Fulcrum.
Webhooks enable push notifications for your data. When your data changes in Fulcrum, we push those changes to your servers in real-time. Next, we’ll describe more of what webhooks are and how you can use them.
What’s the motivation for using webhooks? Once we have some perspective on peoples’ needs, we can understand their usefulness.
Each organization uses the data they collect in unique ways. Most share the common trait that, once they’ve collected their data, they want to do something with it. Maybe that means analyzing or processing the data. Maybe it means alerting someone the data has changed. Or maybe it means something completely different for your team. But organizations would still like to take action as soon as their data changes. Webhooks allow you to build software for these kind of workflows.
It has been possible to use Fulcrum’s API to take action when your data changed. But this required periodically checking to see what, if any, data was created or modified. This technique is called polling, and has several disadvantages:
- Your team must write and maintain the code to perform polling.
- To achieve near real-time updates, polling must be frequent.
- The more frequent the polling, the more resources your team must dedicate to polling.
- Unless your data changes constantly, most polls will not return fresh data.
These disadvantages encouraged us to find another way to enable users to respond to their data changing.
Webhooks are a way to push notifications to your own servers, in real-time, as your data is created and modified, without the disadvantages of polling.
- We’ve written and maintain the code that pushes notifications to your servers as data changes. You write the code you care about - code to handle your data.
- We send your servers the data, in real-time, as it comes into our system.
- We only send the data when something changes.
- Your resources are used just for receiving and processing the data.
We’ll now explore more of what webhooks are about.
Hooking is a concept that’s been around in software for a while. One use of a hook is to extend the functionality of existing software. Webhooks are a way to extend the functionality of Fulcrum while using standard web technology.
The concept is straight-forward. When your data changes, we push a notification to your server to alert you. This allows you to write software to do something with that data.
More completely, changes to the data in your organization create events. Events contain information about that changed data. You register the URL of a server at which you’d like to be notified of these events. The events are then pushed to the webhook’s URL in an HTTP POST request. Your server receives and can then process the event and data.
The real power comes from the ways you can extend Fulcrum’s functionality with this simple mechanism. The push notifications your server receives can be used to kick off analysis or processing using your own software, tools, or services. You can write software to send email or text messages to interested parties, enable workflows such as quality assurance, or gather statistics about your data. We’re confident you’ll find many more use cases.
You can set up multiple webhooks for an organization. Each event will be sent to each webhook. For instance, an event sent to one webhook might start processing, while that same event sent to another webhook might send an email to a manager.
You can read more about webhooks and also follow our comprehensive guides to get started.
We are already developing improvements, extensions, and additional points of integration. These will make webhooks even more powerful and useful for you. We’ll let you know as we roll out additional features. We think you’ll like what we have in store.
We’d love to hear your feedback on our webhooks. Are they easy to configure? Easy to use? What have we done well? What can we improve? What kinds of integration can you think of building?