Skip to content
AskElephant Knowledge Base home

Structured HubSpot Agent

Configure an AI agent to find and update specific HubSpot objects and properties, with deterministic, property-level results you can reference downstream.

Structured HubSpot Agent node in the workflow builder

What It Does

For each object type you configure, the agent searches HubSpot using your search instructions, then updates each property you list using your extraction instructions. It can optionally use a linked meeting as context, create the object if it isn't found, and pause for human approval before creating a record or writing a specific property.

When To Use It

Use this for defined property writes where you need structured, auditable output, such as syncing several meeting-derived fields to a deal and reporting exactly what changed. This is the preferred agent for structured updates. Use Hubspot Agent instead only for free-form, exploratory requests that don't need structured output.

Configuration

Configure the node with these settings:

Field

What it controls

Meeting

Optional meeting used as context for extracting property values.

Object Configurations

One entry per object type to update. Required, at least one. External Object Type.: The HubSpot object type to update, for example deals or contacts. Required. Search Instructions.: Natural language instructions for how to find the right object or objects. Required. Create If Not Found.: Whether to create the object when no match is found. Defaults to false. Require Confirmation Before Create.: Require human approval before creating a new record when Create If Not Found finds no match. Optional. Require Human Approval Before Create.: When true alongside Create If Not Found, require human approval before creating the record; property updates then run after approval. Defaults to false. Properties.: One entry per property to update, each with: Property Name.: The internal property name. Required. Instructions.: Natural language instructions for what value to extract or generate. Required. Read Before Write.: Whether to read the existing value before updating. Defaults to false. Additional Properties for Context.: Other properties that must be read before this one updates. Update Method.: Replace or Append. Defaults to Replace. Require Confirmation.: Pause for human approval before writing this specific property. Defaults to false.

Outputs

The node passes these values downstream. Check the Outputs tab on the configured node to confirm exact paths.

Variable

Type

Description

Example

configurations

array<object>

Results for each object configuration, mirroring input structure

{{nodeId.configurations}}

configurations[].searchInstructions

string

The search instructions that were used

{{nodeId.configurations.searchInstructions}}

configurations[].foundObjectIds

array<string>

Object IDs found/created by the search phase

{{nodeId.configurations.foundObjectIds}}

configurations[].objects

array<object>

Objects that were processed

{{nodeId.configurations.objects}}

configurations[].objects[].id

string

HubSpot object ID

{{nodeId.configurations.objects.id}}

configurations[].objects[].name

string | null

HubSpot object name/title

{{nodeId.configurations.objects.name}}

configurations[].objects[].properties

array<object>

Status of each property update

{{nodeId.configurations.objects.properties}}

configurations[].objects[].properties[].name

string

Property internal name

{{nodeId.configurations.objects.properties.name}}

configurations[].objects[].properties[].label

string

Property human-readable label

{{nodeId.configurations.objects.properties.label}}

configurations[].objects[].properties[].value

string | null

The new value written to HubSpot

{{nodeId.configurations.objects.properties.value}}

configurations[].objects[].properties[].pushEventId

string | null

Integration push event ID for lookup

{{nodeId.configurations.objects.properties.pushEventId}}

configurations[].objects[].properties[].aiReasoning

string | null

The AI reasoning used to generate the property update value

{{nodeId.configurations.objects.properties.aiReasoning}}

configurations[].objects[].properties[].status

"success" | "pending_confirmation" | "error" | "skipped"

Update status

{{nodeId.configurations.objects.properties.status}}

configurations[].objects[].properties[].error

string

Error message if failed

{{nodeId.configurations.objects.properties.error}}

configurations[].error

string

Error if the configuration failed entirely

{{nodeId.configurations.error}}

configurations[].objectCreationStatus

"none" | "success" | "pending_confirmation"

Lifecycle of object creation for this configuration (when create-if-not-found is used)

{{nodeId.configurations.objectCreationStatus}}

configurations[].objectCreationPendingReason

string

Machine-readable reason when object creation is pending review (e.g. pending_object_creation)

{{nodeId.configurations.objectCreationPendingReason}}

totalRecordsTouched

number

Total number of HubSpot records touched across all configurations

{{nodeId.totalRecordsTouched}}

summary

string

Human-readable summary of operations performed, with optional markdown links

{{nodeId.summary}}

Example Workflow

After a renewal call, a workflow configures this node to find the linked deal and update its close_date and renewal_notes properties from the meeting, requiring confirmation on close_date, then posts the summary output to Slack.

  • Hubspot Agent

  • Update Deal V2

  • Update Contact V2

Need More Help?

Reach the AskElephant support team by:

  • clicking the Support tab on the right side of your screen,

  • emailing [email protected],

  • or using @askelephant support in your dedicated Slack channel.