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.
The Motivation
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.
Before Webhooks
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.
With Webhooks
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.
About Webhooks
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.
Webhooks exist at the organization level. This means that any event created by any of your apps will get sent to each webhook. If you wish to have a webhook process only one app, you must check this when receiving the event data at your webhook endpoint.
Getting Started
Check out these additional pages if you’re interested in the details of how to begin using webhooks.
Getting Started With Webhooks - How to set up and begin using webhooks in Fulcrum.
Webhooks for Push Notifications - How to use push notifications to extend your data collection activities.
How To Enable Webhooks- Detailing which plans enable the webhooks functionality in Fulcrum.
Roles and Permissions - How to configure roles and permissions for use with webhooks.
Getting Started With Node.js - Learn how to create a webhook endpoint using Node.js to process webhook events.
Getting Started With Rails 4 - Learn how to create a webhook endpoint using Rails 4 to process webhook events.
Building A Custom Email Notification System - Building a simple email notification system with Google Apps Script.
Pushing Fulcrum Data to CARTO With Webhooks - Visualizing and publishing your data from Fulcrum to CARTO using webhooks.
Adding Weather Data to Records with Webhooks - The full guide on using the Forecast.io API to add relevant weather data to your Fulcrum records.
Syncing Fulcrum with MySQL - How to sync a Fulcrum app with a MySQL database using data shares, webhooks, and some PHP scripting.