FormMaker docs

create_object_form

Define a form that writes to a custom object, and store it.

This is the one tool that authors something FormMaker owns rather than reading something HubSpot owns. It defines which custom object a form writes to, which properties it may set, and which property decides whether a submission is a new record or an update.

Every field must name a property that already exists. FormMaker doesn't create properties: HubSpot only grants that permission to private apps, not marketplace ones. Define the property in HubSpot once, then build forms against it. Call list_object_properties to see what's there.

uniqueKey is the important choice. A submission whose uniqueKey value matches an existing record updates it; otherwise a new record is created. Pick a property that's genuinely unique — if it matches more than one record, the submission is rejected rather than guessing.

What's stored is also what's enforced: the object type and the property list are fixed at this point, and a submission that names anything else is rejected. That's deliberate — the key your form carries is public, so the server can't take its word for what to write.

Linking records to people

Set associateToContact and every submission also links its record to the person who sent it, creating the contact if they're new. Without it a record is an orphan: it exists, but nothing connects it to the human, so you can't find it from their timeline or use it in a workflow.

The relationship has to exist in HubSpot first — Settings → Objects → Custom Objects → Associations. FormMaker can't create it, so this tool checks and refuses to build a form that would silently link nothing. That check is deliberate: the alternative is finding out one submission at a time.

Author a form that writes to a custom object

Define a form whose submissions create or update records on a HubSpot custom object, and store it. Returns a formId to pass to generate_object_form. Every field must name a property that already exists on the object — this tool never creates properties, so call list_object_properties first and define anything missing in HubSpot. `uniqueKey` names the property used to dedupe: a submission whose uniqueKey value matches an existing record updates it instead of creating a duplicate. It must be one of the fields, and should be genuinely unique on the object. Set associateToContact to link each record to the person who submitted it — without it the records are orphans, unreachable from the contact. The object's relationship to contacts must already exist in HubSpot; this tool checks and refuses rather than letting every submission silently fail to link.

read-onlyidempotentopen-world

Parameters

NameTypeDescription
objectTypeIdstringrequiredFrom list_object_types, e.g. "2-12345".
fieldsobject[]required
uniqueKeystringrequiredWhich field dedupes a submission. Must be one of `fields`.
associateToContactobjectoptionalLink each record to the submitter's contact, creating the contact if they're new. The object<->contact relationship must already be configured in HubSpot (Settings > Objects > Custom Objects > Associations) — FormMaker can't create it.