Skip to main content

File Storage Webhooks

Webhooks enable your applications to receive real-time notifications when events occur in your file Storage and issue tracking systems. This eliminates the need for polling and ensures your systems stay synchronized with ticket updates, status changes, comments, and attachment activities across all integrated platforms.

Unizo normalizes webhook events from Jira, ServiceNow, Zendesk, GitHub Issues, and other file Storage providers into a consistent format. This means you write your webhook handler once and it works with all supported platforms.

Webhook Configuration

To set up webhooks for your integration, visit the Unizo Console Webhooks section for step-by-step configuration guide.

Supported Event Types

These are the event types currently supported by Unizo's File Storage webhooks. The list keeps growing as we add support for more events across different platforms.

Event TypeDescriptionTrigger Conditions
file:created A new file has been createdFile creation via UI, API, email, or automation
file:updatedFile information has been modifiedTitle, description, status, priority, or assignee changes
file:deletedA file has been deletedFile deletion or permanent removal

Webhook Security

All webhooks from Unizo include security headers to verify authenticity:

Headers

HeaderDescription
x-unizo-event-typeThe type of event that triggered the webhook
x-unizo-signatureHMAC SHA-256 signature for request validation
x-unizo-timestampUnix timestamp when the event was sent
x-unizo-delivery-idUnique identifier for this webhook delivery

Signature Verification

Verify the authenticity of incoming webhooks using HMAC SHA-256:

const crypto = require('crypto');

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

File Events

File Created

file:created

Triggered when a new file is created in the file Storage system
POSThttps://api.yourapp.com/webhooks/unizo/file Storage
Headers
NameTypeRequiredDescription
x-unizo-event-typestringYesEvent type: file:created
x-unizo-signaturestringYesHMAC SHA-256 signature
Request Body Schema
PropertyTypeRequiredDescription
Example Payload
{
"type": "file:created",
"version": "1.0.0",
"contentType": "application/json",
"file": {
"id": "10099",
"name": "NewProject"
},
"integration": {
"type": "FILE_STORAGE",
"id": "f2ae41b8-6aa9-434b-84ab-ddc0a7321351",
"name": "Ji_Secu_1756452472351"
}
}
Response
200 OKWebhook processed successfully
400 Bad RequestInvalid webhook payload
401 UnauthorizedInvalid or missing signature

File Updated

file:updated

Triggered when file information is modified
POSThttps://api.yourapp.com/webhooks/unizo/file Storage
Headers
NameTypeRequiredDescription
x-unizo-event-typestringYesEvent type: file:created
x-unizo-signaturestringYesHMAC SHA-256 signature
Request Body Schema
PropertyTypeRequiredDescription
Example Payload
{
"type": "file:updated",
"version": "1.0.0",
"contentType": "application/json",
"file": {
"id": "10099",
"name": "NewProject"
},
"integration": {
"type": "FILE_STORAGE",
"id": "f2ae41b8-6aa9-434b-84ab-ddc0a7321351",
"name": "Ji_Secu_1756452472351"
}
}
Response
200 OKWebhook processed successfully
400 Bad RequestInvalid webhook payload
401 UnauthorizedInvalid or missing signature

File Deleted

file:deleted

Triggered when a file is deleted from the file Storage system
POSThttps://api.yourapp.com/webhooks/unizo/file Storage
Headers
NameTypeRequiredDescription
x-unizo-event-typestringYesEvent type: file:created
x-unizo-signaturestringYesHMAC SHA-256 signature
Request Body Schema
PropertyTypeRequiredDescription
Example Payload
{
"type": "file:deleted",
"version": "1.0.0",
"contentType": "application/json",
"file": {
"id": "10099",
"name": "NewProject"
},
"integration": {
"type": "FILE_STORAGE",
"id": "f2ae41b8-6aa9-434b-84ab-ddc0a7321351",
"name": "Ji_Secu_1756452472351"
}
}
Response
200 OKWebhook processed successfully
400 Bad RequestInvalid webhook payload
401 UnauthorizedInvalid or missing signature

Need Help?

For webhook-related support: