With Greyd Forms version 2.18.0, we have updated the HubSpot integration to version 3.
What changed?
The greyd forms HubSpot integration has been updated from HubSpot API v1 to v3. HubSpot deprecated v1 endpoints, so this update is required for continued functionality.
What do users need to do in the backend?
1. Update Private App Scopes
Your HubSpot Private App must have the following scopes enabled. Go to HubSpot > Settings > Integrations > Private Apps > Your App > Scopes and ensure these are checked:
| Scope | Purpose |
|---|---|
crm.objects.contacts.read | Read contact data |
crm.objects.contacts.write | Create and update contacts |
crm.lists.read | Read lists |
crm.lists.write | Add contacts to lists |
If your app was set up for v1 only, it may not have the crm.lists.* scopes. Without these, list operations will fail with a 403 error.
2. Re-fetch Your Lists
After the plugin update, go to greyd Settings > Forms > HubSpot and click “Update lists” (or “Get lists now”). This is required because:
- The old integration stored legacy list IDs (v1 format)
- The new integration uses v3 ILS list IDs, which are different numbers
- Re-fetching ensures your forms use the correct v3 list IDs going forward
If you skip this step, the plugin will attempt to automatically map your old list IDs to v3 IDs, but this mapping uses a heuristic that may not work for all list IDs.
3. Re-save Forms That Use HubSpot Lists
After re-fetching lists, open each form that sends data to a HubSpot list and re-select the target list from the dropdown, then save. This ensures the form stores the new v3 list ID.
4. Verify Your Access Token
Your existing access token (Bearer token) from your Private App should continue to work — no changes needed here. However, if you’re still using the old API key method (deprecated since November 2022), you must migrate to a Private App token. The integration only supports Bearer tokens.
5. Test a Form Submission
After completing the steps above, submit a test form and verify:
- The contact appears in HubSpot
- The contact is added to the correct list (if configured)
- The form entry in WordPress shows a successful status
What stays the same?
Access token: Your existing Private App access token is still valid.
Field mapping: Your existing field mappings (email, first name, last name, etc.) remain unchanged. No need to reconfigure individual fields.
Double opt-in (DOI): DOI workflows continue to work as before.