HubSpot Integration
Push Prevenue signal state into HubSpot CRM properties for workflow automation.
The HubSpot integration is a push-only destination. Prevenue writes account-level signal state to HubSpot company properties so HubSpot workflows, lists, scoring, and sales or success routing can react to Prevenue recommendations.
Prevenue does not pull HubSpot data in this version. It does not read companies, fetch associated contacts, backfill CRM objects, listen to HubSpot webhooks, or prove outcomes from CRM resolution fields.
What Prevenue Writes
Company is the required account-level target. Contact updates are optional and only run when Prevenue already has an explicit HubSpot contact ID.
| HubSpot object | Required identity | Behavior |
|---|---|---|
| Company | hubspot_company_id | Updates the main Prevenue signal properties. |
| Contact | hubspot_contact_id | Updates account-signal mirror properties when the ID is present. |
| Deal | Not supported | Deal sync is out of scope for V1. |
Prevenue does not resolve records by domain or email in V1. Missing company or contact identity records a skipped or partial delivery row instead of turning the provider into an incoming CRM dependency.
Requirements
To connect HubSpot, you need:
- A Prevenue workspace admin account.
- A HubSpot user with permission to install apps and manage CRM properties.
- A HubSpot account where Prevenue is allowed to create CRM properties and safe test records.
Setup
- In Prevenue, open
Settings > Integrations > HubSpot. - Click Connect.
- Choose the HubSpot account you want to connect.
- Review the requested permissions and approve the connection.
- Prevenue creates the required HubSpot CRM property group and properties.
- Prevenue creates or reuses safe sample company/contact records and writes sample signal state to verify setup.
The sample company is named Prevenue Test Company - Safe to Delete, and the sample contact is clearly labeled as a Prevenue test contact.
If HubSpot permissions block setup verification, use Repair setup after updating the app permissions. The raw property sync and existing-record test actions are diagnostics for support, not normal setup steps.
Requested Permissions
Prevenue requests the minimum HubSpot permissions needed for the push-only destination:
| Scope | Why Prevenue needs it |
|---|---|
oauth | Connects the workspace to HubSpot through OAuth. |
crm.objects.companies.write | Writes account-level signal state to HubSpot companies. |
crm.objects.contacts.write | Optionally writes account-signal mirror fields to known contacts. |
crm.schemas.companies.write | Creates and maintains Prevenue company properties. |
crm.schemas.contacts.write | Creates and maintains optional Prevenue contact properties. |
Company Properties
Prevenue provisions these company properties automatically during setup. The list is here for workflow building and troubleshooting.
| Property | Type | Purpose |
|---|---|---|
prevenue_account_key | Text | Stable Prevenue account key. |
prevenue_active_motion | Text | Current motion: grow, save, convert, or watch. |
prevenue_signal_type | Text | Latest signal type. |
prevenue_signal_priority | Text | Latest signal priority. |
prevenue_signal_status | Text | Latest signal lifecycle status. |
prevenue_signal_confidence | Number | Confidence score from 0 to 1 when available. |
prevenue_recommended_action | Text | Recommended next action. |
prevenue_signal_reason | Multi-line text | Short reason or evidence summary. |
prevenue_signal_id | Text | Prevenue signal ID for audit. |
prevenue_last_signal_at | Datetime | Last time Prevenue wrote signal state. |
prevenue_signal_expires_at | Datetime | Suggested stale timestamp for workflow cleanup. |
Contact Properties
Prevenue also provisions these optional contact properties. They are only written when Prevenue already has an explicit HubSpot contact ID.
| Property | Type | Purpose |
|---|---|---|
prevenue_account_key | Text | Associated Prevenue account key. |
prevenue_account_motion | Text | Account-level motion. |
prevenue_account_signal_type | Text | Account-level signal type. |
prevenue_account_signal_priority | Text | Account-level signal priority. |
prevenue_account_signal_status | Text | Account-level signal status. |
prevenue_account_recommended_action | Text | Account-level recommended action. |
prevenue_account_signal_id | Text | Associated Prevenue signal ID. |
prevenue_account_signal_at | Datetime | Last time Prevenue wrote contact signal state. |
Funnel and Signal delivery
After HubSpot is connected, select HubSpot for the approved Funnel follow-up or Signal delivery. Prevenue will update HubSpot when:
- the Funnel or Signal is routed to HubSpot;
- the account has an explicit HubSpot company ID;
- the HubSpot destination is not disabled.
Contact writes are attempted only when an explicit HubSpot contact ID is also present.
Disconnecting HubSpot
To stop HubSpot delivery, open Settings > Integrations > HubSpot in Prevenue and disable the destination. You can also remove the Prevenue app from HubSpot from your connected apps settings.
Disconnecting stops future Prevenue writes. It does not delete HubSpot properties, workflow history, or sample CRM records that were already created.
Credential Boundaries
Prevenue stores the HubSpot refresh token encrypted through server-side credential helpers. destinations.config contains only safe metadata such as Hub ID, scopes, timestamps, and delivery status. OAuth tokens and provider responses should not appear in screenshots, logs, support messages, or Linear comments.