☀️ Enrolling now for Phase 1 of our Summer 2026 STEM Cohort! Secure a Desk →

Systems Documentation Library

Reference guides and step-by-step Standard Operating Procedures (SOPs).

Launch Portal

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

  1. Log into your company’s HubSpot console.
  2. Navigate to Settings > Integrations > Private Apps.
  3. Click “Create Private App” and assign the following permissions (Scopes):
    • crm.objects.contacts.read & crm.objects.contacts.write
    • crm.objects.deals.read & crm.objects.deals.write
  4. 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.