A template that posts the same journal on a schedule, for example monthly rent or a standing provision. A background job runs each template whose Status is Active and whose Next Run Date has arrived. The job copies the template's lines into a new journal dated on the run date, posts it, and moves Next Run Date on by the frequency. Out of the box, recurring journals are in no app, and their forms show only Partner Account, Is Active, Start Date, End Date and Next Run Date, with no list of lines. An administrator has to add the rest before the feature can be used from the screen. Runs happen only for tenants licensed for Finance.
Fields
| Field | Label | Type | Required | What it does |
BranchId | Branch | Lookup → Branch | | Copied onto the generated journal and onto every generated line, because template lines have no branch of their own. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created On | DateAndTime | Yes | |
EndDate | End Date | DateAndTime | | The last date a run may be scheduled for. A template whose Next Run Date is later than this date is not run. The run that moves Next Run Date past it sets Status to Completed. Leave it empty for no end. |
Frequency | Frequency | Text | | How far Next Run Date moves after each run. Free text: Monthly adds one month, Quarterly three, HalfYearly six, and Yearly (also Annual or Annually) one year. Case and surrounding spaces do not matter. A blank or unrecognised value is treated as Monthly, with no error. |
Id | Id | Guid | Yes | |
IsActive | Is Active | Boolean | | The scheduler does not read this switch. Clearing it does not stop a template: change Status instead. |
Label | Label | Text | | A readable title. Each generated journal is labelled with this text followed by the run month in brackets, for example 'Office rent (2026-11)'. When it is empty, Name is used. |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | Required on save. No automatic numbering is shipped for recurring journals, and the standard create form has no Name field, so an administrator adds it to the form (or sets up document numbering) before templates can be saved. Used in the generated journal's label when Label is empty. |
Narration | Narration | Text | | Copied onto the generated journal header as its narration. |
NextRunDate | Next Run Date | DateAndTime | | The date of the next run, and the field that decides whether the template runs. On each scheduler pass, Active templates whose Next Run Date is today or earlier are run. The generated journal is dated on this date, and its fiscal period must be open. A date in the past makes the scheduler post one journal for each missed period. A template with no Next Run Date never runs. |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | | Your company, whose books receive the generated journals. It decides the fiscal period the run posts into. |
RecordTypeId | Record Type | Guid, hidden | | |
StartDate | Start Date | DateAndTime | | When the schedule is meant to begin, for your reference. The scheduler does not read it. Set Next Run Date to the first run date. |
Status | Status | Text | | Free text. Only the exact value Active is run. Type anything else, such as Paused, to stop runs and keep the schedule. Completed is set automatically when a run moves Next Run Date past End Date. |
UIProps | UI Props | Text | | |
UpdatedDateTime | Updated On | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteEntity | Delete | Delete | DeleteEntity |
DeleteRow | Delete | Delete | DeleteRow |
EditEntity | Edit | Edit | EditEntity |
EditInLine | Edit | EditInline | EditInLine |
EditRow | Edit | Edit | EditRow |
New | New | New | New |