Send Birthday Email to Contacts – The Workflow Way.

Send Email Contact Birthday - Workflow Way

To send a contact birthday wish is a standard requirement in marketing. Unfortunately, Salesforce does provide out of the box solution; to make this work, we need a little bit setup.

  • Create a Date custom form for next year birthday.
  • Create the first workflow to send the happy birthday email on the day and set the Next_Birthday__c to next null;

    Create a workflow rule with the rule criteria below.


    Set 2 time-base workflows; 1 to send the email, another one to update Next_Birthday back to null.


  • Create the second workflow to set the next birthday. If the date of next birthday < today, then It should be next year. Otherwise, It will be next birthday > Today.

Create a field update with Re-evaluate Workflow Rules after Field Change Option.

Formula: IF(DATE(YEAR(TODAY()),MONTH( Birthdate ),DAY(Birthdate )) < TODAY(),DATE(YEAR(TODAY())+1,MONTH( Birthdate ),DAY(Birthdate )),DATE(YEAR(TODAY()),MONTH( Birthdate ),DAY(Birthdate )))
  • Activate both workflows then It is up and run.

17 Responses

  1. Thank you! This seemed to work except for #3. The date is not resetting to next year. After the first workflow executes, send the email and changes the next birthday field to blank, the field stays blank and is not updated with NEXT years birthday. Please help!

    • Hi JENN, have you activated all the workflow rules? You can delete the next birthday value to verify it updates back next year value or not. whenever the birthday email sends out, it should have the next year value populated. You can share your setting, I will have a look.

      • Thanks for answering so quickly! When I delete the next birthday value it stays blank 🙁 I don’t know what I am doing wrong.

        • HI Jenn, I believe you have to create a second workflow to update the second workflow to update back the next birthday value. I will make #3 clearer.

  2. I am confused. I thought I did that with the field update on number 2?

    • Hi JENN, to make it work, you have to create a second workflow rule. I updated the Article; you can create the Populate Next Birthday by following the instruction.

  3. Hi, I also created that workflow and it is still not populating.

  4. Any advice would be greatly appreciated 🙂

    • I think you can just login to this org to verify and copy it.
      login.salesforce.com
      u : demo@workflow.webuildsf.cloud
      p : test1234

      The ip range is 0 – 255 you should be able to login it without a problem. The trick is just populate a value in next birthday then remove it.. You should see it populate the next value in cycle.

  5. Wow! Thank you I made sure everything matched and everything is matching perfect! I am so confused on why it wont reset. Any ideas or things I can check?

    • 1. Check the email template is in use.
      2. The Next Birthday will be reset after the email 1 day.
      3. Open any contact record with empty next birthday, then populate any value; Then empty that value; the next birthday should be populated correctly.

      If I can not see myself, It is very hard to guess.

      • The email is being sent. It seems when the email is reset its resetting it to blank.

      • The email is being sent, which is great but, it seems the next birthday field is resetting it to blank. I am completely dumbfounded.

        • uhmm can you capture some pictures of the time-based workflow? The should set the next birthday field to null after 1 day; Then the second workflow should set the next birthday to next year. copy it to contact@webuildsf.cloud. I did test in demo sandbox, It does work correctly.

          • So I noticed you have a birthdate field which i do not. Is this what is missing?

  6. OH MY HEAVENS IT WORKS! i added the birthdate field above next birthday and it works! Thank you for all your assistance. You have been very helpful and patient!

Leave a comment