RPA is an exciting field with clear application to improve nearly any business process. As a fun proof of concept, we thought we could aggregate similar messages that come from many different areas.
What it does
The solution monitors multiple dating platforms (such as Plenty of Fish) for messages from the user's matches. When a message arrives, the user is emailed and/or texted the message someone else sent.
How we built it
We mainly used Blue Prism to create a workflow based on event triggers and website flow. Blue Prism drives the entire solution through its objects. In order to send a text message, the Twilio API was called from an Azure Function. Blue Prism did not directly invoke this function, instead it would go to a webpage hosted by an Apache web server in Azure. In the webpage, a text-box was used to input the message to be sent over Twilio. When a button on the page is clicked, the text box value was sent as a URL parameter to the Azure Function, allowing the initial dating message to be passed to the user's phone.
Challenges we ran into
We had two main issues.
The first was anti-bot protocols by many of the potential dating platforms to be incorporated. Captcha's meant that we could not create new profiles on the platforms through Blue Prism, only login to an existing one. This made much of the automation we had hoped for impossible. A workaround could have been to have Blue Prism go through all of the profile creation steps, except at the Captcha stage allow the user to complete the Captcha. This was realized too late and not implemented, however.
The other main issue was executing code directly from Blue Prism. This on a basic level is possible, however using different code modules/libraries looked to be extremely difficult. We feel as though we could install/include libraries, however in the short amount of time this weekend we could not figure the issue out (and moved on to developing the RPA actions). To work around this, we made a webpage that Blue Prism would interact with, and upon a certain interaction, call a serverless function that would execute the desired code. This however does not allow for data to be entered into Blue Prism, only sent to an API (for example) from Blue Prism. Not being able to fully execute code severely limited our stretch goals' feasibility.
Accomplishments that we're proud of
We had very little experience with RPA systems, let alone Blue Prism. Learning such a robust system in a short amount of time was awesome. We also enjoyed making our webpage API call workaround - clever solutions are always fun! Integrating many different technologies (RPA, APIs, Functions, Twilio, Blue Prism) is also a great learning opportunity that we appreciated.
What we learned
We learned a ton about RPA and its potential impact on business processes. There is so much opportunity for internal improvements for working groups. We also learned a ton about integrating different technologies - they don't have to follow the same protocols/languages/rules to be able to work together!
We learned Blue Prism could be used in many different ways. It is very modular and easy to adapt to new situations. Some interesting possibilities are aggregating similar notifications from many different platforms, similar to this project. It could also be used in a more client side website use. Scraping websites for data is possible, as well as using Blue Prism to write unit tests for their user interfaces - create a workflow expecting HTML elements in certain places and notify developers when that is not the case!
What's next for Easier Dating
We would love to figure out how to add modules allowing proper, robust C# code in Blue Prism. This would allow the user to respond to messages from each platform from their phone, just by responding to the text! We also would be able to integrate the IBM Watson API with these texts. Incoming texts to the user would be analyzed for the disgust/sadness/fear vs. their joy. Then, the appropriate reaction can be added to the text so the user has more context about the message they received.
We did not have the time to automate matching within the dating platforms. This is not difficult, we just lost out of time. The Watson API could also be used to filter who is matched with; keywords about the user could be pulled from their social media profiles, and then possible matches can have their profiles compared to these keywords - matching based on similarity.
Unfortunately, the work on Blue Prism could only be done on a given VM, so it is not shown here. The only other code was a very simple HTML file, and a very short Azure Function that simply sends a text using Twilio. So, nothing is uploaded here.