Integration

PQ + Webhooks — Real-Time Signal Push API

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.

Setup time: ~60 seconds Auth method: HMAC-SHA256 Secret Plan: Pro+

What this integration does

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.

What the webhook payload includes

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.

Set it up in 60 seconds

  1. 1

    Generate a webhook secret

    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.

  2. 2

    Create your endpoint URL

    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.

    Reference implementation: crypto.createHmac('sha256', secret).update(JSON.stringify(body)).digest('hex')
  3. 3

    Configure the webhook in PQ Intel

    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.

  4. 4

    Test delivery

    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.

    Tip: Use tools like webhook.site or ngrok during development to inspect raw payloads before wiring up production endpoints.
  5. 5

    Customize the payload format

    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.

    Available fields: signal_id, prospect, company, platform, excerpt, icp_score, classification, signal_type, timestamp, profile_url, icp_profile_name
  6. 6

    Implement retry logic for failed deliveries

    Configure 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.

    Best practice: Set your endpoint to respond within 5 seconds. PQ Intel considers any response ≥ 30 seconds a timeout.

Payload schema

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 reference

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

Common workflows

Data Pipeline

Ingest Signals into Your Data Warehouse

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.

Custom Alerts

Trigger Custom In-App Notifications

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.

CRM Sync

Real-Time CRM Enrichment

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.

Permissions & security

HMAC-SHA256 payload signing

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.

Configurable retry with backoff

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.

Data in transit

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.

IP allowlisting available

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.

Common issues & fixes

Webhook delivery failing

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.

Server not responding

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.

Payload too large

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.

Authentication fails

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.

Frequently asked questions

How many webhooks can I create?

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.

Can I replay missed webhook deliveries?

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.

What happens if my endpoint is down for an extended period?

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.

Does PQ Intel guarantee delivery ordering?

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.

Can I send webhooks to an internal (private) endpoint?

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.

Is there a rate limit on webhook deliveries?

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.

Ready to pipe PQ Intel signals anywhere?

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.

Related integrations