For Agents
Create, read, update, and delete HubSpot workflows, plus pull workflow email campaigns and migrated workflow id mappings.
Use for: I need to retrieve a HubSpot workflow by id, Create a new welcome-email workflow on the portal, Update the enrolment criteria on workflow 123456, Delete the deprecated lead-nurture workflow
Not supported: Does not enroll specific contacts, send individual emails, or schedule sales tasks — use only for managing HubSpot workflow definitions and reading their attached marketing emails.
The HubSpot Automation V4 API gives programmatic access to HubSpot workflows. The /automation/v4/flows endpoints list, create, retrieve, update, and delete workflows, and a batch-read endpoint pulls multiple workflows in a single call. /automation/v4/flows/email-campaigns returns the marketing emails attached to workflows so external systems can audit which sends are workflow-driven, and /automation/v4/workflow-id-mappings/batch/read returns mappings between legacy and migrated workflow ids. Authentication uses legacy OAuth or a legacy private app token in the private-app-legacy header.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Automation V4, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Automation V4 API.
Retrieve a paginated list of workflows on a HubSpot portal
Create a new HubSpot workflow from a JSON definition
Retrieve the full definition of a workflow by id
Update a workflow's triggers, actions, or enrolment settings
Delete a workflow that is no longer needed
Batch-read multiple workflows by id in one request
List the marketing emails sent by HubSpot workflows
Patterns agents use Automation V4 API for, with concrete tasks.
★ Programmatically clone a workflow into a new portal
When provisioning a new HubSpot portal, an integration can copy a baseline set of workflows from a template portal. GET /automation/v4/flows/{flowId} returns the full workflow definition, then POST /automation/v4/flows on the new portal recreates it. The same definition shape works in both directions, so a single export-import job can stand up dozens of workflows.
Call GET /automation/v4/flows/{flowId} on the source portal, then POST /automation/v4/flows on the target portal with the returned definition body
Audit which marketing emails come from workflows
A marketing ops review wants to know which sends are workflow-driven versus campaign-driven. GET /automation/v4/flows/email-campaigns returns the marketing emails that workflows reference, so the review can separate automated from one-off sends. The endpoint is paginated for portals with hundreds of workflows.
Call GET /automation/v4/flows/email-campaigns, page through results, and join the email ids to the marketing emails report
Pause a workflow during a release window
Before a product release, an operator can disable a workflow so customers receive no automated touches during the change window. PUT /automation/v4/flows/{flowId} updates the workflow definition with the enrolment switch off, and the same call after the release re-enables it.
Call PUT /automation/v4/flows/{flowId} with isEnabled set to false, then call it again with isEnabled true after the release
Agent integration via Jentic
An ops agent can stand up a new welcome workflow from a brief in plain English. Through Jentic the agent searches for the workflow creation operation, loads the schema, and executes with the JSON body it generates from the brief. The HubSpot credential never leaves the Jentic vault.
Search Jentic for 'create a hubspot workflow', load POST /automation/v4/flows, and execute with a definition body that triggers on form submission and sends a welcome email
8 endpoints — the hubspot automation v4 api gives programmatic access to hubspot workflows.
METHOD
PATH
DESCRIPTION
/automation/v4/flows
List workflows on the portal
/automation/v4/flows
Create a new workflow
/automation/v4/flows/{flowId}
Retrieve a workflow by id
/automation/v4/flows/{flowId}
Update a workflow
/automation/v4/flows/{flowId}
Delete a workflow
/automation/v4/flows/batch/read
Batch-read workflows by id
/automation/v4/flows/email-campaigns
List marketing emails sent by workflows
/automation/v4/workflow-id-mappings/batch/read
Resolve legacy workflow ids to migrated ids
/automation/v4/flows
List workflows on the portal
/automation/v4/flows
Create a new workflow
/automation/v4/flows/{flowId}
Retrieve a workflow by id
/automation/v4/flows/{flowId}
Update a workflow
/automation/v4/flows/{flowId}
Delete a workflow
/automation/v4/flows/batch/read
Batch-read workflows by id
/automation/v4/flows/email-campaigns
List marketing emails sent by workflows
/automation/v4/workflow-id-mappings/batch/read
Resolve legacy workflow ids to migrated ids
Three things that make agents converge on Jentic-routed access.
Credential isolation
Legacy OAuth and legacy private app tokens are stored encrypted in the Jentic vault. Workflow calls run through scoped session tokens so the raw HubSpot credential never enters the agent's context.
Intent-based discovery
Agents search Jentic with intents like 'create a hubspot workflow' and Jentic returns the matching POST /automation/v4/flows operation with its input schema.
Time to first call
Direct integration: a day or two to wire OAuth, build the workflow definition payload, and handle 429s on bulk operations. Through Jentic: a couple of hours — search, load, execute against the eight endpoints.
Alternatives and complements available in the Jentic catalogue.
Specific to using Automation V4 API through Jentic.
What authentication does the HubSpot Automation V4 API use?
The spec defines two legacy security schemes: OAuth 2.0 (oauth2_legacy) and a legacy private app token sent in the private-app-legacy header. Both can call all eight endpoints. Through Jentic the credential is stored encrypted in the vault.
Can I create a workflow programmatically with the Automation V4 API?
Yes. POST /automation/v4/flows accepts a workflow definition JSON body that describes the trigger, the action sequence, and the enrolment settings. The response returns the new flowId which you can then update with PUT /automation/v4/flows/{flowId} or delete with DELETE.
What are the rate limits for the HubSpot Automation V4 API?
The spec does not declare per-endpoint limits. Workflow endpoints share the standard HubSpot per-account limit of around 100 requests per 10 seconds for OAuth and private apps, and bulk import jobs should use the batch-read endpoint to stay under the burst cap.
How do I list all workflows through Jentic?
Search Jentic for 'list hubspot workflows', load the schema for GET /automation/v4/flows, and execute. Jentic returns the paginated JSON list with each flow's id, name, and isEnabled flag.
Can I see which marketing emails are sent by workflows?
Yes. GET /automation/v4/flows/email-campaigns returns the marketing emails referenced by workflows on the portal, so a marketing ops review can split automated sends from one-off campaigns.
Why does the API include a workflow id mapping endpoint?
POST /automation/v4/workflow-id-mappings/batch/read resolves legacy workflow ids to the new id format used by V4. This is useful when migrating an integration that previously stored legacy ids and needs to look them up against current workflows.
GET STARTED