cancel
Showing results for 
Search instead for 
Did you mean: 

Send A Happy Birthday Email Message Without The Use Of A List

Quite regularly I hear requests that centre around wishing users a Happy Birthday within an organisation. There is an extremely popular template within the Flow template gallery that does just that, it is called "Send a Happy Birthday email to employees on their birthday" and it uses a SharePoint list. It work's really well, although sometimes date formats can become an issue for the Flow implementer when they are imported from the list.

Also, the organisation's users need to be added to the list itself in advance. Whilst that isn't a huge chore for most people, below is a process that requires no list and will send an email to every enabled user in your O365 tenant at 9am on the day of their birthday.

 

Sound, interesting?

 

Well, read on and follow the steps and you too will be able to implement this process.

 

Your email will look like this.

 

Pre-requisites: You will need a suitable Office 365 group. This may be an "All Users" group or a segmented group that only has users who have agreed to recieve such an email. Maybe it's a group that omits the CEO or those who may not celebrate their birthday. I will leave that to you to decide, but in this example a pre-configured "All Users" group is in use.

 

Here is the complete Flow.

 

 

Let's get started by creating a blank Flow and setting the trigger. The trigger in this case is a "Recurrence" which will be set to run at 9am daily with a start date that means when implemented, it will run like clockwork on the hour.

Note: The start date is in this format – 2019-03-20T09:00:00Z. If your in a non UTC timezone the "Z" at the end will not be required.

 

Here is the trigger.

 

We then use the "List group members" action from the "Office 365 Groups" connector. I have named it "List All Users" by click the elipses (…) in the top right.

 

As there are likely multiple users in your organisation then we will need to set an "Apply to each" to allow us to iterate through each one checking to see if it is the user's birthday or not. We will call it "Apply To Each User Account In All Users".

 

Time to use the "Office 365" connector and the action called "Get user profile (V2)".

 

The next step covers the all important condition. It checks if it is the user's birthday and it makes sure the group member is set to "enabled". No need to be wishing those disabled accounts (leavers or shares) a Happy Birthday.

 

 

1.

formatDateTime(body('Get_user_profile_(V2)')?['birthday'], 'MM-dd')

is equal to

formatDateTime(utcNow(), 'MM-dd')

2.

body('Get_uer_profile_(V2)')?['accountEnabled']

is equal to

true

3.

body('Get_uer_profile_(V2)')?[birthday']

is not equal to

0001-01-01T00:00:00Z

 

There is no need for the No branch in this Flow as it will run successfully with no output if no-one has a birthday on that day.

 

For the Yes branch.

 

We add the user to an image or gif. You can get to the url of the image here: http://bit.ly/2TWrfQe

 

 

We now use the above web based url in the email body with the "Send an email" action. This means if you want to change the image you can.

 

So there we have it, you now have a neat Happy Birthday process that targets any group in Office 365.

 

Thanks, Alan

 

AlanPs1.io

Comments

This is neat! I now have a flow that posts to Teams whenever a member of our team has a birthday 🙂

Hi @bottekott 

Thank you for the feedback and I am stoked to see you have amended this model to post to Teams. That is very neat!

 

I'd love to see your method and I'm sure the community would to. Maybe you could make a post in the "Flow Cookbook" referencing this post and detailing the further enhancements you have made?

 

If you decide to, please tag me and I will be sure to check it out. Smiley Happy

 

Thanks, Alan

Hi @AlanPs1 

I just replaced the compose and send an email steps with the "post a message to teams as the flow bot" action.

 

I was thinking of getting fancy with an adaptive card using the new connector , but could not figure out a way to dispay the profile image of the user.

It is a great find!

Personally I used the SharePoint Search engine to get me my initial results. With search I can search for a specific day and eliminate all users that are not relevant.

Hello @AlanPs1 

from where does it takes the birthday dates?

the contact in office 365 doesn't have this field.

@bonm014 @bottekott 

Hi @yossi , essentially it's Delve profile. The "Get user profile (V2)" action returns that.

It can be set in Delve, maybe other places and can be accessed with PowerShell too.

Thanks, Alan

Hi @AlanPs1 I am getting one problem. Everyday birthday mail is sent to all members in the group. How to fix that?? Where I am missing ?? Thanks in advance 

Hi,

Thank for the wonderfull article. I'm now at the question, How can we apply the following logic?

 

1.) recurrence, Mon To Friday except,

2.) On Friday, Add the birthdays that are occuring on the weekend.

 

Busy trying...

PS, Instead of sending individual emails, how would one collect everyone on the day and apply their name in the email construction? 

 

Kind Regards,

Rayno

I have been running this flow for sometime now and I use it to post an announcement to Yammer it works great, however one of my supervisors asked if they could get a reminder a week before a birthday so they can buy a birthday card. What would that formula look like?

Thanks in advance.

hi @AlanPs1 , that's great stuff. Thanks for sharing. Do you know how I cand send email as a Team HR instead my own, work email?

NVM - I managed to find "Send an email from shared mailbox."

Meet Our Blog Authors
  • Working daily with Microsoft Cloud to deliver the needs of my company, my customers and various Microsoft communities and forums. | Office 365 | Flow | PowerShell | PowerApps | SharePoint |
  • Co-founder of https://plumsail.com, Office 365 and SharePoint expert. Passionate about design and development of easy to use, convenient and flexible products.
  • Microsoft Business Apps MVP. Owner of ThriveFast, an Office 365 consulting company.
  • 7x Microsoft Business Solutions MVP (CRM)
  • I'm keen in MS technologies, SharePoint, Office 365 and development for them
  • Daniel is a Business Productivity Consultant & Microsoft Business Solutions MVP who is very enthusiastic about all things Office 365, Microsoft Flow, PowerApps, Azure & SharePoint (Online). Since the preview, Daniel has been working with Microsoft Flow and later on with Microsoft PowerApps. That led to him being awarded an MVP Award for Business Solutions. He loves to blog, present and evangelize about improving productivity in the modern workspace with these amazing tools!
  • Michelle is an Office 365 solution architect in Twin Cities, MN. She has been delivering business collaboration solutions for years with her focus on SharePoint and Office 365. Michelle is a recent board member of the Minnesota Office 365 User Group and has been a member of the SharePoint community since 2009. She is a frequent speaker at MNSPUG and SharePoint Saturday and co-chaired the Legal SharePoint User Group for 4 years. Her most frequent projects have involved rolling out a large deployment of Office 365, SharePoint Online intranet, build of a "CHAMPS" Office 365 user adoption program and most recently, SharePoint On-Premise to Online Migration. Michelle is very excited about cloud technology as it is shifting her IT Pro focus to collaboration strategy and technical adoption.
  • I'm a Microsoft Office Servers and Services MVP with a special interest in SharePoint, Office 365, Microsoft Flow, Microsoft Teams and PowerApps. I work at Triad Group Plc ( https://triad.co.uk)
  • Passionate #Programmer #SharePoint #SPFx #Office365 #MSFlow | C-sharpCorner MVP | SharePoint StackOverflow, Github, PnP contributor