---
title: Email Notification Configuration
url: https://docs.kaltura.com/docs/rich-media-cms-apis/integration/webhooks-email-config
---

## 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

```bash
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

```bash
  -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)

```bash
  -d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationUserRecipientProvider" \
  -d "eventNotificationTemplate[to][userId][objectType]=KalturaEvalStringField" \
  -d "eventNotificationTemplate[to][userId][code]={event.object.userId}"
```

#### Category Subscribers

```bash
  -d "eventNotificationTemplate[to][objectType]=KalturaEmailNotificationCategoryRecipientProvider" \
  -d "eventNotificationTemplate[to][categoryId][objectType]=KalturaStringValue" \
  -d "eventNotificationTemplate[to][categoryId][value]=$CATEGORY_ID"
```

#### Group Members

```bash
  -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:

```bash
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](/docs/events-collaboration/messaging-api/messaging-overview)) |
|---|---|---|
| **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 |
