Add a Webhook Integration to Punchlist
Good news! Punchlist now has webhook integration capabilities so you can connect your favorite applications and make feedback management even easier. With Punchlist webhooks, you can:
- Set up your own custom integrations and workflows with ease
- Boost your team's productivity by integrating Punchlist into your workflow
- Get notified on other platforms automatically when changes are made in Punchlist
What Are Webhooks?
Webhooks are automated messages sent from one app to another when a specific event occurs. They’re a way for your apps to talk to each other and share information automatically.
For instance, when something happens in Punchlist—like a new project being created or an item’s status changing—a webhook can automatically notify another application you use, triggering an action or updating information.
How Do Webhooks Work?
Webhooks work by connecting two systems. When an event occurs in the first system, a payload is sent via an HTTP POST to the other application’s webhook endpoint. This request contains a payload holding important information about the event that triggered the request such as project details, user information, and item metadata.
The tool at the other end of the event processes the incoming data. This could be another project management tool, a CRM, an analytics platform, or any other application that supports webhooks. Here are the actions you can take in Punchlist that trigger a webhook:
- Project created
- Project updated
- Project archived
- Feedback item created
- Feedback item updated
- Feedback item deleted
How Do You Use a Webhook?
You use a webhook by connecting Punchlist to a webhook endpoint. An endpoint is a specific, public URL that belongs to the receiving system.
Once they’re connected, you’ll receive payloads in the endpoint system whenever an event is triggered in the requesting system.
How to Create a Webhook
- Go to your Punchlist workspace settings > Developers > Add a Webhook
- Enter the URL of the endpoint
- Click Add
- The webhook will populate under the section Manage Webhooks
Now any time an event is triggered in Punchlist, the webhook endpoint will receive the appropriate payload.
Note: Each user will only have access to two active webhooks at a time.
Request and Payload
Whenever an action triggers the webhook, a POST request with a JSON payload will be sent by Punchlist to the endpoint you added. Here are the triggerable actions and examples of the payload:
Project Created
Project Updated
Project Archived
Feedback Item Created
Feedback Item Updated
Feedback Item Deleted
Test if Your Webhook Integration Works
To ensure the functionality of your webhook, here’s what you can do
- Go to an existing or new project
- Complete one of the specified items in the How Do Webhooks Work? or Requests and Payload section of this article
- You should immediately start seeing the payloads hit your webhook
- If it fails more than three times, the status of your webhook will change to Failed and no more attempts will be made
If you need help setting up your webhook integration, hit us up at support@punchlist.com or contact us here.
Verifying Authenticity of Webhook Calls
Webhooks provide an additional security measure to verify that the webhook is genuine and has come from Punchlist. This can be useful if you're looking to ensure only Punchlist webhook calls are being made to your endpoint, the information is genuine, and it hasn't been tampered with. These signatures will also help prevent replay attacks. Verifying the signing secret is optional.
Webhook requests will contain two headers that can be used to verify the request's authenticity:
x-punchlist-signature - The main signature
x-punchlist-request-id - A unique ID for the given request
Avoiding Repeated Calls or Replay Attacks
The x-punchlist-request-id is a unique identifier for the request. If the request should fail, it'll be retried up to three times using the same ID. In no other circumstance will two calls have the same ID.
Verifying the Signature
The signature is generated using the HMAC and SHA256. In order to verify it, you must create a hash using your webhook secret and the payload's body, then compare it to the signature provided in the header x-punchlist-signature.
Represented simply: HMACSHA256(BODY)
Obtaining the Webhook Secret
The webhook secret can be retrieved from the Webhooks configuration in the Developer Settings.
Get Started With Punchlist’s Webhook Integration
Head over to your Punchlist dashboard to create your first webhook and start building your own custom integrations.