Inspiration
Office 365 shared mailboxes are akin to a cookie jar with 20 sets of hands all rummaging blindly for the same cookies. It's chaos. We decided to address that in a unique way by adding extensive workflow and reporting capabilities directly to Office 365 shared mailboxes. Customer emails stay in the trusted Office 365 environment.
What it does
Emailgistics brings order to the chaos of Office 365 shared mailboxes by supercharging them with workflow intelligence. Auto-distribute messages to working team members or create custom workflow rules to make sure agents are handling only the messages they have skill and training to respond to effectively. Emailgistics provides real time dashboards and management reporting so everyone knows what's going on in the mailbox at all times.
How we built it
Emailgistics uses an extensive set of Microservices 2.0 technologies, but everything is predicated on MongoDB Atlas as our primary database. We also chose Go as our backend programming language which ultimately lead us to the new Mongo Go driver (with a lengthy stop at the MGO driver while we waited for the Mongo Go Driver to exit beta). We're also using Stitch for a number backend functions that required a database style trigger.
Challenges we ran into
On the Mongo side of things, we had to learn the NoSQL way of managing our data. Coming from the SQL world meant we had to break certain habits that had been engrained for a long time. We're happy to say that managing data in MongoDB is profoundly easier than we thought it would be, and we can't imaging going back to SQL. Another challenge was transitioning from the (poorly supported) MGO driver to the Mongo Go driver. The Mongo Go driver is much better (especially in the way that it handles connection pools), but it did require a fair bit of code refactoring when we made the switch.
As newcomers to SaaS solutions and the microservices methodology, we had to overcome a monumental learning curve. Our tech stack includes upwards of 30 different technologies that we first had to discover, then learn, then program or configure. This includes Kubernetes, Docker, Istio, Jaeger, Prometheus, Grafana, etcd, Azure Key Vault and so much more.
Our biggest challenge was bringing a world-class shared mailbox experience to Office 365 while ensuring customers that their corporate email would continue to stay in Office 365. All the other players in the this space divert shared mailbox emails out of Office 365 and into their own servers. This raises a number of security consideration but it also means that users can no longer use Microsoft tools (like Outlook and Outlook Web) to accomplish their tasks. Emailgistics uses Microsoft API's exclusively to provide a best in class experience without disenfranchising Microsoft from the experience. The challenge in accomplishing this was both daunting and highly gratifying. We suspect we've used Microsoft's API's more creatively than Microsoft could have imagined.
Accomplishments that we're proud of
We're proud of the level of innovation we've been able to bring to the shared mailbox experience in Office 365. At a technical level, we've created a horizontally scalable, highly performant solution that can respect geographic data sovereignty and which is entirely predicated on MongoDB Atlas.
What's next for Emailgistics
By the time MongoDB World happens, Emailgistics will be available in Preview Release. We're looking forward to collecting feedback from our early adopters and rapidly evolving the product features. That's one of the great things about having a SaaS product; we can grow the capabilities of the product on a daily basis.
Built With
- docker
- go
- istio
- jaeger
- kubernetes
- mongodb-atlas
- prometheus
Log in or sign up for Devpost to join the conversation.