Frappe Framework

Frappe Framework

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Notifications

Notifications

Frappe has two notification systems running in parallel: the Notification DocType for document-triggered alerts, and Email Account for sending the underlying email.

Notification DocType

Configures: "when DocType X reaches state/condition Y, send a message to recipient Z".

Trigger When it fires
New Document created
Submit Document submitted
Cancel Document cancelled
Save Any save
Days After / Days Before Relative to a date field (e.g., 3 days before due_date)
Value Change Specific field changed
Method Custom Python function returns True

Channels: Email, SMS, System Notification (in-app bell icon), Slack, MS Teams.

The message body uses Jinja with doc and frappe available — you can interpolate any field.

Example: invoice payment reminder

Setting Value
DocType Sales Invoice
Trigger Days After
Reference Date due_date
Days 3
Condition doc.outstanding_amount > 0
Recipients doc.customer (resolves to the contact email)
Subject "Reminder: Invoice {{ doc.name }} is overdue"

Email Account

Before any email can leave, configure at least one outgoing Email Account (SMTP) and the Default Outgoing setting in Email Settings. For multi-domain setups, register one Email Account per domain.

System notifications

In-app alerts appear in the desk bell icon. Users see unread counts and can mark as read. Useful for non-urgent updates ("Your report finished generating").

Templates

Recurring email content lives in Email Template — separate from any specific trigger. A Notification can reference an Email Template instead of inline content.

Last updated 3 months ago
Was this helpful?
Thanks!