wordpress/Webhooks

Webhooks

Webhooks allow you to receive real-time HTTP notifications when events occur in your Intufind system. Use them to integrate with external services, automate workflows, or build custom integrations.

Navigate to Intufind → Webhooks to configure.

Webhook Configuration

Global settings that apply to all webhook endpoints.

Webhook Configuration Screenshot: wp-webhooks-config.png

Enable Webhooks

Default: Off

Master toggle for webhook notifications. When enabled, configured endpoints will receive HTTP requests for selected events.

Global Secret

Default: Empty (optional)

A shared secret used to sign webhook payloads with HMAC-SHA256. Recipients can verify the signature to ensure requests are authentic.

Requirements:

  • Minimum 8 characters
  • Leave empty to disable signing

Verification: Include the X-Intufind-Signature header in your endpoint to verify authenticity.

Request Timeout

Default: 30 seconds Range: 5-300 seconds

Maximum time to wait for your endpoint to respond. If exceeded, the request is marked as failed.

Retry Attempts

Default: 3 attempts Range: 1-10 attempts

Number of times to retry failed webhook deliveries before giving up.

Retry Delay

Default: 5 seconds Range: 1-60 seconds

Delay between retry attempts.

Webhook Endpoints

Create and manage individual webhook endpoints that receive event notifications.

Webhook Endpoints Screenshot: wp-webhooks-endpoints.png

Adding an Endpoint

  1. Click Add Webhook Endpoint

  2. Fill in the configuration:

    • Endpoint Name: A descriptive name (e.g., "Zapier Integration")
    • Description: Optional notes about this endpoint
    • Webhook URL: The HTTPS URL that will receive POST requests
    • HTTP Method: POST (default), PUT, or PATCH
    • Secret: Optional endpoint-specific secret (overrides global secret)
    • Events: Select which events trigger this webhook
    • Status: Enable/disable the endpoint
  3. Click Save Endpoint

Testing an Endpoint

Before relying on a webhook, test it:

  1. Find the endpoint in your list
  2. Click Test
  3. A test payload is sent to your endpoint
  4. Results show response code, time, and any errors

Endpoint Status

StatusDescription
ActiveReceiving events normally
InactiveManually disabled
SuspendedAuto-suspended after repeated failures

Suspended webhooks can be reactivated after fixing the underlying issue.

Delivery Statistics

Each endpoint shows:

  • Total deliveries — All-time delivery attempts
  • Success rate — Percentage of successful deliveries
  • Last delivery — When the last event was sent

Available Events

Select which events trigger webhook notifications:

Product Events

EventDescription
product.createdNew product created
product.updatedProduct updated
product.deletedProduct deleted
product.bulk_deletedMultiple products deleted

Post Events

EventDescription
post.createdNew post/page created
post.updatedPost/page updated
post.deletedPost/page deleted
post.bulk_deletedMultiple posts deleted

Chat Events

EventDescription
chat.message.sentAI assistant sent a message
chat.message.receivedUser sent a message
chat.conversation.startedNew conversation began

Prompt Events

EventDescription
prompt.createdSuggested prompt created
prompt.updatedPrompt updated
prompt.deletedPrompt deleted
prompt.bulk_deletedMultiple prompts deleted

Taxonomy Events

EventDescription
taxonomy.createdTaxonomy term created
taxonomy.updatedTaxonomy term updated
taxonomy.deletedTaxonomy term deleted
taxonomy.bulk_deletedMultiple terms deleted

Feedback Events

EventDescription
feedback.submittedUser submitted feedback
feedback.deletedFeedback deleted
feedback.bulk_deletedMultiple feedback deleted

Recommendation Events

EventDescription
recommendation.generatedAI recommendations generated
recommendation.requestedRecommendations requested

Search Events

EventDescription
search.performedSearch query executed
search.failedSearch failed

Payload Format

Webhook payloads are JSON with this structure:

{
  "event": "product.updated",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "id": "prod_123",
    "title": "Example Product",
    "...": "event-specific data"
  }
}

Headers

HeaderDescription
Content-Typeapplication/json
X-Intufind-EventEvent type (e.g., product.updated)
X-Intufind-SignatureHMAC-SHA256 signature (if secret configured)
X-Intufind-DeliveryUnique delivery ID

Verifying Signatures

If you configured a secret, verify incoming requests:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_INTUFIND_SIGNATURE'];
$expected = hash_hmac('sha256', $payload, $your_secret);

if (hash_equals($expected, $signature)) {
    // Valid request
} else {
    // Invalid - reject the request
}

Troubleshooting

Webhook not firing

  1. Verify Enable Webhooks is on
  2. Check the endpoint is Active
  3. Ensure the event type is selected
  4. Test the endpoint manually

Delivery failures

  1. Check your endpoint URL is correct and accessible
  2. Verify SSL certificate is valid (HTTPS required)
  3. Ensure your server responds within the timeout
  4. Check firewall allows incoming requests from Intufind

Endpoint suspended

Endpoints are auto-suspended after repeated failures:

  1. Fix the underlying issue (URL, SSL, server errors)
  2. Click Reactivate on the endpoint
  3. Test to confirm it's working

Next Steps