How to send separate birthday email based on Weekday,Weekend and Public Holiday?

I have to send a birthday email and a belated birthday email.

Attended Robots will only run on a working day.

If the user birthday falls on the Weekend and Public Holiday, the next working day where the robot run will send a belated birthday email. If it does not fall on a Weekend and Public Holiday, the robot will not send the belated birthday email.

Public Holiday list, I get it from a website that has DataTable.

How to get the flow chart or if condition for this robot?

Thanks.

1 Like

Hello @SITI_NUR_ALYSHYIA!

It seems that you have trouble getting an answer to your question in the first 24 hours.
Let us give you a few hints and helpful links.

First, make sure you browsed through our Forum FAQ Beginner’s Guide. It will teach you what should be included in your topic.

You can check out some of our resources directly, see below:

  1. Always search first. It is the best way to quickly find your answer. Check out the image icon for that.
    Clicking the options button will let you set more specific topic search filters, i.e. only the ones with a solution.

  2. Topic that contains most common solutions with example project files can be found here.

  3. Read our official documentation where you can find a lot of information and instructions about each of our products:

  4. Watch the videos on our official YouTube channel for more visual tutorials.

  5. Meet us and our users on our Community Slack and ask your question there.

Hopefully this will let you easily find the solution/information you need. Once you have it, we would be happy if you could share your findings here and mark it as a solution. This will help other users find it in the future.

Thank you for helping us build our UiPath Community!

Cheers from your friendly
Forum_Staff

1 Like

Hey @SITI_NUR_ALYSHYIA,

First store the last process ran date.

During the current day, It should check the last ran date and send birthday wishes for all the pending days until today.

If the day is present in the datatable, It will send a belated wish.
If not normal daily wish.

Hope this helps

Thanks :slight_smile:

1 Like

Hi @Nithinkrishna

I do not understand. Do you have a sample for me to refer to?

How do I first store the last process ran date?

The robot also have to check for every weekend if the user birthday falls on the weekend, the robot send the belated birthday email. Or does that means this check no longer needed?

Thanks

1 Like

You can have an asset as last processed date.

Will provide a sample code in sometime

Thanks :slight_smile:

Hi @SITI_NUR_ALYSHYIA

U can use orchestrator API to schedule your work that is sending birthday wishes According to date condition

Like the if the date is on working days u can make the process to be scheduled on the given date or if it is in weekened u can put the date which is the working date and schedule it on the day using orchestrator API for sending the belated birthday wishes

Hope the idea helps you

Try this way too

Regards

Nived N :robot:

Happy Automation :relaxed::relaxed::relaxed:

Hi @NIVED_NAMBIAR, thank you for the reply. But I dont have access to Orchestrator. I only have Uipath Studio and Uipath Assistant. Hence, only able to develop attended bots.

@Nithinkrishna

Asset is in Orchestrator right? But i dont have Orchestrator. Any idea to only do this in uipath studio itself?

Hi @SITI_NUR_ALYSHYIA

Then u have to do by excel automation

Like consider u have an Excel files with column

Name —DOB— Status

Here name, dob stores the name and date of birth of person status store whether the birthday is sent or not

Status should be marked as sent birthday or it should be blank

At when bot runs it first check the previous days status is blank , If it blank it should sent a belated wishes to that person and mark the status of that person as sent birthday.

Then bot should look whether for the current day any birthday is there and should sent the birthday wishes for him and mark status as sent birthday

This is way u can do without orchestrator

Try this way

Hope it helps

Mark it as solution if it helps you

Regards

Nived N :robot:

Happy Automation :relaxed::relaxed::relaxed:

2 Likes

Hi @NIVED_NAMBIAR

Do you have a sample for this?
Thanks

Hi @SITI_NUR_ALYSHYIA will design the sample and send to you

Thought of doing it this way but it seem too difficult to do as there is so much flow decision and an error occurs that a user birthday that falls on public holiday and the public holiday is also on the weekend will send a belated birthday twice.

So I hoping there is more simpler way to do this robot.
Thanks

1 Like

Hey @SITI_NUR_ALYSHYIA,

Extreme apologies for the delay. Completely missed it.

Anyway, here is the workaround for you.

  1. Using Excel as a source & last sent date flag is also stored in excel

  1. Using Excel as a source & last sent date flag is stored in an asset

Comparing both, the approach remains the same but the last sent date storing source differs.

Summarizing the approach,
Input Data - Birthday Users List, Last sent date (Bot’s previous run date)
[!! No holiday list input is required in this approach which makes it a bit more efficient]

  1. Read the input data - Birthday users list & last sent date (either from an asset or excel)
  2. Filter input data based on the last sent date (user birthday date > last sent date)
    [!! Previous date greetings would have already sent by the bot]
  3. Process the filtered list, If user birthday date is today send normal greeting else send belated wishes.
  4. As run is nearing to completion, update last sent date as the current date either in excel or an asset whichever you use.

PFA for reference - BirthdayGreeting.zip (38.0 KB)

Hope this will be the solution to your usecase.

Let me know for any queries, will try to respond asap.

Thanks :slight_smile:

1 Like

Is there an example for the excel file for the column Last Sent? Like how does it suppose to look like.
Can the last sent be stored in a txt file too?

1 Like

Hi @Nithinkrishna

For the process filter, can it be done using Filter Data Table activity, as it might be simpler for me to understand.

However, birthday user lists is dd/MM/yyyy. I have convert it to MM/dd using assign. But to check for against the last send date, can the filter process be just dd/MM. Since i don’t want to match with the year.

Thanks

1 Like

Hey @SITI_NUR_ALYSHYIA,

All those are possible :+1:

That solution will give you just an idea and you can modify it as you need.

You can store that last sent in text file too. You can choose any source, I feel asset will be best as it stores in cloud DB where no one can change.

For the filter thing, as you said you can just compare date and month irrespective of the year by changing the filter query as below:

BdyUsers.AsEnumerable.Where(Function(row) new DateTime(Date.Parse(row(“Born Date”).ToString.Trim).Day, Date.Parse(row(“Born Date”).ToString.Trim).Month, Now.Year) > Date.Parse(LastSent)).CopyToDataTable

Regarding dd/mm conversion, It will work same in both cases if i’m not wrong as we parsed it to date format.

Hope this helps.

Thanks :slight_smile:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.