Your Entire HubSpot Stack in One Config File

Define CRM objects, custom properties, forms, imports, and deployments declaratively. Validate locally, package for CI/CD, and deploy across environments — consistently.

Why Unified Config Schema?

Replace scattered API calls and point-and-click setup with a single source of truth for your HubSpot implementation.

☎ Schema Validation

Check config correctness locally before ever touching an API — no more surprise deploy failures in production.

📁 Package & Distribute

Bundle assets, mappings, and imports into a versioned zip. Perfect for CI/CD pipelines and team sync.

🚀 Multi-Environment Deploy

Ship to Dev Sandbox, staging, or production from the same config with environment-safe credential management.

📄 Import & Export

Declare CSV-to-CRM mappings declaratively. The packager handles chunking, upserts, and association rules.

🔒 Privacy & Compliance

Mark sensitive properties with pii_guardrails, respect HubSpot rate limits, and audit every change.

🔍 Zero Downtime Drift

Compare target state vs. live instance with --dry-run before applying, so nothing ships unreviewed.

How It Works

Three commands take you from local config to live HubSpot instance.

1

Write Your Config

Add a hubspot.config.yml to your project root — define objects, properties, forms, and data imports in YAML.

2

Validate Locally

Run hubspot-config validate to catch errors offline before any API call is made.

3

Deploy Anywhere

hubspot-config deploy --env production pushes the validated state to your live portal.

A Glimpse Inside Your Config File

Declare everything — objects, forms, imports — in one place.

# hubspot.config.yml
schema:
  version: "1.0"
  app_name: "MyHubSpotApp"

objects:
  contacts:
    custom_properties:
      - name: lead_score
        type: number
    associations:
      - to_object: deals

forms:
  - id: contact-us-v2
    name: "Contact Us (v2)"
    field_groups:
      - fields:
          - name: firstname
            label: "First Name"
          - name: email
            label: "Email"

imports:
  - name: "Legacy Contacts"
    file_path: "./data/contacts.csv"
    upsert_keys: [email]

Ready to Simplify Your HubSpot Deployments?

Join the waitlist and be first when the Configuration Packager CLI launches.