> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On HubSpot contact updated

> Run when any property on a HubSpot contact changes.

Use `hubspot.onContactUpdated` to run when any property on a HubSpot contact changes.

```ts automations/on-hubspot-contact-updated.automation.ts theme={null}
import { automation } from "automate.ax"
import { hubspot } from "automate.ax/hubspot"

export default automation("On HubSpot contact updated", () => {
  const event = hubspot.onContactUpdated()
  // Use event.objectId and event.propertyChanges to route the contact update.
})
```

Optional static `account` selects a named HubSpot OAuth binding; the project binding is the default. HubSpot triggers require OAuth because Automate.ax manages Journal subscriptions for each installed HubSpot account.

## Trigger data

Returns a typed HubSpot CRM event with `portalId`, `objectId`, `objectType`, `action`, `occurredAt`, and `journalOffset`. `publishedAt` is present when HubSpot includes the Journal publication time. `propertyChanges` maps every property included in that Journal update to its new value. Automate.ax subscribes with an empty property list so any changed property can trigger the automation.

Automate.ax consumes HubSpot's ordered Webhooks Journal and deduplicates replayed events.
