---
title: Core Concepts
url: https://docs.kaltura.com/docs/rich-media-cms-apis/integration/webhooks-core-concepts
---

## Core Concepts

### How It Works

Templates define **what event** triggers a notification and **where** to send it. The system monitors all platform events and dispatches notifications when a template's conditions match.

```
Platform Event (entry created, status changed, user added to category...)
        │
        ▼
Template Match? (eventType + eventObjectType + eventConditions)
        │
        ▼
Dispatch (HTTP POST to your URL, or email via Messaging Service)
```

### Template Types

| Type String | Object Type | Delivery |
|-------------|-------------|----------|
| `httpNotification.Http` | `KalturaHttpNotificationTemplate` | HTTP POST/GET to your endpoint |
| `emailNotification.Email` | `KalturaEmailNotificationTemplate` | Email via Messaging Service (SendGrid) |

### Event Types

| Event Type | ID | Description |
|------------|----|-------------|
| OBJECT_ADDED | 1 | A new object was created |
| OBJECT_CHANGED | 2 | An object was modified |
| OBJECT_COPIED | 3 | An object was copied |
| OBJECT_CREATED | 5 | An object was fully created (post-processing complete) |
| OBJECT_DATA_CHANGED | 6 | An object's associated data changed |
| OBJECT_DELETED | 7 | An object was deleted |
| OBJECT_ERASED | 10 | An object was permanently erased |

### Event Object Types

| Object Type | ID | Description |
|-------------|----|-------------|
| ENTRY | 1 | Media entries (video, audio, image, document) |
| CATEGORY | 2 | Content categories |
| ASSET | 3 | Generic assets |
| FLAVORASSET | 4 | Transcoded video flavors |
| THUMBASSET | 5 | Thumbnail assets |
| KUSER | 8 | Users |
| ACCESSCONTROL | 9 | Access control profiles |
| BATCHJOB | 10 | Batch processing jobs |
| CATEGORYKUSER | 12 | Category-user membership assignments |
| LIVE_STREAM | 38 | Live stream entries |
| ENTRY_VENDOR_TASK | 42 | REACH enrichment tasks |

Plugin-contributed object types (string IDs):

| Object Type | String ID |
|-------------|-----------|
| Metadata | `metadataEventNotifications.Metadata` |
| CuePoint | `cuePointEventNotifications.CuePoint` |
| CaptionAsset | `captionAssetEventNotifications.CaptionAsset` |
| TranscriptAsset | `transcriptAssetEventNotifications.TranscriptAsset` |
| AttachmentAsset | `attachmentAssetEventNotifications.AttachmentAsset` |
| ScheduleEvent | `scheduleEventNotifications.ScheduleEvent` |
| VirtualEvent | `virtualEventEventNotifications.VirtualEvent` |
| EntryDistribution | `contentDistributionEventNotifications.EntryDistribution` |

### Template Status

| Status | ID | Description |
|--------|----|-------------|
| DISABLED | 1 | Template exists but does not fire |
| ACTIVE | 2 | Template fires on matching events |

Cloned templates start in DISABLED status. Use `updateStatus` to activate.

### Customer Permissions Model

Notification templates are created by cloning pre-built system templates. The system provides templates for common event types (entry changes, user creation, flavor status, captions, metadata, distribution). After cloning, you configure the webhook URL, signing secret, payload data, and custom headers on your copy.

| What you can do | How |
|----------------|-----|
| Browse available event templates | `listTemplates` |
| Create a notification from a system template | `clone` |
| Configure URL, headers, signing, payload | `update` on your template |
| Activate / disable | `updateStatus` |
| List your templates | `list` |
| View a template | `get` |
| Delete a template | `delete` |
