Notifications from Customisations
The Notification Framework in TallyPrime provides a system-driven way to surface important alerts, reminders, and actionable insights to users. This has been introduced in Release 5 and it enabled system-level notifications. Starting from Release 7, the framework has been extended to allow developers to create, trigger, and manage custom notifications using TDL.
The notification capability can be used in various scenarios, such as alerting users about pending invoices, stock shortages, or overdue payments. It can also display reminders for scheduled backups or report exports, helping users stay on top of routine tasks. Additionally, notifications can inform users about the status of external integrations or data synchronization, ensuring visibility into connected systems. For third-party or ISV extensions, solution-specific alerts can be delivered to enhance usability and keep users informed in real time.
➥ Click here for Notification definition content
Accessing Notifications
Use TDL collections to fetch notifications.
|
Collection |
Scope |
Usage |
|
|
AllNotifications |
Global |
Fetches all notifications (application level and all loaded companies). |
[Collection: AllNotifications] Data Source : Notification : All |
|
AppLevelNotifications |
Application-level |
Fetches notifications available at application level. |
[Collection: AppLevelNotifications] Data Source : Notification : Application |
|
CompanyLevelNotifications |
Company-level |
Fetches notifications for all loaded companies. |
[Collection: CompanyLevelNotifications] Data Source : Notification : Company |
|
SpecificCompanyNotifications |
Targeted |
Fetches notifications for a specific company. |
[Collection: SpecificCompanyNotifications] Data Source : Notification : Company Child Of : ##SvCurrentCompany |
Actions
Actions – RaiseNotification and DeleteNotification
The action RaiseNotification is a global action used to open or raise a notification report and use this specifically where notification-related behavior is required. The return value is a BOOLEAN, which denotes whether the notification is raised or not.
This action takes 2 parameters
- Parameter 1: It specifies the name of the TDL notification.
- Parameter 2: It specifies the text to be displayed for a notification.
Both the parameters are mandatory
Syntax
[Function: <Function Name>]
Action: RaiseNotification:<Notification Name>:<String Expression>
Where,
<Notification Name> is the name of the notification.
<String Expression> can be an expression which evaluates to a string.
DeleteNotifications action is used to delete all notifications associated with a specific notification activity type. It is a global action, meaning it can be invoked across the application context to clear relevant notifications system-wide.
This action takes one parameter
- Parameter: Provides the name of the TDL notification activity to be deleted.
It is a mandatory parameter.
Syntax
[Function: <Function Name>]
Action: DeleteNotification: <Notification Name>
Where,
<Notification Name> is the name of the notification.
Example
[Notification : Backup Reminder]
Activity Name : BackupReminder
Description : It’s been 7 days since your last data backup.
Type : Info
Persist : Yes
Snooze Type : Duration
Snooze Value : 1:Day
Expiry Duration : 5:Days
….
….
[Button : Raise Backup Reminder]
Key : F8
Action : RaiseNotification : BackupReminder
Best Practices
- Define reusable handlers – write common handler functions for repeated logic.
- Use logical grouping – e.g., “Accounts”, “Inventory”, “System” for better organization.
- Set expiry and snooze wisely – avoid overwhelming users with persistent alerts.
- Avoid duplicates – use Delete All Previous attribute before raising new notifications.
- Validate snooze/expiry conditions thoroughly.
Troubleshooting
|
Issue |
Possible Cause |
Solution |
|
Notification not appearing |
Invalid activity name or missing raise action |
Verify name and trigger code |
|
Handler not executing |
Function not defined or mismatched name |
Check Handler definition |
|
Notification persists after expiry |
Expiry not defined or persist set to “Yes” |
Set Persist : No or define expiry duration |
|
Multiple duplicate alerts |
Missing delete action |
Use Delete All Previous : Yes |
Summary
This capabilty gives developers complete control to design meaningful, contextual, and actionable notifications for users. By defining and raising notifications programmatically, you can improve visibility, automate reminders, and enhance user engagement within custom solutions.
