The Good Face Project – HubSpot Form Uploads Automation Tool
Project Details
Project Name:
The Good Face Project – HubSpot Form Uploads Automation Tool
Customer:
The Good Face Project
Tech Use:
Node.js, Express.js, Axios (HTTP & Streaming), Archiver (ZIP Generation), HubSpot Forms API, HubSpot Submissions API, HubSpot Contacts API, CORS-enabled endpoints, File system utilities (fs, path)
Website:
Overview
The Good Face Project required a streamlined way to retrieve and organize file uploads submitted through HubSpot forms. While HubSpot provides access to uploaded files through its interface, retrieving large numbers of files across many submissions can be time-consuming and difficult to manage manually.
To address this challenge, we developed a Node.js-based automation service that integrates directly with HubSpot APIs. The service fetches form submissions, retrieves associated uploaded files, and compiles them into a single downloadable ZIP archive.
The system also enhances traceability by linking uploaded files with the corresponding HubSpot contact records, ensuring teams can easily identify which files belong to which submissions.
Problem Statement
- Manual File Retrieval
Downloading uploaded files individually through the HubSpot interface becomes inefficient when dealing with large volumes of submissions. - Maintaining Contact Traceability
Uploaded files needed to remain clearly associated with the correct contact or submission to ensure accurate data tracking. - Handling Large File Volumes
The system needed to support downloading multiple files concurrently while maintaining reliable performance. - Simplifying Internal Workflows
Teams required a simple way to select a form and retrieve all uploaded files instantly, without manual sorting or complex processes.
Implementation and Capabilities
HubSpot Forms Integration
The service integrates directly with HubSpot APIs to fetch forms that contain both email fields and file upload fields.
Once a form is selected, the system retrieves all submissions using paginated API requests, ensuring the entire dataset can be processed efficiently.
Submission Processing & Contact Mapping
Each submission is analyzed to extract file metadata and identify the associated contact.
The system resolves the HubSpot Contact VID using the email address, allowing files to be renamed with contact identifiers. This ensures that every downloaded file remains clearly traceable to its source submission.
Concurrent File Downloading
To optimize performance, the system downloads uploaded files concurrently using a custom concurrency management utility.
Key features include:
- Controlled parallel downloads
- Streaming file transfers
- Temporary file storage before packaging
This approach ensures fast retrieval while maintaining system stability.
Automated ZIP Generation
Once all files are downloaded, they are packaged into a single ZIP archive using the Archiver library.
The ZIP file is streamed directly to the user for download, eliminating the need for manual file packaging.
Flexible Frontend Integration
The service exposes CORS-enabled endpoints, allowing it to be easily integrated with:
- HubSpot landing pages
- internal dashboards
- custom frontend interfaces
This enables teams to trigger downloads directly from their existing workflows.
Impact
- Reduced manual effort required to retrieve HubSpot file uploads.
- Enabled teams to download all form-uploaded files in a single action.
- Improved traceability by linking files to specific HubSpot contacts.
- Accelerated internal workflows for teams managing large submission volumes.
- Delivered a scalable automation tool that integrates seamlessly with HubSpot systems.
Subtle Agency Signal
Custom HubSpot automation tools designed to simplify complex workflows and extend HubSpot’s capabilities for marketing and operations teams.
