CMS Developer Tools

Table of contents
Close

How to connect to HubSpot CMS via FTP

HubSpot supports uploading and downloading template files, stylesheets, Javascript files, and File Manager assets via FTP. This capability replaces the deprecated Uploader toolCustom modules can be created and edited via FTP with the new Design Manager

General instructions

The HubSpot FTP service runs on port 3200 at the hostname ftp.hubapi.comThe initial connection is in cleartext, but before the login password is sent, the connection MUST be upgraded to TLS. Clients should be configured for FTP-SSL with explicit auth. The login and password is the same as your app.hubspot.com login. Passive mode must be enabled.

Alternatively, you can connect with Implicit SSL on port 3201. In addition to the control port, the HubSpot FTP service uses a range of data ports. Each transfer gets randomly assigned a data port for the upload or download. In case you need to open up data ports for company firewalls, HubSpot's data ports are in the range 3203-3299.

There are two methods for providing secure FTP services - FTPS (FTP with SSL) and SFTP. HubSpot supports FTPS only.

Connect using an FTP client

Follow these steps to connect with an FTP client. The screenshots are from Fetch, an FTP client for Mac OS X. You can see examples of other FTP clients below. You can also connect with cURL.

Edit connection settings

Ensure that the connection is set to use TLS/SSL.

Enter server

In the Host or Server field, enter ftp.hubapi.com.

Enter port

Enter 3200 for the port. If you prefer Implicit SSL, the port should be set to 3201.

Enter credentials

Enter your HubSpot username and password. You must be a HubSpot user in an account to connect via FTP.

Connect

Connect to the server. Once successfully connected, you should see a folder called "portals."

Directory structure

In the "portals" folder contains a HubID directory for each portal that your user is authorized in. Each of these HubID directories contains three subfolders:

  • files - assets uploaded to File Manager.
  • templates - templates, CSS, and Javascript coded files found in Design Manager.
  • modules - a complete list of all custom modules created in the Design Manager.

Directory

If you've opted into the new Design Manager, you'll see a "designs" folder that contains your folders, coded templates, and modules.

The assets in the "designs" folder will match the folder structure in your Design Manager in the finder. Changes made to the folder structure or individual assets in FTP will be reflected in your Design Manager.

ftp-2

To create a new coded module, make a new directory with the .module extension. This will automatically create a new custom module. New modules created via FTP will be compatible with page and blog templates by default.

At this time the designs folder does not support drag and drop templates.

Other FTP client examples

Cyberduck

Cyberduck

Filezilla

filezilla

Transmit

At this time, creating new directories, using Transmit or Coda, is not supported. Transmit names new directories "untitled folder", before renaming them, and HubSpot does not allow spaces in directory names. If you would like to use this FTP client, you can create and name the directories locally (without spaces) and then upload them via FTP.

Connect-Transmit

Coda

At this time, creating new directories, using Transmit or Coda, is not supported. Coda names new directories "untitled folder", before renaming them, and HubSpot does not allow spaces in directory names. If you would like to use this FTP client, you can create and name the directories locally (without spaces) and then upload them via FTP.

Connect-Coda

Interarchy

From the Preferences menu, select  Security and change FTP uses SSL (AUTH) from "Never" to "If Available".

Interarchy

Interarchy1

WinSCP

CuteFTP

Sublime SFTP

sublime-ftp

Connect with cURL

You can also connect with cURL using this command:


curl -v ftp://ftp.hubapi.com:3200/ --ftp-ssl --user yourlogin@yourcompany.com 

Local HubL Server + FTP

You can use the HubL Local Server with an FTP client to sync both the local and remote 'custom' directories. This workflow allows you to develop templates and CSS files locally, while still uploading them to your HubSpot account. To learn more, check out this article.

Troubleshooting tips

If you are unable to connect via FTP, check the log messages for the client. If your settings match those described above and the connection is consistently timing out, the connection is mostly being blocked by your network firewall. Make sure your firewall is not blocking the ports used by HubSpot's FTP.

Certain FTP clients such as Transmit are unable to create new template directories. Additionally, when creating directories in the "templates" folder, you are limited to creating directories in the custom/type_of_file/ directory to match the file structure that currently exists in Design Manager. If you've opted into the new Design Manager and have access to the "designs" folder, you can create new directories anywhere you like.

Learn more about local development with HubSpot CMS

There is a good forum thread on this topic  👉  "Can you set up local development on HubSpot CMS?"

You can also ask questions to the community in the CMS Developer Slack.