Skip to content

HubSpot

Automatically sync signing events with HubSpot CRM — find or create contacts, log timeline activities, and update custom properties when documents are signed.


RequirementDetails
WPsigner2.1.0+
HubSpot accountFree or any paid tier
HubSpot Private AppWith CRM contact scopes
WordPress5.8+
PHP7.4+

  1. Log in to your HubSpot account
  2. Go to Settings → Integrations → Private Apps
  3. Click Create a private app
  4. Name it (e.g., “WPsigner Integration”)
  5. Under Scopes, enable the following:
    • crm.objects.contacts.read — Search and read contact records
    • crm.objects.contacts.write — Create contacts and update properties
  6. Click Create app and copy the generated access token
  1. Go to WPsigner → Integrations → HubSpot
  2. Paste the Private App Token into the token field
  3. Toggle the desired sync options:
    • Create Contact — Automatically create a new HubSpot contact if the signer’s email is not found
    • Create Note — Add a timeline note to the contact record when a document is signed
    • Update Properties — Update custom HubSpot properties with signing data
  4. Click Save Settings
  5. Click Test Connection to verify the token and scopes are correct

When a signer completes a document, WPsigner triggers the following workflow automatically:

Document signed by signer
WPsigner searches HubSpot for contact by signer email
Contact not found? → Create new contact (if enabled)
Create timeline note on contact record (if enabled)
Update custom properties (if enabled)
Log event to WPsigner audit trail
StepActionDetails
1Search contactHubSpot is searched by the signer’s email address
2Create contact (if enabled)If no contact is found, a new one is created with the signer’s name and email
3Create timeline noteA note is added to the contact’s activity timeline
4Update propertiesCustom properties are updated with signing metadata
5Audit logThe sync event is logged to the WPsigner audit trail

When a document is signed, WPsigner creates a note on the contact’s timeline with the following information:

[WPsigner] Document Signed
Document: Service Agreement - John Smith
Signed by: John Smith (john@example.com)
Date: 2026-03-06 14:30:00
Status: Completed

This note appears in the contact’s Activity tab in HubSpot, making it easy for your sales or operations team to see signing history at a glance.


WPsigner can update custom HubSpot contact properties when documents are signed. This is useful for tracking signing activity, segmenting contacts, and triggering HubSpot workflows.

When Update Properties is enabled, WPsigner updates these properties automatically:

PropertyTypeValue
wpsigner_last_signedDateTimestamp of the most recent signing
wpsigner_last_documentStringTitle of the most recently signed document

Before WPsigner can update these properties, they must exist in your HubSpot account:

  1. Go to HubSpot → Settings → Properties
  2. Click Create property
  3. Set the Object type to Contact
  4. Set the Group to any group (e.g., “Contact information” or create a “WPsigner” group)
  5. Create the following properties:
Property NameInternal NameField Type
WPsigner Last Signedwpsigner_last_signedDate picker
WPsigner Last Documentwpsigner_last_documentSingle-line text
  1. Click Create for each property

The internal name must match exactly. HubSpot generates the internal name from the property name, but you should verify it matches the values in the table above. Internal names are lowercase with underscores.

Once properties are being updated, you can use them in HubSpot automations:

  • Trigger workflows when wpsigner_last_signed is updated (e.g., send a follow-up email)
  • Create smart lists of contacts who signed documents in the last 30 days
  • Build reports on signing activity using HubSpot’s reporting tools
  • Set up notifications for your team when a key document is signed

ScenarioSetup
Sales contract trackingSync signed contracts → Track close dates in HubSpot
Client onboardingAuto-create contact → Log NDA signing → Trigger onboarding workflow
Lead qualificationSigned document updates contact properties → Triggers lead score update
Renewal managementTrack last signed date → Trigger renewal reminders via HubSpot workflow
Compliance trackingLog all signing events on contact timeline → Audit trail in HubSpot
HR onboardingEmployee signs offer letter → Contact created → Property updated for HR team
Vendor managementVendor signs agreement → Timeline note → Notify procurement team

FeatureDetails
Token encryptionPrivate App token is encrypted with AES-256-GCM at rest in the WordPress database
Rate LimitingTest connection: 5/min, Save settings: 10/min per user
Capability Checkmanage_options required for all configuration changes
Nonce VerificationAll AJAX requests verified with WordPress nonces
API CommunicationAll requests to HubSpot API use HTTPS
No PII in LogsError logs never contain contact names or email addresses

IssueCauseSolution
”Connection failed” on testInvalid tokenRegenerate the Private App token in HubSpot and re-enter it
”Connection failed” on testMissing scopesVerify the Private App has both crm.objects.contacts.read and crm.objects.contacts.write scopes
Contact not created”Create Contact” disabledEnable the “Create Contact” toggle in WPsigner settings
Timeline note not appearing”Create Note” disabledEnable the “Create Note” toggle in WPsigner settings
Properties not updatingProperties don’t exist in HubSpotCreate the custom properties in HubSpot first (see Custom Properties section)
Properties not updatingInternal name mismatchVerify the property internal names match exactly: wpsigner_last_signed, wpsigner_last_document
Duplicate contactsMultiple emails for same personHubSpot matches by email — ensure signers use consistent email addresses
Rate limit error from HubSpotToo many API callsWPsigner respects HubSpot API limits. If you process many documents simultaneously, events are queued

If sync events are not working, check the WordPress debug log:

  1. Enable debug logging in wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
  1. Check the log file at wp-content/debug.log
  2. Look for entries starting with [WPsigner HubSpot]

You can also check the WPsigner → Audit page for sync event logs with status indicators.


ComponentSupported Versions
HubSpotFree CRM, Starter, Professional, Enterprise
HubSpot APIv3 (Private Apps)
WPsigner2.1.0+
WordPress5.8+
PHP7.4+

  • Pipedrive — Pipedrive CRM sync integration
  • Zapier — Connect to 5000+ apps via Zapier
  • Make — Visual automation with Make (Integromat)
  • n8n — Self-hosted workflow automation
  • Templates — Learn more about creating templates
  • Document Workflow — Understanding document statuses and actions
  • REST API — For advanced programmatic integrations