Push PQ Intel buying signals to any custom HTTP endpoint in real time. Build your own automation, pipe signals into your data warehouse, or trigger custom workflows — all with a simple webhook payload.
PQ Intel’s Webhook integration turns your custom HTTP endpoint into a real-time receiver of high-intent buying signals. Every time our engine detects a signal matching your Ideal Customer Profile — a relevant post, comment, job change, or funding event — we send a structured JSON payload directly to your endpoint. No polling, no batching, no delays.
This is the most flexible integration in the PQ ecosystem. While our native Slack, Stripe, and LinkedIn connectors handle common use cases out of the box, the Webhook API gives you full control over how signal data flows into your infrastructure. Pipe signals into your data warehouse for long-term analytics, forward them to your CRM for real-time enrichment, trigger custom notification workflows, or feed them into an ML pipeline for lead scoring model training.
The webhook system supports multiple concurrent endpoint configurations, meaning you can route different signal types and ICP profiles to different destinations. Each payload is signed with HMAC-SHA256 so you can cryptographically verify that the data came from PQ Intel and was not modified in transit.
Each webhook POST includes the prospect's name and company, the platform where the signal was detected (LinkedIn, Reddit, Hacker News, etc.), the raw signal excerpt, PQ's ICP match score (0–100), a warm/hot/cold classification, a timestamp, a deep-link URL to the full prospect profile in PQ Intel, metadata about the matched ICP profile, and a unique signal ID for deduplication. Payloads are signed with HMAC-SHA256 for verification.
In PQ Intel, go to Settings > Integrations > Webhooks. Click Generate New Secret — PQ Intel creates a cryptographically random HMAC-SHA256 signing key. Copy this secret; you'll use it to verify incoming payload signatures on your server.
Set up an HTTP endpoint on your server that accepts POST requests at a path of your choice (e.g. https://yourdomain.com/pq-webhooks). Your endpoint should parse the JSON body, verify the HMAC-SHA256 signature in the X-PQ-Signature header, and return a 200 OK on successful receipt.
crypto.createHmac('sha256', secret).update(JSON.stringify(body)).digest('hex')Back in PQ Intel's Webhook settings, enter your endpoint URL in the Target URL field. Optionally, set a custom label (e.g. "Data warehouse pipeline"). Then select which signal types and ICP profiles should trigger this webhook — you can create multiple webhooks for different routing rules.
Click Send Test — PQ Intel dispatches a sample payload to your endpoint with a known test signature. Verify receipt on your server, check the signature validation, and confirm a 200 response. PQ Intel shows a green checkmark when the test succeeds.
In the webhook settings, expand the Payload Format panel to customize the JSON structure sent to your endpoint. You can include or exclude specific fields (signal excerpt, ICP score, platform metadata, etc.), flatten nested objects for easier parsing, or add custom key-value pairs that your downstream system expects. PQ Intel validates your custom template against the known schema before saving.
signal_id, prospect, company, platform, excerpt, icp_score, classification, signal_type, timestamp, profile_url, icp_profile_nameConfigure how PQ Intel handles delivery failures. In the webhook settings, set the Max Retries (1–10) and Retry Interval (30–600 seconds). PQ Intel uses exponential backoff by default. You can also enable a Dead Letter Queue (DLQ) option — when enabled, undeliverable payloads after exhausting retries are stored for up to 7 days and can be replayed manually from the dashboard.
Every webhook delivery is a JSON payload with the following structure. All fields are present on every delivery unless noted otherwise.
{
"signal_id": "sig_a1b2c3d4e5f6",
"signal_type": "intent_post",
"classification": "hot",
"icp_score": 87,
"timestamp": "2026-05-18T14:30:00.000Z",
"prospect": {
"name": "Alex Morgan",
"title": "VP of Engineering",
"email": "[email protected]",
"linkedin_url": "https://linkedin.com/in/alexmorgan"
},
"company": {
"name": "Acme Corp",
"domain": "acme.com",
"industry": "Enterprise SaaS",
"headcount": "201-500",
"location": "San Francisco, CA"
},
"platform": {
"name": "linkedin",
"post_url": "https://linkedin.com/posts/123",
"posted_at": "2026-05-18T13:00:00.000Z"
},
"excerpt": "We are actively evaluating new data pipeline solutions for our growing engineering team.",
"icp_profile_name": "Enterprise Tech Buyers",
"profile_url": "https://app.productquant.dev/prospects/a1b2c3",
"signature": "e4d909c290d0fb1ca068ffaddf22cbd0a1c2b3d4e5f6a7b8c9d0e1f2a3b4c5d6"
}
| Field | Type | Description |
|---|---|---|
signal_id |
string | Unique identifier for deduplication |
signal_type |
string | intent_post, job_change, funding_event, review, or qa_forum |
classification |
string | hot, warm, or cold signal strength |
icp_score |
integer | ICP match score from 0 to 100 |
timestamp |
ISO 8601 | When PQ Intel detected the signal |
prospect |
object | Name, title, email, and LinkedIn profile URL |
company |
object | Company name, domain, industry, headcount, location |
platform |
object | Source platform name, post URL, and posting time |
excerpt |
string | Raw signal excerpt text (max 500 chars) |
icp_profile_name |
string | Name of the matched ICP profile that triggered this signal |
profile_url |
string | Deep link to the prospect profile in PQ Intel |
signature |
string | HMAC-SHA256 hex digest for payload verification |
Pipe every PQ Intel signal into your Snowflake, BigQuery, or Postgres warehouse via webhook. Store raw signal data alongside your CRM and product analytics for cross-functional analysis, lead scoring model training, and custom reporting.
Route hot signals to your own notification infrastructure — mobile push via Firebase, SMS via Twilio, or internal Slack via your own bot. The webhook delivers the full signal context so your notification system can format it however you like.
Forward PQ signals directly to your CRM's API via webhook middleware. Automatically create or update contact records with the latest signal data, ICP scores, and platform attribution — no separate Zapier or n8n flow needed.
Every webhook payload includes an X-PQ-Signature header containing an HMAC-SHA256 hash of the request body, signed with your unique webhook secret. Verify this signature on your server to ensure the payload genuinely came from PQ Intel and was not tampered with in transit.
If your endpoint returns a non-2xx response, PQ Intel retries delivery up to 3 times with exponential backoff (1s, 5s, 30s). After persistent failures, the webhook is automatically paused and you receive an email notification.
All webhook payloads are sent over TLS 1.3 to your endpoint. PQ Intel never stores the payload data after delivery — it is constructed, sent, and discarded from active memory.
On the Pro+ plan, PQ Intel provides a static list of source IP ranges used for outgoing webhooks. You can restrict your endpoint to accept traffic only from these ranges, adding a second layer of security beyond signature verification.
Symptom: PQ Intel shows red delivery failure indicators and you stop receiving payloads.
Check: Verify that your endpoint is reachable from the public internet. PQ Intel's webhook service does not route through VPNs or private networks. Use curl -I https://yourdomain.com/pq-webhooks from a machine outside your network to confirm the endpoint responds. Also ensure no firewall or security group is blocking outbound traffic from PQ Intel's published IP ranges.
Symptom: PQ Intel reports a timeout or connection refused error after sending a payload.
Check: Your endpoint must return a 2xx HTTP status code (typically 200 OK) within 30 seconds. Any other status code (including 3xx redirects) is treated as a failure. If your endpoint performs heavy processing (database writes, external API calls), offload that work to a background queue and return 200 immediately. PQ Intel does not follow redirects.
Symptom: Your endpoint receives malformed or truncated payloads, or PQ Intel reports a size limit rejection.
Check: PQ Intel's webhook payload size limit is 256 KB. If signal excerpts or company enrichment data push the payload over this limit, the payload is rejected before delivery. To reduce payload size, use the Payload Format customizer (Step 5) to omit fields you do not need. If you require the full data, consider using PQ Intel's REST API to fetch the complete prospect profile separately using the profile_url field.
Symptom: Your server rejects the webhook because the X-PQ-Signature header does not match the computed HMAC.
Check: Ensure you are using the exact raw request body (not pretty-printed or re-serialized JSON) when computing the HMAC-SHA256 digest. PQ Intel signs the body before any whitespace normalization. Also confirm you are using the correct webhook secret — if you regenerated the secret in PQ Intel, update your server code accordingly. The signature is sent as a lowercase hex string in the X-PQ-Signature header.
On the Pro plan you can create up to 10 webhook endpoints. On the Enterprise plan this is unlimited. Each webhook can be independently configured with different signal filters, ICP profiles, and payload formats.
Yes. If the Dead Letter Queue (DLQ) feature is enabled, undelivered payloads are stored for up to 7 days after all retries are exhausted. You can browse and replay individual payloads from the Webhook Logs section in PQ Intel settings.
PQ Intel retries delivery up to the configured max retries (default 3, max 10) with exponential backoff. If all retries fail and DLQ is disabled, the payload is discarded. If DLQ is enabled, it is stored for 7 days. After 20 consecutive failures across all webhook deliveries, PQ Intel pauses the webhook and sends an email notification to the account owner.
Webhook deliveries are at-least-once and may arrive out of order. Each payload includes a signal_id field you can use for idempotent processing and deduplication on your side. If strict ordering is required, use the timestamp field to sequence events.
PQ Intel's webhook service runs in the cloud and can only reach publicly accessible endpoints. For private endpoints, we recommend setting up a lightweight relay service in your private network (e.g., a small EC2 instance or a Cloudflare Tunnel) that exposes a public URL and forwards payloads to your internal service.
PQ Intel does not enforce a hard rate limit on outbound webhook deliveries, but we throttle to a maximum of 60 requests per minute per webhook endpoint to prevent overwhelming your server. If you need a higher throughput, contact support about Enterprise plan options with custom rate limits.
Start with a 14-day free trial on the Pro plan. No credit card required for setup. All Pro features including webhooks, HMAC signing, and custom payload formats are available from day one.
View pricing plans →Already have an account? Sign in to configure your first webhook.