PulseSignal speaks Standard Webhooks v1, the same shape Stripe, Shopify, and Polar use. n8n's built-in Webhook node accepts that shape natively, so any of the 400+ nodes n8n ships with can act on PulseSignal events. Works identically on n8n.cloud and self-hosted n8n.
POST, give it a unique path (e.g. pulsesignal), and leave Authentication as None (you will verify signatures in a follow-up node, see below). n8n will mint a URL of the form https://<your-host>/webhook/pulsesignal (or /webhook-test/pulsesignal while the workflow is in Test mode). Copy the production URL.webhook.test payload immediately so n8n's test panel has a real sample to work with.{{ $json.event_type }}, {{ $json.data.company_name }}, {{ $json.data.headline }}, {{ $json.data.source_url }}.n8n exposes the raw request body and headers on the Webhook node, so signature verification is a one-node addition. Drop a Code node (JavaScript) after the Webhook trigger and paste:
const crypto = require('crypto')
const secret = $env.PULSESIGNAL_WEBHOOK_SECRET
const timestamp = $input.first().json.headers['x-pulsesignal-timestamp']
const sig = $input.first().json.headers['x-pulsesignal-signature']
const body = JSON.stringify($input.first().json.body)
const expected = 'v1=' + crypto
.createHmac('sha256', secret)
.update(`${timestamp}.`)
.update(body)
.digest('hex')
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig))) {
throw new Error('PulseSignal signature mismatch')
}
return $input.first()
Store the signing secret in n8n's environment variables panel as PULSESIGNAL_WEBHOOK_SECRET. The full signing scheme (header names, replay-protection window, retry schedule) is documented at /help/webhooks.
WEBHOOK_URL in your n8n environment so the URLs the editor shows you match the public-facing host. Otherwise the URL you paste into PulseSignal will be the internal docker hostname and deliveries will fail./webhook/ path; test-mode webhooks fire on /webhook-test/. PulseSignal's webhook history will surface 404s immediately if you paste the wrong one.A native PulseSignal node on the n8n community registry (with typed trigger event types, credentials helper, and named output fields) is on the roadmap. Until that ships, the generic Webhook-node path above gives you the same delivery guarantees and the same payload shape. If you have a workflow template you'd like us to prioritise, write to hello@pulsesignal.co.