Skip to main content

Pipeline Webhooks

Webhooks enable real-time notifications when documents are processed in your Vectorize pipelines. This guide shows you how to create, configure, and manage webhooks to integrate your pipelines with external systems.

Overview​

Webhooks are HTTP callbacks that notify your applications when documents are successfully processed and vectorized in your pipeline. When a document completes processing, Vectorize sends a POST request to your configured endpoint with details about the document and its metadata.

Creating Your First Webhook​

Step 1: Navigate to Webhook Creation​

  1. Go to Pipelines in the main navigation
  2. Select your pipeline from the list
  3. Navigate to the Webhooks tab
  4. Click Create New Webhook

Step 2: Configure Basic Settings​

Enter the core webhook configuration:

  • Webhook Name: A descriptive name
  • Webhook URL: The HTTPS endpoint that will receive POST requests
  • Webhook Secret (optional): A shared secret for payload signature verification

Step 3: Generate a Secure Secret (Optional)​

For production webhooks, we recommend using a webhook secret:

  1. Click the Generate button next to the secret field
  2. Vectorize creates a cryptographically secure random secret
  3. Copy this secret - you'll need it to verify webhook payloads in your application
  4. The secret is stored encrypted in AWS Parameter Store
  5. Vectorize signs each webhook payload with HMAC-SHA256 and sends it in the X-Webhook-Signature header

Important: Store your webhook secret securely. It cannot be retrieved after creation, only replaced.

Step 4: Select Trigger Events​

Select the events that should trigger the webhook:

EventDescriptionPayload Includes
Document ProcessedDocument fully processed and vectorizedDocument ID, metadata, processing stats
Document Processing ErrorDocument processing failedError details, document ID

Step 5: Save and Activate​

  1. Click Create Webhook to save your configuration
  2. The webhook is created in active status by default
  3. It will begin receiving events immediately

Webhook Payload Format​

Document Processed Event​

When a document is successfully processed, your endpoint receives:

{
"event_type": "pipeline.document.processed",
"pipeline_id": "8a95afae-7509-427a-8073-4917a77afcc2",
"document_id": "doc-uuid",
"timestamp": "2025-09-17T13:46:34.244666+00:00",
"correlation_id": "cd9459a9-e498-4849-a1f2-cda17e9af5e2",
"status": "success",
"metadata": {
"source": "google_drive",
"file_name": "document.pdf"
}
}

Webhook Headers​

Every webhook request includes:

  • Content-Type: application/json
  • User-Agent: LangStream-webhook/1.0
  • X-Webhook-ID: Unique webhook identifier
  • X-Webhook-Type: Event type (e.g., pipeline.document.processed)
  • X-Webhook-Signature: HMAC-SHA256 signature (if secret configured)
  • X-Timestamp: ISO 8601 timestamp
  • X-Idempotency-Key: Unique key for deduplication
  • Your custom headers (if configured)

Managing Webhooks​

Viewing Webhook Status​

From your pipeline's Webhooks tab, you can see:

  • Webhook name and URL
  • Status (active, inactive, error)
  • Success/failure counts
  • Last triggered timestamp

Viewing Delivery Logs​

Click on View Logs to see:

  • Failed delivery attempts
  • Response status codes
  • Response times
  • Error messages
  • Full request payloads

Note: Only failed deliveries are logged. Successful deliveries (2xx status codes) are counted but not logged in detail.

Deactivating Webhooks​

To temporarily stop webhook deliveries without deleting:

  1. Edit the webhook
  2. Change status to Inactive
  3. Save changes

The webhook configuration is preserved and can be reactivated later.

Deleting Webhooks​

To permanently remove a webhook:

  1. Click the Delete button
  2. Confirm deletion

This action cannot be undone.

Testing Webhooks​

To test your webhook configuration:

  1. Click Test Webhook from the webhook details
  2. Vectorize sends a test payload to your endpoint
  3. View the response status and details
  4. Check delivery logs for any issues

Test payload example:

{
"event": "webhook.test",
"timestamp": "2024-10-08T15:00:00Z",
"message": "This is a test webhook from Vectorize",
"webhook": {
"id": "webhook-123",
"name": "Your Webhook Name"
}
}

What's Next?​

Was this page helpful?