Case Studies

Browse summaries of client engagements in different workflow automation projects.

Create web banners automatically by injecting text from Google Sheets into your Google Slides and exporting them as images.

I needed to sync my Upwork appointment scheduling with my multiple calendars without giving Upwork direct access to my calendars' events. I created a new Google account with a calendar that uses a Google Apps Script to aggregate all of my busy time slots from all my calendars.

This Google Apps Script pulls PayPal transactions into Google Sheets using the PayPal transactions API. Clients can run the script to pull transactions automatically every month, or pull data for custom date ranges, such as year-to-day, previous quarter, and more.

My home renovation client needed to pull home owner data from his JobNimbus CRM, and create and populate new Google Docs with that information. I created a Google Apps Script that uses the JobNimbus API to pull customer data and automate document merge jobs.

My client needed his contractors to perform onsite check-ins on a tablet using the device camera. I created a web app that enables users to snap their camera photos, upload them to Google Drive, and register their check-ins in a Google Sheet.

My client needed to merge multiple Google Sheet rows into templated Google Docs. He had many source data tabs and document templates to choose from. I created a Google Apps Script that automates data merge, and scales as more data tabs and templates are created.

The client needed a Chrome extension, which his team would use to mark their website pages for scraping. A Google Apps Script accepts the extension's page requests, scrapes the web page, and saves the data in a Google Doc based on a template.

This Google Apps Script accepts one or more website URLs to scrape. It fetches the HTML code of each URL and then extracts different data elements from each page, based on business needs, and stores the information in a Google Sheet.

This Google Apps Script queries the Twitter API, pulling data about tweets and followers into a Google Sheet, which is synched with a Google Data Studio report.

This Google Apps Script looks for new XML files in a Google Drive folder. It takes in a customizable mapping of XML entries to CSV headers, and automatically converts the XML to a CSV file. Both input and output files are then automatically moved to different Google Drive folders for subsequent automation.

Duplicating folders in Google Drive is currently a manual process in which yoy create folders one at a time. This Google Apps Script automates the process. Users select the folder they want to copy and its target folder. The web app duplicates all files and sub-folders. Users can run this process automatically on a schedule.

This Google Apps Script accepts a URL to a Google Drive folder that contains several source files (Google Sheets, Excel, and CSV). The script duplicates a sheet template, merges the source files based on a common key, and then populates the templated sheet. The output sheet includes a dashboard that summarizes key information in the spreadsheet.

This Google Apps Script looks for new IP addresses that are entered in a Google Sheet. The script validates each IP address, triggers a call to a Geo lookup API, and updates a different sheet with geographical data, such asa city, state, and internet service provider.

This Google Apps Script pulls daily stock quotes from the Yahoo Finance API. It stores the data in a Google Sheet for historical look-ups. The script updates a summary sheet by calculating today's price change in dollars and percentage.

A Google Sheet contains a summary sheet that aggregates data from 12 monthly sheets. A sidebar enables users to PDF and email a single monthly sheet or the entire workbook, with customizable email recipients, subject, and body.

This Google Apps Script pulls new entries from a Google Sheet in real-time. It uses a Zapier webhook to insert new to-do tasks into an Asana project. The payload includes a mix of standard and custom Asana fields. The script updates the sheet with Zapier IDs to eliminate duplicate inserts.

This Google Apps Script tracks meeting requests that are entered into a Google Sheet. The script creates Google Calendar event for every registration, and populates the invite with customizable title, description, guests, and more.

The client hit the limits of what Google Forms can offer. I developed a custom form management systems that enables admins to manage form questions and how they are ordered on the form. Included unlimited form branching and dynamic field prepopulation.

The project involved creating a Google Form that accepts file uploads. Upon every upload, a Google Apps Script was to validate the file against a set of validation rules that are configurable by managers. The script was to email the file submitter if errors occurred.

The script was to log every submission and its validation results. Valid files are moved to a destination folder.

The project required developing a Node.js app on Google Cloud Platform that processes campaign registrations from Google Sheets. The app reads the sheet via Google Sheets API, groups the registrations by campaign ID, and creates a CSV file for each campaign.

The file then gets uploaded to Google Cloud Storage, where the app sets access permission on the file. Finally, the app emails a download link to the CSV file.

This project involves parsing addresses in a Google Sheet along with their metadata. A Google Apps Script is launched via a custom menu. It creates a sidebar with a Google Map, converts the addresses into lat/long data points, centers the map according to the addresses, and displays the addresses as markers on the map.

Address metadata is shown when the user hovers over the marker. The map can be viewed in full-screen mode.

This project required watching a specific Gmail inbox and capturing new email messages into a Google Sheet. The Google Apps Script also pulls out sender information into a contacts sheet. Spreadsheet owners can easily view all messages by sender.

The client needed to share sales leads with channel partners in a secured way. I implemented a solution that ingests sales leads and assigned partners, builds CSV files on Google Cloud Storage, and routinely emails partners links to the CSV files.

Partners must authenticate into their Google account to download the file.

As a solo developer on the project, I've been designing, developing, releasing, and maintaining a secured Node.js Express web application on Google Cloud Platform.

The application enables managers and their partners to track the progress of sales leads and exchange messages about lead status.

Lead data is stored securely in a NoSQL database. The app offers a variety of derived data attributes that are calculated in real-time, client-side.

The project needed to routinely parse a number of RSS feeds and store key information about each feed item. I created a Google Apps Script that parses an arbitrary list of feed URLs, and updates a Google Sheet with metadata and entries of each feed.

The script can be run directly from the sheet menu or automatically using a timer.

As a solo developer on the project, I created a sophisticated workflow system that handles new file submission in Google Apps Script.

The system cuts down on the effort to validate and enrich submitted files, while providing stakeholders with a clear picture regarding the status of every submission.

A sales manager manages all sales leads in a Google Sheet. She needs to route leads to her team and have her reps follow up on the leads and update their status and information.

Instead of having the reps update the master sheet, she uses the Google Apps Script web app to distribute leads to reps and update the master sheet based on reps' local updates.

The client needed to display a series of survey questions, and then present the user with a followup question that is determined in real-time, using prior survey submissions.

I developed a Google Apps Script web app to capture responses, search for best match response, display that to the user, and record all the user's answers in the sheet.

As a solo developer on the project, I created a simple Google Apps Script that converts Google Sheet columns to a set of Google Docs.

The script uses the header row as the name of each file. All rows in each column are populated one after the other into the body of every Google Doc.

I needed an invoice generator that takes Google Sheet rows and converts them to formatted PDF files.

I created A Google Apps Script that is invoked from a custom menu option in Google Sheet and converts the sheet row into a PDF by populating the row data into a formatted Google Doc template.

In this small project, the client had a Google Sheet with two tabs (summary and detail), and required a way to expand summary rows based on date range in each of the rows. I developed a Google Apps Script to enable the client to expand the rows on demand.

In this small project, the client had a standalone website that was separate from Google GSuite.

The client needed to present a personal message to every logged-in user. Messages were stored in a two-column Google Spreadsheet column containing email addresses and the message for each user.

The project requiring fetching the right message as the user accessed the message page.

In this project, I delivered a static website generator to a MarTech vendor who needed to showcase its solutions on demo websites for different industry verticals.

The generator is fully customizable: The client generates category and product feeds for retail, financial services, and other verticals. The client modifies page template for each vertical.

The generator then uses the feeds and the templates to generate the static sites.