What changes after the HubSpot version 3 migration

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:

ScopePurpose
crm.objects.contacts.readRead contact data
crm.objects.contacts.writeCreate and update contacts
crm.lists.readRead lists
crm.lists.writeAdd 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.