Documentation

Everything you need to know about using our feedback widget and how to collect and manage user feedback.

Webhook Notifications

Send real-time feedback notifications to your own systems and third-party tools. Build custom workflows that integrate Feedbackview with Slack, Discord, Microsoft Teams, or any HTTP endpoint.

Pro Feature

Webhook notifications are available on Pro plans and above. Upgrade to unlock real-time integrations with your development and communication tools.

View Pricing →

How Webhooks Work

When new feedback matches your notification rules, Feedbackview sends an HTTP POST request to your specified webhook URL. This happens in real-time, typically within seconds of feedback submission.

Webhook Flow

  1. 1User submits feedback through your widget
  2. 2Feedbackview evaluates your notification rules
  3. 3If rules match, webhook payload is prepared
  4. 4POST request sent to your webhook URL (10s timeout)
  5. 5Your system receives and processes the feedback data

Webhook Payload

Every webhook request includes a structured JSON payload with complete feedback data and metadata. Here's what you'll receive:

{
  "event": "feedback.created",
  "project": {
    "id": "proj_abc123",
    "name": "My SaaS App"
  },
  "feedback": {
    "id": "fb_xyz789",
    "title": "Cannot save my profile changes",
    "description": "Clicking save button does nothing. Tried in Chrome and Firefox.",
    "type": "bug",
    "impact_score": 4,
    "name": "Sarah Chen",
    "email": "[email protected]",
    "created_at": "2024-01-15T14:30:00.000Z"
  },
  "timestamp": "2024-01-15T14:30:01.234Z"
}

Payload Fields

FieldTypeDescription
eventstringAlways "feedback.created" for new feedback
project.idstringYour project identifier
project.namestringHuman-readable project name
feedback.idstringUnique feedback identifier
feedback.typestringOne of: bug, feedback, question, feature
feedback.impact_scorenumberImpact level from 1 (minimal) to 5 (critical)
timestampstringISO 8601 timestamp when webhook was sent

Security & Authentication

Feedbackview webhooks include security features to verify the authenticity of requests and protect against unauthorized access.

HMAC Signature Verification

When you provide a webhook secret, Feedbackview signs each request with HMAC-SHA256. The signature is included in the X-Feedbackview-Signature header.

# Example signature header
X-Feedbackview-Signature: sha256=8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b

# Verify in Node.js
const crypto = require('crypto')

function verifySignature(payload, signature, secret) {
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex')
  
  const receivedSignature = signature.replace('sha256=', '')
  
  return crypto.timingSafeEqual(
    Buffer.from(expectedSignature, 'hex'),
    Buffer.from(receivedSignature, 'hex')
  )
}

// Usage
const isValid = verifySignature(
  JSON.stringify(req.body),
  req.headers['x-feedbackview-signature'],
  process.env.WEBHOOK_SECRET
)

Request Headers

All webhook requests include these headers:

  • Content-Type: application/json
  • User-Agent: Feedbackview-Webhook/1.0
  • X-Feedbackview-Signature: sha256=... (when secret provided)

Configuration

Set up webhooks from your project's notification settings. The same alert conditions that apply to email notifications also determine when webhooks are triggered.

  1. 1
    Navigate to Webhook Settings

    Go to Settings → Notifications → Webhooks tab

  2. 2
    Enable Webhooks

    Toggle on "Enable Webhook Notifications"

  3. 3
    Add Webhook URL

    Enter your endpoint URL (must be HTTPS in production)

  4. 4
    Set Webhook Secret (Optional)

    Add a secret key for HMAC signature verification

  5. 5
    Test Your Webhook

    Click "Test Webhook" to verify connectivity

  6. 6
    Configure Alert Rules

    Go to Advanced Settings to set feedback types, impact scores, and keywords

🔒 Security Tip: Always use HTTPS for production webhook URLs and implement signature verification to ensure requests are from Feedbackview.

Popular Integrations

Webhooks enable integration with virtually any tool. Here are some popular use cases and example implementations:

#Slack Notifications

Send feedback alerts directly to your Slack channels

Setup:

  1. 1. Create a Slack incoming webhook
  2. 2. Use middleware to format Feedbackview payload
  3. 3. Forward to Slack with custom styling

🎫Linear/Jira Integration

Automatically create tickets for bug reports

Features:

  • • Auto-create issues for bugs
  • • Set priority based on impact score
  • • Include user contact information
  • • Link back to Feedbackview dashboard

📧Custom Email Routing

Route feedback to specific team members

Use Cases:

  • • Route bugs to engineering team
  • • Send feature requests to product
  • • Critical issues to on-call engineer

📊Analytics Integration

Send feedback data to your analytics platform

Possibilities:

  • • Track feedback metrics in Datadog
  • • Create custom dashboards
  • • Set up alerting thresholds
  • • Correlate with product metrics

Webhook Testing

Feedbackview includes built-in testing tools to help you debug and validate your webhook integration.

Test Webhook Feature

Use the "Test Webhook" button in your settings to send a sample payload:

{
  "event": "webhook.test",
  "project_id": "proj_abc123",
  "project_name": "My SaaS App",
  "timestamp": "2024-01-15T14:30:00.000Z",
  "data": {
    "message": "This is a test webhook from feedbackview.io",
    "test": true
  }
}

Debugging Tips

  • Use tools like ngrok for local development testing
  • Webhook timeouts are 10 seconds - ensure your endpoint responds quickly
  • Return 2xx status codes to acknowledge successful receipt
  • Log webhook payloads during development to understand the data structure
  • Feedbackview does not retry failed webhooks - implement your own retry logic if needed

Error Handling

When webhook delivery fails, Feedbackview logs the error for your review. Common issues and solutions:

Webhook endpoint not responding?
  • • Check if your server is running and accessible from the internet
  • • Verify the webhook URL is correct and uses HTTPS
  • • Test connectivity with curl or similar tools
  • • Check firewall rules and load balancer configuration
  • • Ensure your endpoint returns a 2xx status code
Signature verification failing?
  • • Ensure you're using the exact same secret configured in Feedbackview
  • • Verify you're hashing the raw request body (not parsed JSON)
  • • Check that you're comparing signatures using timing-safe comparison
  • • Make sure to strip the "sha256=" prefix before comparison
  • • Test with the webhook test feature first
Webhooks timing out?
  • • Optimize your webhook handler to respond within 10 seconds
  • • Process webhook data asynchronously after responding
  • • Queue heavy operations for background processing
  • • Return early with 200 OK, then handle the payload

Best Practices

✅ Do This

  • Implement signature verification for security
  • Use HTTPS endpoints for production
  • Respond with 2xx status codes promptly
  • Log webhook events for debugging
  • Handle duplicate events gracefully
  • Process heavy operations asynchronously

❌ Avoid This

  • Don't perform expensive operations in webhook handler
  • Don't rely on webhooks for guaranteed delivery
  • Don't expose webhook URLs publicly
  • Don't skip signature verification
  • Don't ignore error handling
  • Don't hardcode sensitive data in webhook handlers

Related Topics