Skip to content

Conversation

@morgang-adappt
Copy link
Contributor

@morgang-adappt morgang-adappt commented Jan 14, 2026

Description

This PR implements the scheduler flow for Email Notifications. The core scheduler functionality allows the user to configure a cron schedule on which Email Notifications are sent.

A related feature in this PR is the ability to resolve dataset field values in the email body when a dataset is configured as "Send Separate Email". For example, when Block 1 is configured as "Send Separate Email" (meaning each row of the dataset is handled independantly and sent to an email address extracted from a configured field of the dataset), {{Block 1.createdBy.username}} is replaced with the corresponding value in the dataset. This is supported by a dropdown on the frontend to insert these values into the email body.

An additional change required for one of the scenarios provided is the filter change in all.ts. This change was implemented to allow the filtering of nested fields of type resources. Specifically, when using the "Weekly Senior Leadership Report" resource, the "comments" LIST field must be filtered to only include values whose modifiedAt value is within a certain range (field: comments - modifiedAt, operator: withinthelast, value: 1 minute), previously this filter would return all data in the dataset.

Useful links

Type of change

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

These changes have been tested by our internal QA team following scenarios provided by the client.

Screenshots

image
  • The scheduler configuration inside an Email Notification
image
  • The fields from a Send Separate Email dataset available for insertion into an email body.

Dependencies

  • The backend and function environments now includes ACCESS_TOKEN_URL, CLIENT_ID, CLIENT_SECRET, and CS_SCOPE, which are used to provide client credentials authentication between the backend and function.
  • Function App must be deployed alongside the backend changes to ensure end-to-end behavior for scheduled emails and filtered datasets.

Checklist:

( * == Mandatory )

  • * I have set myself as assignee of the pull request
  • * My code follows the style guidelines of this project
  • * Linting does not generate new warnings
  • * I have performed a self-review of my own code
  • * I have put the ticket for review, adding the oort-backend team to the list of reviewers
  • * I have commented my code, particularly in hard-to-understand areas
  • * I have put JSDoc comment in all required places
  • * My changes generate no new warnings
  • * I have included screenshots describing my changes if relevant
  • * I have selected labels in the Pull Request, according to the changes with code brings
  • I have made corresponding changes to the documentation ( if required )
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants