PHPackages                             itx/hubspot-forms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. itx/hubspot-forms

ActiveTypo3-cms-extension[API Development](/categories/api)

itx/hubspot-forms
=================

it.x Hubspot Forms Extension

2.0.2(2w ago)01.8k↑226.7%GPL-2.0-or-laterPHP

Since Nov 8Pushed 1w ago2 watchersCompare

[ Source](https://github.com/itx-informationssysteme/hubspot-forms)[ Packagist](https://packagist.org/packages/itx/hubspot-forms)[ RSS](/packages/itx-hubspot-forms/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (3)Versions (21)Used By (0)

Hubspot Forms Extension for TYPO3
=================================

[](#hubspot-forms-extension-for-typo3)

This extension will help displaying Hubspot forms in our pages by **dynamically** loading in any given form using the HubSpot API

Installation (Composer)
-----------------------

[](#installation-composer)

To install the extension using composer, run `composer req itx/hubspot-forms`

Configuration
-------------

[](#configuration)

- Create a HubSpot access token with the following scope: `forms`
- To start using the extension, you will first have to set your **Access Token** and **PortalID** in the TYPO3 Backend `Settings > Extension Configuration > hubspot_forms`
- Alternatively you can configure these settings inside your `AdditionalConfiguration.php` file located under `public/typo3conf/AdditionalConfiguration.php`e.g.

```
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['hubspot_forms']['accessToken'] = 'Your Access Token';
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['hubspot_forms']['portalID'] = 'Your PortalID';
```

- FriendlyCaptcha support has been added. To use it, just add your sitekey and secret from FriendlyCaptcha to the according setting fields and then toggle the captcha on in the plugin settings

Usage
-----

[](#usage)

- First, add a General Plugin content element where you want your form to be on your website

[![{917CD7C6-1080-46A7-B40E-BB8031E1FD3D}](https://private-user-images.githubusercontent.com/128425620/499270738-f455f443-f576-4b9f-ab3f-ea90d21a01f7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcwNzM4LWY0NTVmNDQzLWY1NzYtNGI5Zi1hYjNmLWVhOTBkMjFhMDFmNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMzc4YjkzNGExMmFlY2I5Y2JmNDRmZTBkM2EwZGRmMDEzYTg4ZmUzZjVhOTMxNzMyZDRlNDIyOTlkMzlmNjY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.OsGNENUqNErkGBeE22rNvaeBAgfARJzD_qQ_U0yOOrE)](https://private-user-images.githubusercontent.com/128425620/499270738-f455f443-f576-4b9f-ab3f-ea90d21a01f7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcwNzM4LWY0NTVmNDQzLWY1NzYtNGI5Zi1hYjNmLWVhOTBkMjFhMDFmNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMzc4YjkzNGExMmFlY2I5Y2JmNDRmZTBkM2EwZGRmMDEzYTg4ZmUzZjVhOTMxNzMyZDRlNDIyOTlkMzlmNjY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.OsGNENUqNErkGBeE22rNvaeBAgfARJzD_qQ_U0yOOrE)- After that, go to the `Plugin` Tab in the settings of your new content element. Here, you can select which form you want to load from your given HubSpot Portal in Form of a select list

[![{FA418E9B-F47B-4A14-9252-C2F07EA94320}](https://private-user-images.githubusercontent.com/128425620/499272204-a68af43f-1853-4867-8770-a31ac981f625.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcyMjA0LWE2OGFmNDNmLTE4NTMtNDg2Ny04NzcwLWEzMWFjOTgxZjYyNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZDE5Y2MzOGVkZmFlNGNjMDg3NThjNDBiNjAzZWUwNjgxZWVjZDM5MjZkMDgyNTMzZWE5MzE5N2UxMzM0NWUxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.5Oxw3B2M1tRBu25islcAicAdfq3EMm-2guPmxWkQFYs)](https://private-user-images.githubusercontent.com/128425620/499272204-a68af43f-1853-4867-8770-a31ac981f625.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcyMjA0LWE2OGFmNDNmLTE4NTMtNDg2Ny04NzcwLWEzMWFjOTgxZjYyNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZDE5Y2MzOGVkZmFlNGNjMDg3NThjNDBiNjAzZWUwNjgxZWVjZDM5MjZkMDgyNTMzZWE5MzE5N2UxMzM0NWUxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.5Oxw3B2M1tRBu25islcAicAdfq3EMm-2guPmxWkQFYs)- After selecting your form, switch over to the frontend to see it all loaded in

[![{D810CF8E-ABC6-4FF2-96B9-01D9656FFDDC}](https://private-user-images.githubusercontent.com/128425620/499272738-9f6b182a-aaa4-4c21-b38a-237c101e4284.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcyNzM4LTlmNmIxODJhLWFhYTQtNGMyMS1iMzhhLTIzN2MxMDFlNDI4NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNzIzMGZmMjA3ZTYyZDE2OTE3ZjZiZDkzYjE5OTFmNDA5ZjUwN2UxM2RiOGRhNjY2NDNlMWFjMjdmNjY3NWU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.0MjpessVHqRaFQaZujg_1BZRlr_5TBzgTRa586tEnqA)](https://private-user-images.githubusercontent.com/128425620/499272738-9f6b182a-aaa4-4c21-b38a-237c101e4284.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjcyNzM4LTlmNmIxODJhLWFhYTQtNGMyMS1iMzhhLTIzN2MxMDFlNDI4NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNzIzMGZmMjA3ZTYyZDE2OTE3ZjZiZDkzYjE5OTFmNDA5ZjUwN2UxM2RiOGRhNjY2NDNlMWFjMjdmNjY3NWU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.0MjpessVHqRaFQaZujg_1BZRlr_5TBzgTRa586tEnqA)- There is an option to only simulate form submissions in the `Extension Settings`. This toggle disables the line of code responsible for the POST request to HubSpot after submitting a form

[![{0F270FED-AAF6-4222-A654-8309983E74A7}](https://private-user-images.githubusercontent.com/128425620/499273129-f49dfb3b-af27-4242-91a3-3f37ec8f9161.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjczMTI5LWY0OWRmYjNiLWFmMjctNDI0Mi05MWEzLTNmMzdlYzhmOTE2MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MTBlYTY1MDc5ZTNlZTVjMDZlZWU5MTE3NWVjMDQyMzQ3M2NkYjk4OWJjM2FlMmFlZDlmNzM3ZDA0MGEyZTc5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.osJpZ8XCtHs1gzT0SIHfu1eO64p9xrMEGkYR4RDVEEs)](https://private-user-images.githubusercontent.com/128425620/499273129-f49dfb3b-af27-4242-91a3-3f37ec8f9161.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI4NjM1MTIsIm5iZiI6MTc4Mjg2MzIxMiwicGF0aCI6Ii8xMjg0MjU2MjAvNDk5MjczMTI5LWY0OWRmYjNiLWFmMjctNDI0Mi05MWEzLTNmMzdlYzhmOTE2MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYzMFQyMzQ2NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MTBlYTY1MDc5ZTNlZTVjMDZlZWU5MTE3NWVjMDQyMzQ3M2NkYjk4OWJjM2FlMmFlZDlmNzM3ZDA0MGEyZTc5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.osJpZ8XCtHs1gzT0SIHfu1eO64p9xrMEGkYR4RDVEEs)- Additionally, you can send emails with the contents of the form submissions if you configure it in the `Plugin` tab of the content element

Styling
-------

[](#styling)

- Every field type of the forms is rendered by a partial, if you want to individually style your form fields, overwrite the partials and add your own styling
- The same goes for the template of the optional mail

Known Issues
------------

[](#known-issues)

### Multiple Multiple-Checkboxes

[](#multiple-multiple-checkboxes)

- When a form contains more than one multiple checkbox field, if any checkbox of any of the fields is checked, the browser won't prompt you to check at least one of the checkboxes in each field
- Submitting the form while there isn't at least one checkbox checked in the required fields causes TYPO3 to throw a Bad Request Error
- The error gets caught, so the site continues to operate, but the form will not be sent to HubSpot

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance97

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Recently: every ~29 days

Total

16

Last Release

19d ago

Major Versions

1.3.3 → 2.0.02026-06-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/ff61ce4c7201994aa438de7df8a257cd9baf181a7496634b19ebbfd0405c2bd3?d=identicon)[itx](/maintainers/itx)

---

Top Contributors

[![paeddym](https://avatars.githubusercontent.com/u/128425620?v=4)](https://github.com/paeddym "paeddym (86 commits)")[![benjasper](https://avatars.githubusercontent.com/u/28984253?v=4)](https://github.com/benjasper "benjasper (4 commits)")

---

Tags

hubspothubspot-apihubspot-formtypo3typo3-extensiontypo3-v11typo3-v12typo3-v13

### Embed Badge

![Health badge](/badges/itx-hubspot-forms/health.svg)

```
[![Health](https://phpackages.com/badges/itx-hubspot-forms/health.svg)](https://phpackages.com/packages/itx-hubspot-forms)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[hn/typo3-mcp-server

TYPO3 extension that provides a Model Context Protocol (MCP) server for interacting with TYPO3 pages and records

8523.4k1](/packages/hn-typo3-mcp-server)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[pagemachine/searchable

TYPO3 extension to index and search content with Elasticsearch

1139.9k](/packages/pagemachine-searchable)[thieleundklose/autotranslate

This extension provides automatic translation of pages and content elements via DeepL API.

1213.7k](/packages/thieleundklose-autotranslate)[kitodo/presentation

Base plugins, modules, services and API of the Digital Library Framework. It is part of the community-based Kitodo Digitization Suite.

467.3k6](/packages/kitodo-presentation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
