- Prosyo Docs
- Integrations
- HubSpot
On this page
Send Prosyo prospects to HubSpot as contacts. Stages, first-touch lines and custom fields come along, using a field map you choose.
What syncs#
- New prospects become HubSpot contacts, matched by email.
- Stage changes move the contact's lifecycle stage forward.
- Enrichment and first-touch lines update the contact.
- Replies update the contact.
Prospects without an email are skipped. HubSpot matches on email, and Prosyo never invents one.
Your HubSpot data is safe#
- Prosyo fills empty fields on a contact that already exists. A value already in HubSpot stays, unless you turn on Replace values already in HubSpot.
- Prosyo never clears a HubSpot field.
- A lifecycle stage only moves forward. A customer is never set back to lead, and a stage your portal created itself is left alone.
- If HubSpot is down for a while, updates are retried for hours and sent once it is back.
1. Connect HubSpot#
You need to be a workspace owner or admin in Prosyo, and allowed to install apps in HubSpot.
- Go to Integrations and click the HubSpot card. Its details open in a panel on the right.
- Click Connect HubSpot, then Connect with HubSpot.
- Pick your HubSpot account and approve access. Prosyo asks to read and write contacts and to read contact property names.
- You land back on Integrations with "HubSpot is connected." and the HubSpot panel open, ready for the field map.
Or use a private app token#
If your HubSpot account already has a private app for Prosyo, you can paste its token instead.
- In HubSpot, open Settings → Integrations → Private Apps (in newer accounts: Development → Legacy apps).
- Create a private app named Prosyo with these scopes:
crm.objects.contacts.readcrm.objects.contacts.writecrm.schemas.contacts.read
- Copy the access token (it starts with
pat-). - In Prosyo, open the HubSpot card, click Connect HubSpot, paste the token under Or paste a private app token, and click Connect.
Prosyo stores tokens encrypted and never shows them again.
2. Map fields#
Once HubSpot is connected, the panel shows Field mapping. Match each Prosyo field to a HubSpot property, and use Add field for more rows. The default map is:
| Prosyo field | HubSpot property |
|---|---|
Email (email) | |
| First name | First name (firstname) |
| Last name | Last name (lastname) |
| Title | Job title (jobtitle) |
| Phone | Phone number (phone) |
| Company name | Company name (company) |
| Website | Website URL (website) |
| Pipeline stage | Lifecycle stage (lifecyclestage) |
| First-touch line | Message (message) |
You can also map Full name, LinkedIn URL, Company domain, Source, Last replied at and any of your custom fields.
Turn on Replace values already in HubSpot if you want HubSpot to always match Prosyo. Leave it off to keep what your team typed in HubSpot.
Click Save mapping.
Stage → lifecycle stage#
| Prosyo stage | HubSpot lifecycle stage |
|---|---|
| New | Subscriber |
| Contacted | Lead |
| Replied | Marketing qualified lead |
| Interested | Sales qualified lead |
| Meeting | Opportunity |
| Customer | Customer |
| Not interested | Other (only for a contact with no stage yet) |
A stage is written only when it is later than the contact's current one. If you'd rather keep lifecycle stage fully under HubSpot's control, map Pipeline stage to Lead status (hs_lead_status) or to a custom property instead.
3. Choose events#
Under Events, pick when Prosyo writes to HubSpot, then click Save mapping. The defaults are:
- Prospect created
- Stage changed
- Prospect enriched
- Reply received
You can also tick High-intent lead and Playbook match to send the person to HubSpot (create or update the contact with your field map) when Intent marks one of your prospects as High-intent ICP or a playbook picks them up. The signal itself isn't written to HubSpot. Playbook match is sent only for Intent playbooks that have Send each match to Slack, HubSpot or your webhook when those are connected turned on.
4. Test#
Click Test connection to check that Prosyo can reach your HubSpot account. It does not change any contact. Recent deliveries shows the latest syncs, and Last delivery error shows what went wrong if one failed.
Troubleshooting#
| Problem | Fix |
|---|---|
| Needs attention on the HubSpot card | A recent sync failed. Open the card and read Last delivery error. If access expired or the app was removed in HubSpot, click Reconnect HubSpot. Your field map and events are kept, and updates that could not be sent are sent again. |
| 401 / unauthorized with a private app token | The token was deleted or rotated in HubSpot. Click Reconnect HubSpot to approve access in HubSpot instead. Your field map and events are kept. |
| 403 / missing scopes | Add the three scopes above to the private app. Then click Disconnect and connect again with the new token, or click Reconnect HubSpot. |
| Contact not created | The prospect has no email. |
| A HubSpot field did not change | It already had a value. Turn on Replace values already in HubSpot if Prosyo should overwrite it. |
| Property not in the list | Check that the property exists on Contacts in HubSpot, then reopen the mapping. |
Disconnect#
Open the HubSpot card on Integrations and click Disconnect. Contacts already in HubSpot stay there, but Prosyo forgets the field map and events. To fix a broken connection, use Reconnect HubSpot instead. To fully revoke access, also remove Prosyo (or the private app) in HubSpot.
