curl --request POST \
--url 'https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=' \
--header 'Content-Type: application/json' \
--data '
{
"actionUrl": "<string>",
"functions": [
{
"functionSource": "<string>",
"id": "<string>"
}
],
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"description": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": []
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>"
}
}
]
}
'import requests
url = "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey="
payload = {
"actionUrl": "<string>",
"functions": [
{
"functionSource": "<string>",
"id": "<string>"
}
],
"inputFields": [
{
"isRequired": True,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"description": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": []
}
],
"labels": {},
"objectTypes": ["<string>"],
"published": True,
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": ["<string>"]
}
],
"outputFields": [{ "typeDefinition": {
"externalOptions": True,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": True,
"label": "<string>",
"readOnly": True,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"useChirp": True,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>"
} }]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
actionUrl: '<string>',
functions: [{functionSource: '<string>', id: '<string>'}],
inputFields: [
{
isRequired: true,
typeDefinition: {
name: '<string>',
options: [
{
label: '<string>',
value: '<string>',
description: '<string>',
displayOrder: 123
}
],
description: '<string>',
helpText: '<string>',
label: '<string>',
optionsUrl: '<string>',
referencedObjectType: 'OWNER'
},
supportedValueTypes: []
}
],
labels: {},
objectTypes: ['<string>'],
published: true,
archivedAt: 123,
executionRules: [{conditions: {}, labelName: '<string>'}],
inputFieldDependencies: [
{
controllingFieldName: '<string>',
dependencyType: 'SINGLE_FIELD',
dependentFieldNames: ['<string>']
}
],
outputFields: [
{
typeDefinition: {
externalOptions: true,
name: '<string>',
options: [
{
description: '<string>',
displayOrder: 123,
doubleData: 123,
hidden: true,
label: '<string>',
readOnly: true,
value: '<string>'
}
],
schema: {type: 'INTEGER', maximum: 123, minimum: 123},
useChirp: true,
description: '<string>',
externalOptionsReferenceType: '<string>',
helpText: '<string>',
label: '<string>',
optionsUrl: '<string>'
}
}
]
})
};
fetch('https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actionUrl' => '<string>',
'functions' => [
[
'functionSource' => '<string>',
'id' => '<string>'
]
],
'inputFields' => [
[
'isRequired' => true,
'typeDefinition' => [
'name' => '<string>',
'options' => [
[
'label' => '<string>',
'value' => '<string>',
'description' => '<string>',
'displayOrder' => 123
]
],
'description' => '<string>',
'helpText' => '<string>',
'label' => '<string>',
'optionsUrl' => '<string>',
'referencedObjectType' => 'OWNER'
],
'supportedValueTypes' => [
]
]
],
'labels' => [
],
'objectTypes' => [
'<string>'
],
'published' => true,
'archivedAt' => 123,
'executionRules' => [
[
'conditions' => [
],
'labelName' => '<string>'
]
],
'inputFieldDependencies' => [
[
'controllingFieldName' => '<string>',
'dependencyType' => 'SINGLE_FIELD',
'dependentFieldNames' => [
'<string>'
]
]
],
'outputFields' => [
[
'typeDefinition' => [
'externalOptions' => true,
'name' => '<string>',
'options' => [
[
'description' => '<string>',
'displayOrder' => 123,
'doubleData' => 123,
'hidden' => true,
'label' => '<string>',
'readOnly' => true,
'value' => '<string>'
]
],
'schema' => [
'type' => 'INTEGER',
'maximum' => 123,
'minimum' => 123
],
'useChirp' => true,
'description' => '<string>',
'externalOptionsReferenceType' => '<string>',
'helpText' => '<string>',
'label' => '<string>',
'optionsUrl' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey="
payload := strings.NewReader("{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=")
.header("Content-Type", "application/json")
.body("{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"actionUrl": "<string>",
"functions": [
{
"functionType": "POST_ACTION_EXECUTION",
"id": "<string>"
}
],
"id": "<string>",
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "bool",
"description": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": [
"STATIC_VALUE"
]
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"revisionId": "<string>",
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"objectRequestOptions": {
"properties": [
"<string>"
]
},
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"type": "bool",
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "ABANDONED_CART"
}
}
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Create a new custom action definition
Créez une nouvelle action de workflow personnalisée.
curl --request POST \
--url 'https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=' \
--header 'Content-Type: application/json' \
--data '
{
"actionUrl": "<string>",
"functions": [
{
"functionSource": "<string>",
"id": "<string>"
}
],
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"description": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": []
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>"
}
}
]
}
'import requests
url = "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey="
payload = {
"actionUrl": "<string>",
"functions": [
{
"functionSource": "<string>",
"id": "<string>"
}
],
"inputFields": [
{
"isRequired": True,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"description": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": []
}
],
"labels": {},
"objectTypes": ["<string>"],
"published": True,
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": ["<string>"]
}
],
"outputFields": [{ "typeDefinition": {
"externalOptions": True,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": True,
"label": "<string>",
"readOnly": True,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"useChirp": True,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>"
} }]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
actionUrl: '<string>',
functions: [{functionSource: '<string>', id: '<string>'}],
inputFields: [
{
isRequired: true,
typeDefinition: {
name: '<string>',
options: [
{
label: '<string>',
value: '<string>',
description: '<string>',
displayOrder: 123
}
],
description: '<string>',
helpText: '<string>',
label: '<string>',
optionsUrl: '<string>',
referencedObjectType: 'OWNER'
},
supportedValueTypes: []
}
],
labels: {},
objectTypes: ['<string>'],
published: true,
archivedAt: 123,
executionRules: [{conditions: {}, labelName: '<string>'}],
inputFieldDependencies: [
{
controllingFieldName: '<string>',
dependencyType: 'SINGLE_FIELD',
dependentFieldNames: ['<string>']
}
],
outputFields: [
{
typeDefinition: {
externalOptions: true,
name: '<string>',
options: [
{
description: '<string>',
displayOrder: 123,
doubleData: 123,
hidden: true,
label: '<string>',
readOnly: true,
value: '<string>'
}
],
schema: {type: 'INTEGER', maximum: 123, minimum: 123},
useChirp: true,
description: '<string>',
externalOptionsReferenceType: '<string>',
helpText: '<string>',
label: '<string>',
optionsUrl: '<string>'
}
}
]
})
};
fetch('https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actionUrl' => '<string>',
'functions' => [
[
'functionSource' => '<string>',
'id' => '<string>'
]
],
'inputFields' => [
[
'isRequired' => true,
'typeDefinition' => [
'name' => '<string>',
'options' => [
[
'label' => '<string>',
'value' => '<string>',
'description' => '<string>',
'displayOrder' => 123
]
],
'description' => '<string>',
'helpText' => '<string>',
'label' => '<string>',
'optionsUrl' => '<string>',
'referencedObjectType' => 'OWNER'
],
'supportedValueTypes' => [
]
]
],
'labels' => [
],
'objectTypes' => [
'<string>'
],
'published' => true,
'archivedAt' => 123,
'executionRules' => [
[
'conditions' => [
],
'labelName' => '<string>'
]
],
'inputFieldDependencies' => [
[
'controllingFieldName' => '<string>',
'dependencyType' => 'SINGLE_FIELD',
'dependentFieldNames' => [
'<string>'
]
]
],
'outputFields' => [
[
'typeDefinition' => [
'externalOptions' => true,
'name' => '<string>',
'options' => [
[
'description' => '<string>',
'displayOrder' => 123,
'doubleData' => 123,
'hidden' => true,
'label' => '<string>',
'readOnly' => true,
'value' => '<string>'
]
],
'schema' => [
'type' => 'INTEGER',
'maximum' => 123,
'minimum' => 123
],
'useChirp' => true,
'description' => '<string>',
'externalOptionsReferenceType' => '<string>',
'helpText' => '<string>',
'label' => '<string>',
'optionsUrl' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey="
payload := strings.NewReader("{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=")
.header("Content-Type", "application/json")
.body("{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/actions/2026-09/{appId}?hapikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"actionUrl\": \"<string>\",\n \"functions\": [\n {\n \"functionSource\": \"<string>\",\n \"id\": \"<string>\"\n }\n ],\n \"inputFields\": [\n {\n \"isRequired\": true,\n \"typeDefinition\": {\n \"name\": \"<string>\",\n \"options\": [\n {\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\",\n \"displayOrder\": 123\n }\n ],\n \"description\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\",\n \"referencedObjectType\": \"OWNER\"\n },\n \"supportedValueTypes\": []\n }\n ],\n \"labels\": {},\n \"objectTypes\": [\n \"<string>\"\n ],\n \"published\": true,\n \"archivedAt\": 123,\n \"executionRules\": [\n {\n \"conditions\": {},\n \"labelName\": \"<string>\"\n }\n ],\n \"inputFieldDependencies\": [\n {\n \"controllingFieldName\": \"<string>\",\n \"dependencyType\": \"SINGLE_FIELD\",\n \"dependentFieldNames\": [\n \"<string>\"\n ]\n }\n ],\n \"outputFields\": [\n {\n \"typeDefinition\": {\n \"externalOptions\": true,\n \"name\": \"<string>\",\n \"options\": [\n {\n \"description\": \"<string>\",\n \"displayOrder\": 123,\n \"doubleData\": 123,\n \"hidden\": true,\n \"label\": \"<string>\",\n \"readOnly\": true,\n \"value\": \"<string>\"\n }\n ],\n \"schema\": {\n \"type\": \"INTEGER\",\n \"maximum\": 123,\n \"minimum\": 123\n },\n \"useChirp\": true,\n \"description\": \"<string>\",\n \"externalOptionsReferenceType\": \"<string>\",\n \"helpText\": \"<string>\",\n \"label\": \"<string>\",\n \"optionsUrl\": \"<string>\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"actionUrl": "<string>",
"functions": [
{
"functionType": "POST_ACTION_EXECUTION",
"id": "<string>"
}
],
"id": "<string>",
"inputFields": [
{
"isRequired": true,
"typeDefinition": {
"name": "<string>",
"options": [
{
"label": "<string>",
"value": "<string>",
"description": "<string>",
"displayOrder": 123
}
],
"type": "bool",
"description": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "OWNER"
},
"supportedValueTypes": [
"STATIC_VALUE"
]
}
],
"labels": {},
"objectTypes": [
"<string>"
],
"published": true,
"revisionId": "<string>",
"archivedAt": 123,
"executionRules": [
{
"conditions": {},
"labelName": "<string>"
}
],
"inputFieldDependencies": [
{
"controllingFieldName": "<string>",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"<string>"
]
}
],
"objectRequestOptions": {
"properties": [
"<string>"
]
},
"outputFields": [
{
"typeDefinition": {
"externalOptions": true,
"name": "<string>",
"options": [
{
"description": "<string>",
"displayOrder": 123,
"doubleData": 123,
"hidden": true,
"label": "<string>",
"readOnly": true,
"value": "<string>"
}
],
"schema": {
"type": "INTEGER",
"maximum": 123,
"minimum": 123
},
"type": "bool",
"useChirp": true,
"description": "<string>",
"externalOptionsReferenceType": "<string>",
"fieldType": "booleancheckbox",
"helpText": "<string>",
"label": "<string>",
"optionsUrl": "<string>",
"referencedObjectType": "ABANDONED_CART"
}
}
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorisations
Paramètres de chemin
L'identifiant unique de l'application pour laquelle la définition d'extension est créée.
Corps
Le point de terminaison URL où l'action est exécutée.
Un tableau d'objets PublicActionFunction qui définissent les fonctions associées à l'action, y compris leur type et leur source.
Show child attributes
Show child attributes
Un tableau d'objets PublicInputFieldDefinition définissant les champs de saisie requis pour l'action.
Show child attributes
Show child attributes
Contient diverses étiquettes associées à l'action, y compris les noms et les descriptions.
Show child attributes
Show child attributes
Un tableau de chaînes de caractères représentant les types d'objets associés à l'action.
Indique si l'action est publiée et disponible à l'utilisation.
L'horodatage indiquant le moment où l'action a été archivée.
Un tableau d'objets PublicExecutionTranslationRule qui définissent les règles d'exécution de l'action.
Show child attributes
Show child attributes
Un tableau pouvant contenir des objets PublicSingleFieldDependency ou PublicConditionalSingleFieldDependency, définissant les dépendances entre les champs de saisie.
- SINGLE_FIELD
- CONDITIONAL_SINGLE_FIELD
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Un tableau d'objets OutputFieldDefinition spécifiant les champs de sortie de l'action.
Show child attributes
Show child attributes
Réponse
successful operation
Le point de terminaison URL où l'action est exécutée. Il s'agit d'une chaîne de caractères.
Un tableau d'identifiants de fonction associés à l'action, où chaque élément est un PublicActionFunctionIdentifier.
Show child attributes
Show child attributes
L'identifiant unique de la définition de l'action. Il s'agit d'une chaîne de caractères.
Un tableau de définitions de champs de saisie requis pour l'action. Chaque élément est un objet PublicInputFieldDefinition.
Show child attributes
Show child attributes
Un objet contenant les libellés de l'action, chaque propriété étant un objet PublicActionLabels.
Show child attributes
Show child attributes
Un tableau de chaînes représentant les types d'objets associés à l'action.
Un booléen indiquant si l'action est publiée et disponible à l'utilisation.
L'identifiant unique de la révision actuelle de la définition de l'action. Il s'agit d'une chaîne de caractères.
Un horodatage Unix en millisecondes représentant le moment où l'action a été archivée. Il s'agit d'un entier.
Un tableau de règles de traduction d'exécution pour l'action, où chaque élément est une PublicExecutionTranslationRule.
Show child attributes
Show child attributes
Un tableau de dépendances entre les champs de saisie, où chaque élément peut être une publicSingleFieldDependency ou une publicConditionalSingleFieldDependency.
- SINGLE_FIELD
- CONDITIONAL_SINGLE_FIELD
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Un tableau de définitions de champs de sortie produits par l'action. Chaque élément est un objet OutputFieldDefinition.
Show child attributes
Show child attributes