Beschreibung
Connect CF7 to HubSpot by ProCoders is a powerful plugin that connects WordPress Contact Form 7 directly with your HubSpot account, automating your workflow and enhancing lead management. With this plugin, every submission from Contact Form 7 is instantly and securely synced with HubSpot, allowing you to manage contacts, track submissions, and engage with your audience without manual data entry.
Third-Party Service Integration:
This plugin integrates with HubSpot, a third-party service, to manage and sync data from Contact Form 7 submissions. By using this plugin, data collected through Contact Form 7 will be sent to HubSpot for processing and storage. Please be aware that by using this plugin, you agree to the terms of service and privacy policy of HubSpot.
This plugin interacts with the HubSpot service and sends data to it. Specifically, our plugin sends requests to the following URLs:
– https://api.hubapi.com
– https://api.hsforms.com
Please read HubSpot’s Privacy Policy carefully to understand what data is collected and how it is used.
HubSpot’s Privacy Policy: https://legal.hubspot.com/privacy-policy
HubSpot Terms of Service: View Terms – https://legal.hubspot.com/terms-of-service
Features include:
– Send one Contact Form 7 form to several HubSpot objects at once: a Contact, a Company, a Deal and a Ticket, each with its own field mapping and associated with an object above it. Or send it to a single HubSpot form.
– Contacts: update the existing contact when the email already exists, or always create a new one.
– Deals: choose the pipeline and the deal stage.
– Attach uploaded files to the records that map them.
– Consent: block a submission when the email is unsubscribed from the subscription types you choose, or when HubSpot cannot be asked.
– Support for custom fields in HubSpot, with property lists you can refresh from Settings.
– Logs of failed, blocked and retried submissions, with personal data masked, and error emails that do not flood your inbox.
– Optional asynchronous submissions, UTM and click id attribution, and HubSpot journey events.
– Admin screens in the WordPress look: a forms list with status tabs and search, and one card per HubSpot object on the mapping screen.
Several HubSpot objects per form (since 1.4)
On a form’s mapping screen each HubSpot object is one card, titled „#1 Contact“, „#2 Deal“ and so on. Add an object, pick its type, map the Contact Form 7 fields to its HubSpot properties, and choose which object above it it is associated with. A HubSpot form target stays a single object. Fields you leave unmapped are listed under the card („Not sent: …“) so nothing is missed by accident.
Logs and error emails (since 1.4)
Failed, blocked and retried submissions are stored in their own database table with personal data masked, and kept for 30 days (filter cf7hs_log_ttl_days). On the Logs screen you can search, switch between results (Failed, Blocked, Retried, Warning) and filter by form; an entry opens right under its row with the masked request, the properties HubSpot rejected highlighted, and a „Copy details“ button for support. Error emails carry a masked summary and a link to the entry. Repeats of the same kind of failure within an hour are counted rather than mailed, and summarised when the hour ends (filter cf7hs_error_email_throttle_seconds).
Asynchronous HubSpot submissions (optional, since 1.3)
Want forms to feel instant for visitors while HubSpot catches up behind the scenes? Turn on async mode in the plugin settings. The visitor’s submission is accepted by Contact Form 7 without waiting on HubSpot network round-trips; syncing runs as a background job so thank-you pages and redirects stay snappy even when APIs are slow or busy.
The queue uses Action Scheduler when it is available on your site (for example alongside WooCommerce), which is built for reliable background work. If Action Scheduler is not present, the plugin falls back to WordPress cron with a sensible delay. Failed jobs are retried automatically with exponential backoff (up to three attempts), reducing the chance of losing a lead to a temporary outage or rate limit. Contacts, deals, HubSpot forms, and file attachments are supported in async mode the same way as synchronous processing—attachments are staged safely for the worker.
Privacy
Attribution cookies are off by default. When you turn on „Attribution cookies“ in the plugin settings, the site stores the campaign parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content) and ad click ids (gclid, fbclid) of the visitor’s landing page in first-party cookies named cf7hs_* for up to 30 days (some browsers shorten this). When a consent plugin supports the WP Consent API, the cookies are set only after marketing consent. The values are sent to HubSpot with a contact form the visitor submits. Marketing cookies may need visitor consent where the law requires it.
Screenshots




Installation
- Download the plugin from WordPress.org and unzip it.
- Upload the ‚connect-cf7-to-hubspot‘ folder to your ‚/wp-content/plugins/‘ directory.
- Activate the plugin through the ‚Plugins‘ menu in WordPress.
- Navigate to the plugin settings page and follow the on-screen instructions to connect your HubSpot account.
For WordPress Multisite: 1. Upload and install the plugin zip file via ‚Network Admin‘ -> ‚Plugins‘ -> ‚Add New‘. 2. Do not network-activate. Instead, activate the plugin on a per-site basis for precise control.
FAQ
-
Could you answer to some question I have about your plugin?
-
For more detailed assistance or any additional queries, please feel free to contact us through
our website: https://procoders.tech/contacts/ -
Is Contact Form 7 HubSpot integration easy with your plugin?
-
Yes, our plugin makes it incredibly easy to integrate Contact Form 7 with HubSpot. We’ve designed it to be
user-friendly and streamlined, allowing you to seamlessly sync your
form submissions with your HubSpot account without any hassle. -
How do I obtain a HubSpot Access Token?
-
HubSpot no longer lets you create new private apps (since 28 September 2026 for new accounts, and 26 October 2026 for existing ones). Use a service key instead; a token from an existing private app keeps working.
– Log in to HubSpot as a super admin and create a service key: https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/account-service-keys
– Give it these scopes: crm.objects.contacts, crm.objects.companies, crm.objects.deals, tickets, crm.schemas.contacts, crm.schemas.deals, forms, files and communication_preferences.read.
– If you use journey (custom behavioral) events (cf7_form_submitted, cf7_form_synced, cf7_form_sync_failed), also add analytics.behavioral_events.send and behavioral_events.event_definitions.read_write, create matching custom event definitions in HubSpot, and enable Journey events in the plugin settings.
– Paste the key into CF7 to HubSpot Settings Access token and click Connect. The token is saved only after HubSpot accepts it. -
Where is the source of the compiled admin CSS?
-
The admin stylesheets in src/Admin/Assets/build/ are compiled from the SCSS in src/Admin/Assets/scss/, which ships with the plugin. They are built with Dart Sass 1.105.1 and @wordpress/base-styles 13.3.0:
sass –no-source-map –style=compressed –load-path=node_modules src/Admin/Assets/scss:src/Admin/Assets/build -
Can I send one form to several HubSpot objects?
-
Yes. On the form’s mapping screen click „Add an object“ and pick a Company, Deal or Ticket (or another Contact). Each object has its own field mapping and can be associated with an object above it.
-
Where do I see why a submission did not reach HubSpot?
-
Open CF7 to HubSpot Logs. Click an entry to see what HubSpot answered and which properties it rejected. Personal data is masked; use „Copy details“ to share the entry with support.
-
How can I contribute to the plugin?
-
We appreciate your interest in contributing to our plugin! If you’d like to get involved, whether it’s by reporting bugs, suggesting new features, or proposing enhancements, please reach out to us at hello@procoders.tech. We value community input and are always looking for ways to improve our products.
-
What is Contact Form 7?
-
Contact Form 7 is a popular and highly customizable WordPress plugin that allows you to create and manage various types of contact forms on your website. It offers a wide range of features and integrations, making it a versatile solution for collecting user data and facilitating communication.
-
Is Contact Form 7 GDPR compliant?
-
Yes, Contact Form 7 is designed to be GDPR (General Data Protection Regulation) compliant. It includes features and settings that help website owners comply with GDPR requirements, such as the ability to obtain explicit consent from users before collecting their data and providing options for data retention and erasure.
-
Is HubSpot a CRM or marketing tool?
-
HubSpot is a comprehensive platform that offers both CRM (Customer Relationship Management) and marketing tools. While it started as a marketing automation solution, HubSpot has evolved into an all-in-one suite that combines CRM capabilities with marketing, sales, and customer service functionalities.
-
Can I put deals into a specific HubSpot pipeline?
-
Yes. Add a Deal object to the form’s mapping and choose its pipeline and deal stage.
-
HS plugin is „splitting“ a form submission into two in HubSpot
-
Try to disable „Collect data from website forms“ in „Non-HubSpot forms“ options
Rezensionen
Mitwirkende und Entwickler
„Connect CF7 to HubSpot“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:
MitwirkendeÜbersetze „Connect CF7 to HubSpot“ in deine Sprache.
Interessiert an der Entwicklung?
Durchstöbere den Code, sieh dir das SVN-Repository an oder abonniere das Entwicklungsprotokoll per RSS.
Änderungsprotokoll
1.4.0
- Send one form to several HubSpot objects: Contact, Company, Deal and Ticket, each with its own mapping and an association with an object above it. A HubSpot form target stays a single object.
- Contacts: one switch chooses between updating the contact whose email already exists and always creating a new one.
- Uploaded files are attached only to the objects whose mapping includes them, in sync and async mode.
- Consent is checked on the CRM path too: a CRM form can choose the subscription types it enforces, and a submission is blocked when the email is unsubscribed or HubSpot cannot be asked.
- Opt-in first-touch attribution cookies that wait for marketing consent through the WP Consent API.
- The access token is saved only after HubSpot accepts it.
- Logs move from debug.log to a database table with personal data masked, kept for 30 days. The Logs screen has search, result tabs, a form filter, and entries that open under their row.
- Error emails carry a masked summary and a link to the log entry; repeats of the same kind within an hour are counted and summarised instead of mailed one by one.
- Redesigned admin screens in the WordPress look: the forms list (status tabs, search, bulk pause and resume), the mapping screen and Logs, with layouts for phones.
- Uninstall (when „Delete data on uninstall“ is on) also removes the log table and the email throttle data.
- Requires WordPress 5.9 or later (PHP 8.0 was already required).
1.3.8
- Fixed a fatal error on the forms screen („Call to a member function set_template_data() on null“) that appeared whenever the HubSpot form sync failed: the screen now shows the reason instead of a white page. The usual cause is an access token without the
formsscope. - Admin screens no longer break when template data is missing; they show a notice and keep the rest of the page usable.
- Fixed the admin notice box rendering empty when a message carried no text.
- Error Logs screen: the „Clear logs“ button moved above the log output so it stays reachable, and the log box now scrolls at a fixed height instead of stretching the page.
1.3.5
- Fixed HubSpot property lists never refreshing: schemas were cached for 12 hours with no way to invalidate them, so properties created, renamed or deleted in HubSpot did not reach the mapping dropdowns.
- Added a „Refresh HubSpot properties“ button on the Settings screen to clear the cached schemas on demand.
- Saving an access token now clears the cached schemas, so the connection test always reaches HubSpot.
- Settings screen regrouped: the properties cache and the Journey Events / background processing options now sit in their own sections.
1.3.4
- Fixed the Settings link.
1.3.3
- Simplified Journey Events settings to a single global on/off toggle.
- Restored and stabilized journey behavioral events (cf7_form_submitted, cf7_form_synced, cf7_form_sync_failed) for both sync and async flows.
1.3.2.1
- UTM and click ID attribution (query/cookie) merged into HubSpot payload only for mapped fields.
- Journey behavioral events: cf7_form_submitted, cf7_form_synced, cf7_form_sync_failed (sync and async; enable in Settings; filters cf7hs_journey_event_name, cf7hs_journey_events_enabled).
1.3.2
- Small Improve
1.3.1
- Fixed issue with contact update
- Settings: configurable WordPress cron delay when async mode is on and Action Scheduler is not available; admin notice explains fallback behaviour (filter cf7hs_async_wp_cron_delay_seconds still supported)
1.3
- Add optional async background processing for HubSpot submissions (via Action Scheduler or wp_cron fallback)
- Improve GDPR/consent handling and resubscribe UX for blocked submissions
1.2.1
- Fix file attachment handling and other fixes
1.2.0
- Data privacy support (Legitimate interest – Lead)
1.1.9
- Fix forms sync
1.1.8
- Fix contact update
1.1.7
- Fix validation
1.1.6
- Update FAQ
1.1.4
- Add German and Hebrew languages
1.1.4
- Add screenshots section and update README format
1.1.3
- Fix versioning
1.1.2
- Fix form submission
1.1.1
- Fix tickets
1.0.0
- Initial release. Offers seamless integration between Contact Form 7 and HubSpot for efficient lead management.
