Notification Templates
STATIC inline templates and NOTIFICATION_ENGINE_TEMPLATE reference — locale keys, fields, and stateName conventions.
1. STATIC — inline HTML/SMS content
Used for most notifications. Locale keys: en, fr, rw.
{
"actionType": "NOTIFICATION",
"args": {
"notificationType": "STATIC",
"staticTemplate": {
"en": {
"title": null,
"subject": "...",
"emailBody": "...",
"smsBody": "...",
"emailMessage": null
},
"fr": {
"title": null,
"subject": "...",
"emailBody": "...",
"smsBody": "...",
"emailMessage": null
},
"rw": {
"title": null,
"subject": "...",
"emailBody": "...",
"smsBody": "...",
"emailMessage": null
}
},
"dynamicTemplate": null,
"certificateWithList": false,
"updateFieldWithDatasetValue": false,
"excludeCurrentApplication": true
}
}2. NOTIFICATION_ENGINE_TEMPLATE — pre-built templates by name
Used when notification content is managed externally (e.g. payment expiry). Uses en/fr/rw locale keys with emailTemplateName/smsTemplateName:
{
"actionType": "NOTIFICATION",
"args": {
"notificationType": "NOTIFICATION_ENGINE_TEMPLATE",
"dynamicTemplate": {
"en": {
"emailTemplateName": "TEMPLATE_CODE_EMAIL_EN",
"smsTemplateName": "TEMPLATE_CODE_SMS_EN"
},
"fr": {
"emailTemplateName": "TEMPLATE_CODE_EMAIL_FR",
"smsTemplateName": "TEMPLATE_CODE_SMS_FR"
},
"rw": {
"emailTemplateName": "TEMPLATE_CODE_EMAIL_RW",
"smsTemplateName": "TEMPLATE_CODE_SMS_RW"
}
},
"certificateWithList": false,
"updateFieldWithDatasetValue": false,
"excludeCurrentApplication": true
}
}stateName for intermediate states
For intermediate processing states, stateName mirrors stateCode exactly — not a human-readable label:
{
"stateName": "PENDING_OFFICER_PROCESSING_LEVEL_1",
"stateCode": "PENDING_OFFICER_PROCESSING_LEVEL_1"
}