Cloud storage feature for Folio
Expand the Folio web app to support the organization and storage of email attachments on Google Drive.
The Client: Folio by Amitree
Folio works like a virtual assistant that sorts emails into actionable and organized streams (Smart Folders) using proprietary AI technology. For both Office 365 and Gmail users Folio is available as a web app, and for Gmail users, as a Chrome browser extension.
The Project: A major feature build for an already existing app
Folio was originally developed to address the needs of real estate professionals whose work relies heavily on correspondence and sharing of documents among multiple parties. Folio was already integrated with both Office365 and Gmail; however, adding the ability to organize attachments on a cloud service would further improve the user experience.

Clockspring’s implementation for Folio includes notifying both existing and new users about the feature, taking them through Google sign in and authorization, automatically creating folders and files on their Google Drive to keep it in sync with their Smart Folders, and instrumenting the UI for analytics. Not only did the implementation require a thorough understanding of the existing app, but its design needed to accomodate any future inclusion of other cloud storage services and be rolled out without any disruption to existing users.

The Implementation:
Users are prompted to sign up within both the Chrome extension and the web app. The signup process takes them through Google’s OAuth flow to authorize access to their Google Drive and create the necessary folders. These folders mirror the structure of the user’s Folio email organization (Gmail labels or Outlook folders) so attachments can be easily found and accessed.

The Google Drive API is used for the creation, update, and listing of folders and files. Calls to the API are made both in real time when triggered by user action, and in scheduled jobs for larger requests. Additionally, Google OAuth API calls are made when authorizing access to the user’s Google Drive account.

Usage events are instrumented with a combination of Mixpanel, SegmentIO, Intercom, and Google Tag Manager to provide valuable usage information.

Although the project initially uses Google Drive for cloud storage, the architecture allows for future integrations with other cloud based storage services. It also abstracts how API permissions are handled so that users can have authorizations from multiple, and even different, services (for example, a user can use Office365 for email and Google Drive for cloud storage). This necessitated database schema changes and some refactoring of existing code, all without incurring any downtime.

In addition, the project included full test coverage of the new functionality, both on the frontend and the backend. Clockspring was able to successfully complete the development, approval, and roll out of this feature without any disruption to Folio’s existing customers.

The Requirements:
  • Architect and implement all necessary database schema changes, backend API integration, frontend interactive elements, Rails specs and Javascript tests
  • Google Drive API implementation for the storage, retrieval, and updating of files and folders
  • Google Drive OAuth to request appropriate permission scopes through Google’s login
  • Sync Gmail / Office365 email attachments with Google Drive in real time and in scheduled jobs
  • Build to allow future integration of other cloud based storage services such as Dropbox and Office365 OneDrive
  • Roll out without any disruption to current users
The Technologies Used: