CRM Module
Overview
The Actions module is responsible for managing task-based actions assigned to entities. An action represents a scheduled or tracked activity, such as a follow-up call, meeting, or reminder.
Actions are linked to entities (customers or suppliers) and can have due dates, completion status, and categorization through action types.
All operations are tenant-aware and fully audited.
Services
The Actions module consists of the following services:
- Actions - manage actions and tasks
- Action Types - manage action type definitions
Models
This module exposes and consumes the following models.
Action Model
Represents a task or action assigned to an entity.
Fields:
Id (type: long)- internal identifierEntityId (type: long)- associated entity identifierSubject (type: string)- action subject or titleDescription (type: string?)- detailed descriptionCreatedAt (type: DateTime)- creation timestampUpdatedAt (type: DateTime?)- last update timestampDueAt (type: DateTime?)- due date for the actionAction (type: string?)- action details or notesCompletedAt (type: DateTime?)- completion timestampActionType (type: long)- action type identifierActionTypeTitle (type: string?)- action type display title (read-only)
Validation:
IsReadyToAdd()- requires
EntityId > 0 - requires
Subject - requires
ActionType > 0
- requires
IsReadyToUpdate()- requires
Id > 0 - requires
Subject
- requires
Notes:
- Actions are linked to entities via
EntityId - Due actions can be queried separately
- All data is tenant-scoped
Action Type Model
Represents a category or type of action.
Fields:
Id (type: long)- internal identifierTitle (type: string)- action type display titleIcon (type: string?)- optional icon identifierCreatedAt (type: DateTime)- creation timestamp
Validation:
IsReadyToAdd()- requires
Title
- requires
IsReadyToUpdate()- requires
Id > 0 - requires
Title
- requires
Notes:
- Action types provide categorization for actions
- Used for filtering and reporting
- All data is tenant-scoped