Customer Enablement Toolkit: An Innovation Week Project

As a Solutions Engineer at Virtru, I spend most of my time talking to current and prospective customers or working with our customer-facing teams. This gives me a lot of insight into how our customers use our technology and the things we could improve to make their experience better. 

When this year’s hackathon rolled around, I used that lens to frame my project. What “works”, but could work better? Where are Virtru customers losing time? How can we help them get more value out of Virtru? I don’t necessarily want to reinvent the wheel; I just want to throw some WD-40 on it to make the ride smoother.

So rather than one single project, I ended up doing three. Collectively, I call it “The Virtru Customer Enablement Toolkit”—a collection of utilities that would help Virtru customers access some additional functionality that isn’t currently available to them.

Encrypted Search

The first component of the toolkit expands the scope of Virtru’s Encrypted Search function. Encrypted Search allows Virtru users and admins to search against encrypted content without ever exposing that data to their mail provider or Virtru. It’s a patented technology and a huge differentiator for Virtru. However, it can only be used in environments where Virtru is installed: Gmail, Outlook, and Google Vault. For customers who are archiving email in Office 365 or a third-party solution like Global Relay, there’s no integrated search support. 

Building a Virtru plugin for all of these environments wasn’t feasible (both because of the sheer number of possible environments and my amateur-at-best coding skills), so instead I decided to develop a desktop widget using the Electron framework for cross-platform support.

Generating an Encrypted Search query from a plaintext input involves some cryptographic functions that are, frankly, over my head. But luckily, our engineers have already done this work! All I had to do was steal some code from Virtru’s existing JavaScript libraries and drop it into my project. From there, I built a simple UI that’s accessed via the task bar. After authenticating, the user simply enters their plaintext search query; the widget then displays the corresponding Encrypted Search query and automatically copies it to the clipboard. The user can then drop that query into any platform they’d like to return encrypted results.

encrypted searchencrypted search in inbox

End-User License Provisioning

For Virtru customers who use G Suite or on-prem Active Directory, assigning licenses is handled automatically by the “domain sync” process. For organizations that can’t sync, however, users have to be added manually in groups of about 20. For large organizations, this can take a long time and is prone to errors. A time-consuming, manual, and repetitive process like this just screams “automate me!” – so I did!

Since I wanted to “automate the boring stuff”, Python was the natural choice. The result is a command line utility that parses an input CSV full of email addresses to be provisioned, then assigns a license to each address via the Virtru Accounts service. Once the process is complete, a results file is generated indicating success or failure of the provisioning for each user. Much quicker than all that copying and pasting!

Admin Status Provisioning

By default, each Virtru customer organization has one administrator. After adding users to the team, additional admins can be created. This, too, is a manual process. Since I’d already been able to automate adding user licenses, I decided I should add the ability to promote existing users to admin status as well.

This works exactly the same way as the user provisioning tool, but hits a different endpoint within the Virtru accounts service. Every user included in the input CSV will have their permissions elevated to “Admin”. 

admin provisioning


Not only are these kinds of projects fun, I always end up learning something new while I’m building them. In addition to getting more insight into how some of Virtru’s back-end services operate and integrate with our user interfaces, I had to learn a lot of fundamental coding practices as well. For example, pulling in Virtru’s existing Encrypted Search code helped me understand JS modules far better than I did beforehand (hey, I said I was an amateur!). And if these projects can help our customers save some time or use Virtru more effectively, even better!

As I continue to get feedback from our customers and Customer Success team, I’m looking forward to seeing what else we might be able to hack together. Can’t wait for our next Innovation week!

Subscribe to Our Newsletter

Connect With Us