Webhooks
Priority now supports webhooks!
Priority administrators can now fire webhooks from standard business process management (BPM) rules and business rules. Use them to trigger functions in other apps based on events in Priority.
Working with Webhooks requires the Webhooks module.
Set Up a Webhook Handler/Catcher
Before you can set up the webhook in Priority, you’ll need to set up your hook handler or catcher in your target app. The hook catcher will be set to a specific URL.
For example, in Zapier, you’d add a Zap of type Catch Hook. This will include the Hook Catcher URL:
Setting Up Webhooks in Priority
Before you can begin working with webhooks, you’ll have to define Webhook Endpoints. This can be done in System Management > System Maintenance > Periodic Maintenance > BPM Maintenance > Webhook Definitions.
For each webhook, give it a name, and the URL of the hook catcher. You can also create an authentication token to secure the webhook. Note that the authentication token is obscured as soon as you leave the line, so you should copy it immediately after generating it, and configure it in your app’s webhook endpoint.
Adding a Webhook to a Business Rule
Working with webhooks is identical to creating other business rules in Priority. In this example, we’ll use the Customer Shipments form, adding a rule that fires a webhook to our app when the delivery is on its way to the customer.
- Open the BPM chart in Priority via Inventory > Inventory Transactions > Sales Inventory Transactions > Statuses for Sales Inv Transacts > BPM Flow Chart-Shipping Docs.
- Add a new rule for the status used for en route goods.
- Under Do the Following:, select Webhook.
- Choose the webhook to fire from the adjacent choose list. This list is populated based on the webhooks defined in the Webhook Definitions form.
- Optional: In the message body, you can specify fields to include in the webhook payload. These will be delivered in a JSON key:value format. For example:
{ "DOCUMENTS_P": { "PDOCNO": "SH2000000880", "CDES": "David Smith", "CURDATE": "2020-07-28T00:00:00" }, "DOCTODOLIST": { "OWNERLOGIN": "SteveD" } }
- As in other business rules in Priority, you can also set conditions. In this case the webhook only fires for VIP customers.
Full Webhook Payload
Other than the fields included in the message, the Webhook payload will always include the following data in the call headers:
Header name | Example | Description |
---|---|---|
priority-form-name | DOCUMENTS_P | The internal form name in Priority |
priority-bpm-subject | Your order is on its way | The subject of the rule message in Priority |
priority-bpm-id | 245988 | ID number of the rule in Priority |
priority-bpm-name | Shipment Webhook | The business rule description in Priority |
priority-bpm-token | D6D4545CE5AB4827BB51CA3C03005D1D | authentication token for this webhook as recorded in Webhook Definitions form |
As previously mentioned, the body will contain a json of field values added to the business rule message.
{
"DOCUMENTS_P": {
"PDOCNO": "SH2000000880",
"CDES": "David Smith",
"CURDATE": "2020-07-28T00:00:00"
},
"DOCTODOLIST": {
"OWNERLOGIN": "SteveD"
}
}