HubSpot CRM Integration Instructions
Standard Operating Procedure ID: SOP-TECH-003
Version: 1.0.0
Effective Date: Summer Term 2026
Owner: Elena Chen, Admissions & Onboarding Coordinator
1. Overview
This outline guides technical developers through wiring the public signup forms to forward registration events directly into a HubSpot Free account.
2. Ingestion Hook Flow
To maintain high data integrity, registration payloads are packed into compliant JSON structures and forwarded via secure server-side POST requests.
[Registration Form] ──(Svelte State)──> [Cloudflare Pages Functions] ──(Webhook POST)──> [HubSpot API]
Step 2.1: Obtain HubSpot Private App Token
- Log into your company’s HubSpot console.
- Navigate to Settings > Integrations > Private Apps.
- Click “Create Private App” and assign the following permissions (Scopes):
crm.objects.contacts.read&crm.objects.contacts.writecrm.objects.deals.read&crm.objects.deals.write
- Copy the Access Token (looks like
pat-na1-...).
Step 2.2: Add Webhook Endpoint Configuration
Under your Cloudflare environment, define the HubSpot secret pairing:
HUBSPOT_ACCESS_TOKEN=pat-na1-youraccesstokenhere
Step 2.3: Payload Schema Format
Ensure your API endpoints structure payloads to match HubSpot’s contact creation endpoint (https://api.hubapi.com/crm/v3/objects/contacts):
{
"properties": {
"firstname": "Sarah",
"lastname": "Connor",
"email": "sarah.connor@example.com",
"phone": "+1 (555) 019-2834",
"associated_student_name": "John Connor",
"associated_student_grade": "5",
"associated_student_allergies": "Peanuts",
"tuition_payment_status": "Paid"
}
}
The Webhook debugger built into /app serves as a live JSON packer to test these streams under sandbox limits.