Source code can be found in GitHub.
The application requires .NET 4.8 and must be accessible via IIS.
The installation must include the following files:
| Location | File | Purpose |
|---|---|---|
| \Web\ | Web.config | Allows app configuration |
| \Web\ | PendoWebhookHandler.ashx | Receives Pendo webhooks |
| \Web\bin\ | PendoWebhookHandler.dll | Logic to store and email webhooks |
| \Web\bin\ | Newtonsoft.Json.dll | Require to read JSON |
| \Data\ | Web.config | Stores Pendo secret key |
| \Data\ | Log.txt | App logging |
| \Data\Responses\ | N/A | Folder to store webhook payloads |
Recommended installation directory: "E:\Apps\PendoWebhookHandler\".
We also suggest setting up a web monitoring service, such as StatusCake, to ensure the handler remains available at all times.

Ensure the IIS physical path points to the /Web/ folder, as shown in the screenshots below.


https://testpendowebhookhandler.rightmarket.com/PendoWebhookHandler.ashx
https://pendowebhookhandler.rightmarket.com/PendoWebhookHandler.ashx
A Pendo webhook must be setup in order for this functionality to work:


The application can be configured by modifying the \Web\Web.config file.
| Configuration | Description | Default/Example Value |
|---|---|---|
| EmailRecipients | Comma-separated list of email addresses to which notification emails are sent when a relevant Pendo event occurs (like pollSubmitted or npsSubmitted). If left empty, no email notifications will be sent. |
"" (Empty by default, optional) |
| SmtpServer | IP address or hostname of the SMTP server used to send email notifications. Update this to match the email server configuration for your environment. | “127.0.0.1” |
| SmtpSender | Email address from which the notification emails will appear to be sent. Useful for setting the “From” address in email notifications. | “noreply@testo1.roi360.co.uk” |
| DebugMode | Enables detailed debug logging if set to true, allowing the handler to log additional information about each request and its process flow. When set to false, only essential information and errors are logged. Useful for troubleshooting in development or production environments. |
“false” |
| EnableSignatureValidation | Determines whether webhook requests will undergo signature validation, using HMAC-SHA256 to verify authenticity of the request from Pendo. Set to false for testing (e.g., with tools like Postman). For security in production, set this to true to ensure request integrity. When testing in Postman, we recommend setting EnableSignatureValidation to false. |
“true” |
| DataPath | Specifies the directory path where the handler stores its data files. Used to store logs, webhook payload files, and custom configuration files. This directory must exist and be writable by the application for logs and data persistence. | “E:\Apps\PendoWebhookHandler\Data” |
Additionally, there is a configurable option located in "E:\Apps\PendoWebhookHandler\Data\Web.config". This file is stored in a secure, non-web-accessible location to enhance security.
| Configuration | Description | Default/Example Value |
|---|---|---|
| secretKey | A secret key used for validating webhook requests. This key is combined with incoming data to create a hash (HMAC-SHA256) for signature validation. Set to a secure, random value and do not expose it in publicly accessible configurations. | “example” |