Trigger a process when mail arrives


I want to trigger a process when an email arrives in the outlook mailbox. How can we do it?


Hi Shivangi,
We can use Windows Task Scheduler to schedule the XAML file of your UiPath workflow every 5mins or 10mins or as per your requirements.By this way, for every scheduled interval the workflow is executed and it checks the mail box and triggers the process if required mail arrives.

Thanks & Regards,


Thanks for the reply!! Windows Task Scheduler is a way I was aware of, is there any way in UIPath that we can do for trigger.


As per my knowledge ,i don’t see any mail monitoring service activity in Uipath Studio, you can check with UiPath orchestrator. But i think there is an option by which you can monitor the mailbox as a service using powershell scripts and trigger the Uipath bot using REST web service if it meets the required criteria.


This is one way to trigger a process




Thanks for the flow diagram! It was exactly what I needed. Had a followup question:

What would happen if the robot is in the middle of a longer task? Would the triggered event from a new email break him? Or would he know to finish his task and then process the latest email?


I think the flow mentioned by vvaidya, would work and it would hold the BOT for ever, we may not able to run one more BOT in that machine,

I think monitoring the mailbox via Service out of the BOT would be best and then trigger the BOT when a new mail arrive. that way the BOT would run only when its applicable, and we can utilize other BOT in that machine,


Yes this is happening. Can you please explain in detail how to do this?


Hello, I try to do the same, I’m stuck at what to put on the decision box? Can anyone please explain the condition to go on to the decision box. thanks


Say your get outlook activity output variable is “emails”. Few things you can do are :

  1. emails.Count >0

  2. emails.Any ( 1& 2 does pretty much same job)

  3. email.Where(Function(s) s.Subject.Contains(“xyz”)).Any — Looking for Subject Keyword

  4. email.Where(Function(s) s.Attachments.Count>0).Any — Check if Email list Contains Attachments


Thank you very much it worked. :grinning: