CosmicCoder Solutions was engaged to assist a shopping district with their mobile application where shoppers join the club to receive special deals. The shopper would get alerts on their phone when they were near a shop or restaurant that had a club member deal in place. Besides the mobile application alerts the association wanted members to receive text alerts and email alerts. We also asked to develop a way to do this using their existing data that was stored in Salesforce.
Because of our experience with Salesforce we already knew that we would have to create ETL processes to pull data from Salesforce in into SQL. This is because Salesforce API can be a bit slow at times and users on a mobile device generally do not wait 5 to 10 seconds while data downloads from Salesforce.
The first order of business was to create a data structure that mapped the business need to Salesforce. The second was to create ETL processes that exchanged data with the Salesforce Api. The data exchange had to be on regular intervals. Any one of the restaurants or shops could have the association create a campaign at any time.
Since our portion of the application was a web Api that the mobile devices connect to we decided to use Microsoft MVC and Web Api. We selected Hangfire as our job server. Hangfire is an open source background job server. The things you can do with this application is amazing. For example in our case we added a job to the queue that then in the background sent out the text message, sent out the email, confirmed data with Salesforce and informed the mobile application. We have a Hangfire demo at our GitHub, https://github.com/kenlmcpd/HangfireDemos
For the users that selected their “Alerts” to arrive via Text messages, we used Twilio as our framework. Twilio is a cloud communications platform as a service company. The Twilio framework allows developers to programmatically make and receive phone calls and send and receive text messages using its web service APIs. The services are accessed over HTTP and are billed based on usage.
For email alerts we used SendGrid. SendGrid is a cloud-based SMTP provider that allows developers to send email without having to maintain email servers. The framework manages all of the technical details, from scaling the infrastructure to ISP outreach and reputation monitoring to whitelist services and real time analytics.