Product-Documentation

Setting Up

Installation

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.

Test Site

https://testpendowebhookhandler.rightmarket.com/PendoWebhookHandler.ashx

Production Site

https://pendowebhookhandler.rightmarket.com/PendoWebhookHandler.ashx

Pendo Installation

A Pendo webhook must be setup in order for this functionality to work:

Configuration

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”