Integrating ProWorkflow Made Simple
Using HTTP Requests and Webhooks to Connect to Other Tools
Introduction
There are lots of integration services out there, from Zapier to Make, n8n to Relay, and it feels like every day there’s a new tool to help you integrate your app with whatever service you want.
At ProWorkflow we offer a first-party integration with Zapier in the form of our new ProWorkflow Nexus app, but what about integrations with other tools?
While we may not be able to provide ready-built integrations for every tool, they all work mostly the same behind the scenes, so with a little bit of technical knowledge and a guide to show you the basics (such as the one you’re reading now), you can feel confident integrating ProWorkflow using any tool you prefer.
Setup
You’ll need an account with whatever provider you choose, for this article we’ll go with Make but remember, the underlying principles are the same no matter what provider you go with!
An API key is also required; these are in the format “xxxx-xxxx-xxxx-xxxx-PWFxxxx” and can be found in your Client Area.
Webhooks
Webhooks are the key building blocks for integrations, they’re basically events that fire whenever you do something on ProWorkflow. Creating a project, updating an item, almost any event you can think of will have an associated webhook event.
In Make you can do this by creating a new scenario and selecting the webhook app, shown in red below:
Ensure you do not include any API key authentication when setting up the webhook, as this will make it not work. Make will now return a webhook URL that can be used to receive events.
You still need to instruct ProWorkflow to send events to that address, however. Navigate to the ProWorkflow REST API, enter your ProWorkflow API key (from Setup) in the sidebar, and send a POST request to the “Create Webhook” endpoint with this URL and the event you want to listen to.
Now you can easily test that the webhook is working by doing the event (in this case creating a project) and seeing if it comes through on Make:
Actions
After setting up the webhooks, you’ll probably want to do something with the data it returns. However, our webhooks only return the ID of the relevant object (a project ID, contact ID, etc.) so an additional action is needed to fetch the full information if required.
Note: If you only care about the ID of the project, you do not need to take these steps
To do this, create a new module in the scenario for an HTTP request.
Instruct it to perform an HTTP GET request to the relevant ProWorkflow API endpoint, in this case we want to fetch project data so the route will be /api/v4/projects/<id> where <id> is the ID of the project as returned by the webhook:
It’s important to note here that when setting up API key authentication for this request, the ProWorkflow API key needs to be provided in a header named “apiKey”; the default is normally “Authorization” so be sure to change it:
Doing a test run of the scenario should now trigger all the steps and give you a lot of data.
What you choose to do with this data now depends on your final goal, maybe you’re sending an email with the project title, adding a row to an excel spreadsheet, or sending a notification on Slack, the sky’s your limit.
More Actions
HTTP requests are very powerful. In the example above we used them to fetch some more contextual data around the project that was just created, but they can be used to do a lot more than just that. Beyond just fetching data, they can create projects, update items, etc. using the same pattern seen above.
To see all that you can do with them, check out the full ProWorkflow API specification, here you’ll find all the endpoints and expected inputs for basically any action you can do on ProWorkflow.
Conclusion
Simply by understanding how webhooks and HTTP requests work, it’s possible to effectively integrate ProWorkflow into any third-party tool, process, and automation flow you may have. Our comprehensive performant ProWorkflow API also ensures that this relationship is omnidirectional, as you can both react to ProWorkflow events (such as when a project is created) and trigger them yourself (such as creating a project).
