How to Set Up and Use Webhooks
Configure a webhook endpoint, understand the events and payloads PraisePal sends, and handle delivery retries.
Who can use this feature
Available on the Starter plan and above.
Requires the Super Admin admin permission.
PraisePal can push real-time event notifications to an HTTPS endpoint you control. Each delivery is a JSON POST with enough context for your system to log, alert, or trigger a downstream workflow.
What this is used for
Feed recognitions into reporting tools like Google Sheets or Airtable
Forward activity to messaging platforms that accept incoming webhooks (for example, Lark)
Trigger automations in no-code tools like Zapier or Make
Maintain an independent audit trail of recognition activity
You can point the webhook at an endpoint your engineering team builds, or at a no-code service that accepts HTTPS webhooks.
Setting up a webhook
Go to Settings β Integrations.
Find the Webhook card.
Paste your HTTPS endpoint URL into the Integration Endpoint field.
Click Save.
PraisePal supports one webhook URL per workspace. Saving a new URL replaces the previous one. There is no verification request on save β the first real event triggers the first delivery.
There is currently no way to disconnect a webhook through the UI. To stop deliveries, replace the URL with a non-operational endpoint or contact Support.
Events and payloads
Two events fire automatically β there is no way to subscribe selectively.
Comments on celebration posts (birthdays, work anniversaries) do not trigger webhooks. Self-comments are also skipped.
Headers
Every delivery includes:
Payload fields
All values are strings. The shape is identical for both events.
Example: recognition
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"giver_name": "Jonathan Vuk",
"recipients": "Zelia Leong, Felix Tan",
"type": "Recognition",
"points": "50",
"total_points": "100",
"message": "Great work on the product launch!",
"privacy": "Public",
"company_value": "deliver-results",
"parent_recognition_id": "",
"link": "https://app.praisepal.com/ws/programs/recognitions?recognition_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "Apr 20, 2026 2:30 pm"
}Example: comment
{
"id": "f9e8d7c6-b5a4-3210-fedc-ba9876543210",
"giver_name": "Zelia Leong",
"recipients": "Jonathan Vuk",
"type": "Comment",
"points": "0",
"total_points": "0",
"message": "Well deserved!",
"privacy": "Public",
"company_value": "",
"parent_recognition_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"link": "https://app.praisepal.com/ws/programs/recognitions?recognition_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "Apr 20, 2026 2:45 pm"
}Private recognitions are included. Webhooks fire for both public and private recognitions. The privacy field tells you which kind it is, but the link opens the recognition for anyone who has it. Handle private links carefully and restrict access on your side.
Delivery and retries
Your endpoint must respond with a 2xx status within 10 seconds. Any other response or a timeout counts as a failure.
Failed deliveries retry up to 3 attempts with exponential backoff β roughly 1 second, then 4 seconds, then 16 seconds between attempts. After the final attempt the delivery is marked as failed with no further retries.
There are no delivery logs in the PraisePal UI. Monitor success and failure on your side, using the X-PraisePal-Delivery header as a correlation ID.
Your endpoint may receive the same event more than once. Use the delivery ID or the payload id to deduplicate.