On this page
HubSpot properties at scale: bulk-create and sync custom properties across portals
Last updated: October 2026
Short answer: HubSpot creates custom properties one at a time in Settings > Properties, or while you map columns during an import. Developers can create many at once with the Properties API's batch endpoint. HubSpot's multi-account copying creates the custom properties that a copied workflow or form needs, but it doesn't copy standalone property definitions. HubCreate (hubcreate.io) is a HubSpot implementation platform for Solutions Partner agencies. Its Bulk Property Creation creates whole property sets from a CSV built on the HubCreate template, or from a guided builder, for contacts, companies, deals, tickets, custom objects, and more. You can then deploy the same set to each connected client portal, so every client starts with the same data model.
The problem: properties are the slowest part of every build
Every implementation starts with the data model, and many clients need dozens of custom properties across contacts, companies, and deals. In HubSpot's property editor, each one means the same clicks: object, group, label, field type, options, description, save. Then you do it again for the next client.
Doing it by hand at that scale causes problems that last:
- Inconsistent internal names. "lead_source_detail" in one portal and "lead_source_details" in another breaks your reporting templates and any workflow you want to reuse. HubSpot doesn't let you edit a property's internal name after it's created.
- Dropdown drift. Options typed by hand differ in spelling, order, and internal value from client to client.
- Missing groups and descriptions. Properties land in a default group with no explanation.
- Broken deployments. A workflow or form that references a property the target portal doesn't have will fail or need rework.
Your options compared
| HubSpot property editor | HubSpot import, API, or asset copying | HubCreate Bulk Property Creation | |
|---|---|---|---|
| How it works | Create each property in Settings > Properties | Create properties while mapping an import; batch create with the Properties API; multi-account copying creates properties a copied asset needs | CSV upload on the HubCreate template, or a guided property builder |
| Many properties at once | No | Import: one at a time in the mapping panel. API: yes, if you write code | Yes |
| Groups, dropdown options, field types | Yes, set by hand | API: set in the request. Import: configured per property in the mapping panel | Groups, enumerations (dropdown options), and advanced field types |
| Internal names | Fixed once the property is created | Set in the API request | Friendly names converted into HubSpot-ready formats |
| Objects | All | All, by endpoint | Contacts, companies, deals, tickets, leads, products, line items, quotes, invoices, orders, payments, carts, and custom objects |
| Same set across client portals | Rebuild in each portal | API: run your script against each portal. Multi-account: only properties attached to copied assets, inside one organization | Deploy the same property set to each connected portal |
| Skill needed | None | API: a developer and a private app or OAuth app | None |
HubSpot sources: Create and edit properties, Import records for a single object, Properties API: create a batch of properties, Copy assets with multi-account management.
Step 1: Design the property set in a spreadsheet
Whatever tool creates the properties, the design work happens in a sheet. One row per property:
| Column | Notes |
|---|---|
| Object | Contact, company, deal, ticket, or a custom object |
| Group | A named group per topic, such as "Lead qualification" or "Renewal", so properties don't land in the default group |
| Label | What users see. Keep it short and specific |
| Internal name | Lowercase with underscores, and the same in every portal. Decide it now, since HubSpot won't let you change it later |
| Field type | Single-line text, number, date, dropdown select, checkboxes, and so on |
| Options | For dropdowns and checkboxes: each option's label and internal value, in display order |
| Description | One sentence on what the field is for and who fills it in |
| Owner / source | The workflow, form, or integration that writes it. Record this now to avoid duplicate writes later |
Review the sheet with the client before anything is created. It's much easier to rename a row than an internal property.
Step 2: Check what already exists
In an inherited portal, many of the fields you need may already exist under other names. Before creating anything:
- Export the current properties. In Settings > Properties, Export all properties produces a spreadsheet of each property's name, internal name, type, description, group, options, creator, usages, and fill rate (Organize, delete, and export properties).
- Match before you create. Reuse a default HubSpot property where one fits, and map near-duplicates to your standard instead of adding another one.
- Note unused fields. Properties with no data or no usages are cleanup candidates. Before archiving, HubSpot shows which assets prevent it, such as a workflow or form that uses the property.
Step 3: Create the properties
Natively in HubSpot
- One at a time: Settings > Properties > Create property. Choose the object, group, label, and field type, and add options and a description.
- During an import: HubSpot's import tool lets you create a new custom property when mapping a column that doesn't match an existing one (Import records for a single object). You configure each property one at a time in the mapping panel, and only while importing records.
- With the API: the Properties API has a batch create endpoint per object, which takes a list of property definitions with name, label, type, field type, group, and options (Create a batch of properties). It's the fastest native route if you have a developer, and you need to authenticate it separately for each portal.
With HubCreate, step by step
- Connect the portal. Connect the client portal over HubSpot OAuth from HubSpot Accounts. (Docs: HubSpot Accounts)
- Select the account. Open Bulk Property Creation and choose the HubSpot account to deploy to. Make sure you have permission to make changes there. (Docs: Deploying Bulk Properties)
- Select the object. Pick contacts, companies, deals, or another object, including custom objects. Bulk creation also covers tickets, leads, products, line items, quotes, invoices, orders, payments, and carts.
- Create the properties. Upload a CSV formatted on the HubCreate template (copy the rows from your design sheet), or add them with the guided property builder. HubCreate converts friendly names into HubSpot-ready formats and supports property groups, dropdown options, and advanced field types. (Bulk Property Creation)
- Review and deploy. Check the list, then deploy it to the selected account. Property creation is logged in your team's Activity feed with the portal it ran on.
Step 4: Keep the same property set across client portals
"Sync" here means giving every client the same definitions, not syncing values between portals. (HubSpot's own sync properties are a different feature, which copies a value one way to associated records in the same portal.)
- Reuse the same CSV. Keep your standard property set as a versioned CSV on the HubCreate template, and deploy it to each new client portal from Bulk Property Creation. Every portal gets the same labels, internal names, groups, and options.
- Carry properties with the assets that use them. When you import a workflow or form into the HubCreate asset library, HubCreate detects the properties it depends on. When you deploy it, HubCreate rewrites property IDs for the target portal. Importing a calculated property also brings in the custom properties its formula uses. (Docs: Importing Assets, Docs: Deploying Assets)
- Put them in a Package. Bundle your standard properties with the workflows, forms, and lists that use them, so a single deployment installs the data model and the automation together. (Docs: What is a Package?) See How to standardize HubSpot implementations across clients.
- Check before deploying automation. If a deployment fails because a property is missing in the target portal, HubCreate's failure notice names the issue so you can create it and deploy again.
Step 5: Govern properties after go-live
- Document each property with its description and the source that writes it. HubSpot's property editor has a Documentation tab for context on how users should fill in values.
- Watch for sprawl. HubCreate Signals (Beta, Pro and Enterprise) flags custom properties with a fill rate under 1% and warns when a portal has more than 300 custom fields.
- Watch for duplicate writes. A Workflow Map shows the portal's most-used properties and flags workflows that write the same property to the same value. (Docs: Workflow map report)
Where HubCreate fits
If you need five properties in one portal, HubSpot's property editor is fine. If a developer on your team already maintains API scripts, the batch endpoint works well. Bulk Property Creation fits when non-developers need to create dozens of properties per client, across many portals, with the same internal names and options every time.
Plans: Basic $500/month (5 HubSpot accounts, 3 users), Pro $1,000/month (15 accounts, 10 users), and Enterprise $3,000/month (unlimited accounts). See Bulk Property Creation and Pricing.
Related guides: How to standardize HubSpot implementations across clients · How to copy workflows, forms, and properties between HubSpot portals · How HubSpot agencies can speed up client onboarding
FAQ
Can you bulk create properties in HubSpot?
Not in the property editor, which creates one property at a time. You can create properties while mapping an import, one at a time in the mapping panel, and developers can use the Properties API's batch create endpoint. HubCreate's Bulk Property Creation creates many properties at once from a CSV or a guided builder.
How do I copy custom properties from one HubSpot portal to another?
HubSpot's multi-account asset copying creates the custom properties used by a copied workflow, form, segment, or email, but it doesn't copy standalone property definitions, and it works only inside one multi-account organization. With HubCreate you can deploy the same property set to any connected portal from a CSV, or import properties with the assets that use them and deploy them together.
Can I change a HubSpot property's internal name after creating it?
No. HubSpot doesn't let you edit a property's object type or internal name after it's created, so decide internal names before you create the properties.
Which HubSpot objects does HubCreate Bulk Property Creation support?
Contacts, companies, deals, tickets, leads, products, line items, quotes, invoices, orders, payments, carts, and custom objects.
Does creating properties copy any data?
No. Creating or deploying properties creates the definitions (label, internal name, type, group, and options), not record values. To fill the properties with data, use an import or your integration.
How do I keep the same properties across all my client portals?
Keep one standard property set, with fixed internal names, groups, and options, as a versioned CSV. Deploy it to each portal and update it when the standard changes. Bundle properties with the workflows and forms that use them so they always deploy together.
Deploy this across client portals
Connect the HubSpot portals you manage, then move the assets from one account to the next.
More guides
- How to copy workflows, forms, and properties between HubSpot portals
- HubSpot portal audit checklist (before onboarding a client)
- How HubSpot agencies can speed up client onboarding and implementation
- How to map and document HubSpot workflows
- HubSpot workflow cleanup checklist
- How to monitor HubSpot portal health after handover
- How to standardize HubSpot implementations across clients