Email Notification Configuration - Integration
Email Notification Configuration
Email notifications combine the event notification trigger engine with the Kaltura Messaging microservice for delivery (SendGrid-based, with tracking and CAN-SPAM compliance).
Configure Email Fields After Cloning
curl -X POST "$KALTURA_SERVICE_URL/service/eventnotification_eventnotificationtemplate/action/update" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "id=$TEMPLATE_ID" \
-d "eventNotificationTemplate[objectType]=KalturaEmailNotificationTemplate" \
-d "eventNotificationTemplate[subject]=Entry {entry_name} is ready" \
-d "eventNotificationTemplate[body]=Entry {entry_id} has finished processing." \
-d "eventNotificationTemplate[fromEmail]=notifications@example.com" \
-d "eventNotificationTemplate[fromName]=Video Platform" \
-d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationStaticRecipientProvider" \
-d "eventNotificationTemplate[to][emailRecipients][0][objectType]=KalturaEmailNotificationRecipient" \
-d "eventNotificationTemplate[to][emailRecipients][0][email][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][emailRecipients][0][email][value]=admin@example.com" \
-d "eventNotificationTemplate[to][emailRecipients][0][name][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][emailRecipients][0][name][value]=Admin"
Email Template Fields
| Field | Type | Description |
|---|---|---|
subject | string | Email subject (supports {token} placeholders) |
body | string | Email body — HTML or plain text (supports {token} placeholders) |
format | integer | 1=HTML, 2=plain text, 3=both |
fromEmail | string | Sender email address |
fromName | string | Sender display name |
to | object | Recipient provider |
cc | object | CC recipient provider |
bcc | object | BCC recipient provider |
Recipient Providers
Static Recipients
-d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationStaticRecipientProvider" \
-d "eventNotificationTemplate[to][emailRecipients][0][objectType]=KalturaEmailNotificationRecipient" \
-d "eventNotificationTemplate[to][emailRecipients][0][email][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][emailRecipients][0][email][value]=admin@example.com" \
-d "eventNotificationTemplate[to][emailRecipients][0][name][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][emailRecipients][0][name][value]=Admin"
Entry Owner (dynamic)
-d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationUserRecipientProvider" \
-d "eventNotificationTemplate[to][userId][objectType]=KalturaEvalStringField" \
-d "eventNotificationTemplate[to][userId][code]={event.object.userId}"
Category Subscribers
-d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationCategoryRecipientProvider" \
-d "eventNotificationTemplate[to][categoryId][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][categoryId][value]=$CATEGORY_ID"
Group Members
-d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationGroupRecipientProvider" \
-d "eventNotificationTemplate[to][groupId][objectType]=KalturaStringValue" \
-d "eventNotificationTemplate[to][groupId][value]=content-team"
Content Parameters (Dynamic Tokens)
Content parameters resolve at dispatch time from the event context:
curl -X POST "$KALTURA_SERVICE_URL/service/eventnotification_eventnotificationtemplate/action/update" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "id=$TEMPLATE_ID" \
-d "eventNotificationTemplate[objectType]=KalturaEmailNotificationTemplate" \
-d "eventNotificationTemplate[contentParameters][0][objectType]=KalturaEventNotificationParameter" \
-d "eventNotificationTemplate[contentParameters][0][key]=entry_id" \
-d "eventNotificationTemplate[contentParameters][0][value][objectType]=KalturaEvalStringField" \
-d "eventNotificationTemplate[contentParameters][0][value][code]={event.object.id}" \
-d "eventNotificationTemplate[contentParameters][1][objectType]=KalturaEventNotificationParameter" \
-d "eventNotificationTemplate[contentParameters][1][key]=entry_name" \
-d "eventNotificationTemplate[contentParameters][1][value][objectType]=KalturaEvalStringField" \
-d "eventNotificationTemplate[contentParameters][1][value][code]={event.object.name}"
Common {event.object.*} fields: id, name, description, userId, creatorId, tags, status, mediaType, duration, createdAt, updatedAt.
Delivery Characteristics
| Property | Value |
|---|---|
| Infrastructure | Messaging Service → SendGrid |
| Delivery latency | ~10-45 seconds after event |
| Format | HTML by default (configurable) |
| Tracking | Per-recipient delivery and engagement via Messaging API |
Event-Triggered vs Application-Triggered Email
| Event Notification Emails (this guide) | Messaging API Direct (Messaging guide) | |
|---|---|---|
| Trigger | Automatic on platform events | On-demand via message/send |
| Recipients | Defined in template | Specified at send time |
| Use case | System alerts: entry ready, task complete | Proactive: invitations, campaigns |