I have been tasked with creating a 5-minute delay on a standard email we send to users who sign up to our application, and am stuck as to finding the best way to do so.

To break down the journey:

  1. User visits our sign-up page and enters their details, and submits them.
  2. They are taken to the next screen which confirms their account creation, and can then navigate the app fully
  3. They can log out, log in, close and open the browser, make changes etc. as any user would be able to do.

When they have submitted their details (step 1), we need to send them an email 5 minutes after this happens, but WITHOUT stopping them navigating the rest of the website, so there is no UX problems occuring.

I have read up on the Timers available in OutSystems and as it says there are a limited number of Timers that can be run, I don't think this would be a viable option - we could have a lot of users signing up at once and the OutSystems documentation says you can only have 3 Timers running at once, but change it to more where the high-priority ones will be run first:
https://success.outsystems.com/Documentation/11/Developing_an_Application/Use_Timers


What is my best option for allowing the user to continue to navigate the application, and have the 5 minute delay run in the background to send the email once 5 minutes passes?


Thanks in advance

Nick

Nick Dillon wrote:

I have been tasked with creating a 5-minute delay on a standard email we send to users who sign up to our application, and am stuck as to finding the best way to do so.

To break down the journey:

  1. User visits our sign-up page and enters their details, and submits them.
  2. They are taken to the next screen which confirms their account creation, and can then navigate the app fully
  3. They can log out, log in, close and open the browser, make changes etc. as any user would be able to do.

When they have submitted their details (step 1), we need to send them an email 5 minutes after this happens, but WITHOUT stopping them navigating the rest of the website, so there is no UX problems occuring.

I have read up on the Timers available in OutSystems and as it says there are a limited number of Timers that can be run, I don't think this would be a viable option - we could have a lot of users signing up at once and the OutSystems documentation says you can only have 3 Timers running at once, but change it to more where the high-priority ones will be run first:
https://success.outsystems.com/Documentation/11/Developing_an_Application/Use_Timers


What is my best option for allowing the user to continue to navigate the application, and have the 5 minute delay run in the background to send the email once 5 minutes passes?


Thanks in advance

Nick

Hi Nick,

I am not aware of the timers limitation. However it is the better solution.

Just create an Entity that stores the emails you want to send with a creation date.

The develop a single timer that select all the records that are within the time frame you want and send them.

This way you will only have a single timer running sending multiple email on every execution.

Other option is though BPT, but that is a "workaround" for your problem.

You can create a process that is started when a new record is inserted into the Entity (same entity a mention above that stores the emails to send).

This process will, after the insert, wait the 5 minutes and then execute a action (send email).

However this "workaround" will have as many processes running as users requests - please take this into account (I do not recommend this).

As far as i can tell these are your options to implement in Outsystems.

Hope this helps

Best Regards 

Rodrigo Henriques