Custom Workflow Actions
Create custom workflow actions
COMMUNITYBEARER0 INSTALLS
OpenAPI Specificationv3.0
{
"openapi": "3.0.1",
"servers": [
{
"url": "https://api.hubapi.com/"
}
],
"info": {
"description": "Create custom workflow actions",
"title": "Custom Workflow Actions",
"version": "v4",
"x-logo": {
"url": "https://api.apis.guru/v2/cache/logo/https_developers.hubspot.com_hubfs_assets_hubspot.com_buzz_HubSpotOpenGraph.png"
},
"x-origin": [
{
"format": "openapi",
"url": "https://api.hubspot.com/api-catalog-public/v1/apis/automation/v4/actions",
"version": "3.0"
}
],
"x-providerName": "hubapi.com",
"x-serviceName": "automation"
},
"tags": [
{
"description": "Operations to configure custom workflow actions.",
"name": "Definitions"
},
{
"description": "Operations to configure the functions associated with custom workflow actions.",
"name": "Functions"
},
{
"description": "Operations to retrieve the revisions for custom workflow actions.",
"name": "Revisions"
},
{
"description": "Operations to complete callbacks for custom workflow actions.",
"name": "Callbacks"
}
],
"paths": {
"/automation/v4/actions/callbacks/complete": {
"post": {
"description": "Completes the given action callbacks.",
"operationId": "post-/automation/v4/actions/callbacks/complete_completeBatch",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BatchInputCallbackCompletionBatchRequest"
}
}
},
"description": "The result of the completed action.",
"required": true
},
"responses": {
"204": {
"content": {},
"description": "No content"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"oauth2_legacy": [
"automation"
]
},
{
"hapikey": []
},
{
"private_apps_legacy": []
}
],
"summary": "Complete a batch of callbacks",
"tags": [
"Callbacks"
]
}
},
"/automation/v4/actions/callbacks/{callbackId}/complete": {
"post": {
"description": "Completes the given action callback.",
"operationId": "post-/automation/v4/actions/callbacks/{callbackId}/complete_complete",
"parameters": [
{
"description": "The ID of the target app.",
"explode": false,
"in": "path",
"name": "callbackId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallbackCompletionRequest"
}
}
},
"description": "The result of the completed action.",
"required": true
},
"responses": {
"204": {
"content": {},
"description": "No content"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"oauth2_legacy": [
"automation"
]
},
{
"hapikey": []
},
{
"private_apps_legacy": []
}
],
"summary": "Complete a callback",
"tags": [
"Callbacks"
]
}
},
"/automation/v4/actions/{appId}": {
"get": {
"description": "Returns a list of all custom workflow actions.",
"operationId": "get-/automation/v4/actions/{appId}_getPage",
"parameters": [
{
"description": "Maximum number of results per page.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "form"
},
{
"description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.",
"explode": true,
"in": "query",
"name": "after",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"description": "Whether to include archived custom actions.",
"explode": true,
"in": "query",
"name": "archived",
"required": false,
"schema": {
"default": false,
"type": "boolean"
},
"style": "form"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"paging": {
"next": {
"after": "b3B0aW9uXzEy"
}
},
"results": [
{
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
{
"actionUrl": "https://example.com/custom-workflow-action-2",
"id": "2",
"published": false,
"revisionId": "1"
}
]
},
"schema": {
"$ref": "#/components/schemas/CollectionResponseExtensionActionDefinitionForwardPaging"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get all custom actions",
"tags": [
"Definitions"
]
},
"post": {
"description": "Creates a new custom workflow action.",
"operationId": "post-/automation/v4/actions/{appId}_create",
"parameters": [
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExtensionActionDefinitionInput"
}
}
},
"description": "The custom workflow action to create.",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"example": {
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
"schema": {
"$ref": "#/components/schemas/ExtensionActionDefinition"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Create new custom action",
"tags": [
"Definitions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}": {
"delete": {
"description": "Archives a single custom workflow action with the specified ID. Workflows that currently use this custom action will stop attempting to execute the action, and all future executions will be marked as a failure.",
"operationId": "delete-/automation/v4/actions/{appId}/{definitionId}_archive",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"204": {
"content": {},
"description": "No content"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Archive a custom action",
"tags": [
"Definitions"
]
},
"get": {
"description": "Returns a single custom workflow action with the specified ID.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}_getById",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "Whether to include archived custom actions.",
"explode": true,
"in": "query",
"name": "archived",
"required": false,
"schema": {
"default": false,
"type": "boolean"
},
"style": "form"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
"schema": {
"$ref": "#/components/schemas/ExtensionActionDefinition"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get a custom action",
"tags": [
"Definitions"
]
},
"patch": {
"description": "Updates a custom workflow action with new values for the specified fields.",
"operationId": "patch-/automation/v4/actions/{appId}/{definitionId}_update",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExtensionActionDefinitionPatch"
}
}
},
"description": "The custom workflow action fields to be updated.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
},
{
"label": "Green",
"value": "green"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
"schema": {
"$ref": "#/components/schemas/ExtensionActionDefinition"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Update a custom action",
"tags": [
"Definitions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}/functions": {
"get": {
"description": "Returns a list of all functions that are associated with the given custom workflow action.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}/functions_getPage",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"paging": {
"next": {
"after": "b3B0aW9uXzEy"
}
},
"results": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
]
},
"schema": {
"$ref": "#/components/schemas/CollectionResponseActionFunctionIdentifierNoPaging"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get all custom action functions",
"tags": [
"Functions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}": {
"delete": {
"description": "Delete a function for a custom workflow action. This will remove the function itself as well as removing the association between the function and the custom action. This can't be undone.",
"operationId": "delete-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}_archiveByFunctionType",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"204": {
"content": {},
"description": "No content"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Delete a custom action function",
"tags": [
"Functions"
]
},
"get": {
"description": "Returns the given function for a custom workflow action.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}_getByFunctionType",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"functionSource": "exports.main = (event, callback) => { return callback(transformRequest(event)); };\nfunction transformRequest(request) { return { webhookUrl: request.webhookUrl, body: JSON.stringify(request.body), httpMethod: \"POST\" } }",
"functionType": "PRE_ACTION_EXECUTION"
},
"schema": {
"$ref": "#/components/schemas/ActionFunction"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get a custom action function",
"tags": [
"Functions"
]
},
"put": {
"description": "Creates or replaces a function for a custom workflow action.",
"operationId": "put-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}_createOrReplaceByFunctionType",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "The function source code. Must be valid JavaScript code.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"functionType": "PRE_ACTION_EXECUTION"
},
"schema": {
"$ref": "#/components/schemas/ActionFunctionIdentifier"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Create or replace a custom action function",
"tags": [
"Functions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}/{functionId}": {
"delete": {
"description": "Delete a function for a custom workflow action. This will remove the function itself as well as removing the association between the function and the custom action. This can't be undone.",
"operationId": "delete-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}/{functionId}_archive",
"parameters": [
{
"description": "The ID of the custom workflow action",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The ID qualifier for the function. This is used to specify which input field a function is associated with for `PRE_FETCH_OPTIONS` and `POST_FETCH_OPTIONS` function types.",
"explode": false,
"in": "path",
"name": "functionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"204": {
"content": {},
"description": "No content"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Delete a custom action function",
"tags": [
"Functions"
]
},
"get": {
"description": "Returns the given function for a custom workflow action.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}/{functionId}_getById",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The ID qualifier for the function. This is used to specify which input field a function is associated with for `PRE_FETCH_OPTIONS` and `POST_FETCH_OPTIONS` function types.",
"explode": false,
"in": "path",
"name": "functionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"functionSource": "exports.main = (event, callback) => { return callback(transformRequest(event)); };\nfunction transformRequest(request) { return { webhookUrl: request.webhookUrl, body: JSON.stringify(request.body), httpMethod: \"POST\" } }",
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
},
"schema": {
"$ref": "#/components/schemas/ActionFunction"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get a custom action function",
"tags": [
"Functions"
]
},
"put": {
"description": "Creates or replaces a function for a custom workflow action.",
"operationId": "put-/automation/v4/actions/{appId}/{definitionId}/functions/{functionType}/{functionId}_createOrReplace",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The type of function. This determines when the function will be called.",
"explode": false,
"in": "path",
"name": "functionType",
"required": true,
"schema": {
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"style": "simple"
},
{
"description": "The ID qualifier for the function. This is used to specify which input field a function is associated with for `PRE_FETCH_OPTIONS` and `POST_FETCH_OPTIONS` function types.",
"explode": false,
"in": "path",
"name": "functionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"requestBody": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "The function source code. Must be valid JavaScript code.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
},
"schema": {
"$ref": "#/components/schemas/ActionFunctionIdentifier"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Create or replace a custom action function",
"tags": [
"Functions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}/revisions": {
"get": {
"description": "Returns a list of revisions for a custom workflow action.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}/revisions_getPage",
"parameters": [
{
"description": "The ID of the custom workflow action",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "Maximum number of results per page.",
"explode": true,
"in": "query",
"name": "limit",
"required": false,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "form"
},
{
"description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.",
"explode": true,
"in": "query",
"name": "after",
"required": false,
"schema": {
"type": "string"
},
"style": "form"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"paging": {
"next": {
"after": "b3B0aW9uXzEy"
}
},
"results": [
{
"definition": {
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
"id": "1",
"insertedAt": "2020-04-30T00:00:00",
"revisionId": "1"
},
{
"definition": {
"actionUrl": "https://example.com/custom-workflow-action-2",
"id": "2",
"published": false,
"revisionId": "1"
},
"id": "2",
"insertedAt": "2020-04-30T00:00:00",
"revisionId": "1"
}
]
},
"schema": {
"$ref": "#/components/schemas/CollectionResponseActionRevisionForwardPaging"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get all revisions for a custom action",
"tags": [
"Revisions"
]
}
},
"/automation/v4/actions/{appId}/{definitionId}/revisions/{revisionId}": {
"get": {
"description": "Returns the given version of a custom workflow action.",
"operationId": "get-/automation/v4/actions/{appId}/{definitionId}/revisions/{revisionId}_getById",
"parameters": [
{
"description": "The ID of the custom workflow action.",
"explode": false,
"in": "path",
"name": "definitionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"description": "The version of the custom workflow action.",
"explode": false,
"in": "path",
"name": "revisionId",
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
},
{
"explode": false,
"in": "path",
"name": "appId",
"required": true,
"schema": {
"format": "int32",
"type": "integer"
},
"style": "simple"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"example": {
"definition": {
"actionUrl": "https://example.com/custom-workflow-action",
"functions": [
{
"functionType": "PRE_ACTION_EXECUTION"
},
{
"functionType": "PRE_FETCH_OPTIONS",
"id": "widgetSize"
}
],
"id": "1",
"inputFieldDependencies": [
{
"controllingFieldName": "widgetSize",
"dependencyType": "SINGLE_FIELD",
"dependentFieldNames": [
"widgetName",
"widgetColor"
]
}
],
"inputFields": [
{
"required": true,
"supportedValueTypes": [
"OBJECT_PROPERTY"
],
"typeDefinition": {
"fieldType": "text",
"name": "widgetName",
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetColor",
"options": [
{
"label": "Blue",
"value": "blue"
},
{
"label": "Red",
"value": "red"
}
],
"type": "string"
}
},
{
"required": false,
"supportedValueTypes": [
"STATIC_VALUE"
],
"typeDefinition": {
"fieldType": "enumeration",
"name": "widgetSize",
"optionsUrl": "https://example.com/widget-sizes",
"type": "string"
}
}
],
"labels": {
"en": {
"actionCardContent": "Create new widget {{ widgetName }}",
"actionDescription": "This action will create a new widget in our system. So cool!",
"actionName": "Create new widget",
"inputFieldDescriptions": {
"widgetColor": "This is the color that will be used to paint the widget.",
"widgetName": "Enter the full widget name. I support <a href=\"https://hubspot.com\">links</a> too."
},
"inputFieldLabels": {
"widgetColor": "Widget Color",
"widgetName": "Widget Name",
"widgetSize": "Widget Size"
}
}
},
"objectRequestOptions": {
"properties": [
"firstname",
"lastname",
"preferred_widget"
]
},
"objectTypes": [
"CONTACT",
"COMPANY"
],
"published": true,
"revisionId": "1"
},
"id": "1",
"insertedAt": "2020-04-30T00:00:00",
"revisionId": "1"
},
"schema": {
"$ref": "#/components/schemas/ActionRevision"
}
}
},
"description": "successful operation"
},
"default": {
"$ref": "#/components/responses/Error"
}
},
"security": [
{
"developer_hapikey": []
}
],
"summary": "Get a revision for a custom action",
"tags": [
"Revisions"
]
}
}
},
"components": {
"responses": {
"Error": {
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "An error occurred."
}
},
"schemas": {
"ActionFunction": {
"description": "A serverless function associated with this custom workflow action.",
"properties": {
"functionSource": {
"description": "The function source code.",
"type": "string"
},
"functionType": {
"description": "The type of function. This determines when the function will be called.",
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"id": {
"description": "The ID qualifier for the function. This is used to specify which input field a function is associated with for `PRE_FETCH_OPTIONS` and `POST_FETCH_OPTIONS` function types.",
"type": "string"
}
},
"required": [
"functionSource",
"functionType"
],
"type": "object"
},
"ActionFunctionIdentifier": {
"description": "A serverless function associated with this custom workflow action.",
"properties": {
"functionType": {
"description": "The type of function. This determines when the function will be called.",
"enum": [
"PRE_ACTION_EXECUTION",
"PRE_FETCH_OPTIONS",
"POST_FETCH_OPTIONS"
],
"type": "string"
},
"id": {
"description": "The ID qualifier for the function. This is used to specify which input field a function is associated with for `PRE_FETCH_OPTIONS` and `POST_FETCH_OPTIONS` function types.",
"type": "string"
}
},
"required": [
"functionType"
],
"type": "object"
},
"ActionLabels": {
"description": "User-facing labels for this custom workflow action.",
"properties": {
"actionCardContent": {
"description": "The label to be displayed in the action card of the workflow editor once this custom action has been added to a workflow.",
"type": "string"
},
"actionDescription": {
"description": "A description for this custom action. This will show up in the action editor along with the input fields.",
"type": "string"
},
"actionName": {
"description": "The name of this custom action. This is what will show up when users are selecting an action in the workflows app.",
"type": "string"
},
"appDisplayName": {
"description": "The name to be displayed at the top of the action editor in the workflows app.",
"type": "string"
},
"inputFieldDescriptions": {
"additionalProperties": {
"type": "string"
},
"description": "A map of input field names to descriptions for the fields. These will show up as tooltips when users are editing your action.",
"type": "object"
},
"inputFieldLabels": {
"additionalProperties": {
"type": "string"
},
"description": "A map of input field names to the user-facing labels.",
"type": "object"
}
},
"required": [
"actionName"
],
"type": "object"
},
"ActionRevision": {
"description": "A revision of this custom action.",
"properties": {
"createdAt": {
"description": "The date the revision was created.",
"format": "date-time",
"type": "string"
},
"definition": {
"$ref": "#/components/schemas/ExtensionActionDefinition"
},
"id": {
"type": "string"
},
"revisionId": {
"description": "The version number of the custom action.",
"type": "string"
}
},
"required": [
"createdAt",
"definition",
"id",
"revisionId"
],
"type": "object"
},
"BatchInputCallbackCompletionBatchRequest": {
"properties": {
"inputs": {
"items": {
"$ref": "#/components/schemas/CallbackCompletionBatchRequest"
},
"type": "array"
}
},
"required": [
"inputs"
],
"type": "object"
},
"CallbackCompletionBatchRequest": {
"description": "Any information to send back to Workflows when completing an action callback as part of a batch request.",
"example": {
"callbackId": "ap-123-123-123-0",
"outputFields": {
"hs_execution_state": "SUCCESS"
}
},
"properties": {
"callbackId": {
"description": "The ID of the callback to complete.",
"type": "string"
},
"outputFields": {
"additionalProperties": {
"type": "string"
},
"description": "A map of action output names and values.",
"type": "object"
}
},
"required": [
"callbackId",
"outputFields"
],
"type": "object"
},
"CallbackCompletionRequest": {
"description": "Any information to send back to Workflows when completing an action callback.",
"example": {
"outputFields": {
"hs_execution_state": "SUCCESS"
}
},
"properties": {
"outputFields": {
"additionalProperties": {
"type": "string"
},
"description": "A map of action output names and values.",
"type": "object"
}
},
"required": [
"outputFields"
],
"type": "object"
},
"CollectionResponseActionFunctionIdentifierNoPaging": {
"properties": {
"results": {
"items": {
"$ref": "#/components/schemas/ActionFunctionIdentifier"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
},
"CollectionResponseActionRevisionForwardPaging": {
"properties": {
"paging": {
"$ref": "#/components/schemas/ForwardPaging"
},
"results": {
"items": {
"$ref": "#/components/schemas/ActionRevision"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
},
"CollectionResponseExtensionActionDefinitionForwardPaging": {
"properties": {
"paging": {
"$ref": "#/components/schemas/ForwardPaging"
},
"results": {
"items": {
"$ref": "#/components/schemas/ExtensionActionDefinition"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
},
"ConditionalSingleFieldDependency": {
"properties": {
"controllingFieldName": {
"type": "string"
},
"controllingFieldValue": {
"type": "string"
},
"dependencyType": {
"default": "CONDITIONAL_SINGLE_FIELD",
"enum": [
"CONDITIONAL_SINGLE_FIELD"
],
"type": "string"
},
"dependentFieldNames": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"controllingFieldName",
"controllingFieldValue",
"dependencyType",
"dependentFieldNames"
],
"title": "CONDITIONAL_SINGLE_FIELD",
"type": "object"
},
"Error": {
"example": {
"category": "VALIDATION_ERROR",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
},
"message": "Invalid input (details will vary based on the error)"
},
"properties": {
"category": {
"description": "The error category",
"type": "string"
},
"context": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Context about the error condition",
"example": {
"invalidPropertyName": [
"propertyValue"
],
"missingScopes": [
"scope1",
"scope2"
]
},
"type": "object"
},
"correlationId": {
"description": "A unique identifier for the request. Include this value with any error reports or support tickets",
"example": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"format": "uuid",
"type": "string"
},
"errors": {
"description": "further information about the error",
"items": {
"$ref": "#/components/schemas/ErrorDetail"
},
"type": "array"
},
"links": {
"additionalProperties": {
"type": "string"
},
"description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps",
"type": "object"
},
"message": {
"description": "A human readable message describing the error along with remediation steps where appropriate",
"example": "An error occurred",
"type": "string"
},
"subCategory": {
"description": "A specific category that contains more specific detail about the error",
"type": "string"
}
},
"required": [
"category",
"correlationId",
"message"
],
"type": "object"
},
"ErrorDetail": {
"properties": {
"code": {
"description": "The status code associated with the error detail",
"type": "string"
},
"context": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Context about the error condition",
"example": {
"missingScopes": [
"scope1",
"scope2"
]
},
"type": "object"
},
"in": {
"description": "The name of the field or parameter in which the error was found.",
"type": "string"
},
"message": {
"description": "A human readable message describing the error along with remediation steps where appropriate",
"type": "string"
},
"subCategory": {
"description": "A specific category that contains more specific detail about the error",
"type": "string"
}
},
"required": [
"message"
],
"type": "object"
},
"ExtensionActionDefinition": {
"description": "Configuration for custom workflow action.",
"properties": {
"actionUrl": {
"description": "The URL that will accept an HTTPS request each time workflows executes the custom action.",
"type": "string"
},
"archivedAt": {
"description": "The date that this custom action was archived, if the custom action is archived.",
"format": "int64",
"type": "integer"
},
"functions": {
"description": "A list of functions associated with the custom workflow action.",
"items": {
"$ref": "#/components/schemas/ActionFunctionIdentifier"
},
"type": "array"
},
"id": {
"description": "The ID of the custom action.",
"type": "string"
},
"inputFieldDependencies": {
"description": "A list of dependencies between the input fields. These configure when the input fields should be visible.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SingleFieldDependency"
},
{
"$ref": "#/components/schemas/ConditionalSingleFieldDependency"
}
]
},
"type": "array"
},
"inputFields": {
"description": "The list of input fields to display in this custom action.",
"items": {
"$ref": "#/components/schemas/InputFieldDefinition"
},
"type": "array"
},
"labels": {
"additionalProperties": {
"$ref": "#/components/schemas/ActionLabels"
},
"description": "The user-facing labels for the custom action.",
"type": "object"
},
"objectRequestOptions": {
"$ref": "#/components/schemas/ObjectRequestOptions"
},
"objectTypes": {
"description": "The object types that this custom action supports.",
"items": {
"type": "string"
},
"type": "array"
},
"published": {
"description": "Whether this custom action is published to customers.",
"type": "boolean"
},
"revisionId": {
"type": "string"
}
},
"required": [
"actionUrl",
"functions",
"id",
"inputFields",
"labels",
"objectTypes",
"published",
"revisionId"
],
"type": "object"
},
"ExtensionActionDefinitionInput": {
"description": "State of custom workflow action to be created.",
"properties": {
"actionUrl": {
"description": "The URL that will accept an HTTPS request each time workflows executes the custom action.",
"type": "string"
},
"archivedAt": {
"description": "The date that this custom action was archived, if the custom action is archived.",
"format": "int64",
"type": "integer"
},
"functions": {
"description": "A list of functions associated with the custom workflow action.",
"items": {
"$ref": "#/components/schemas/ActionFunction"
},
"type": "array"
},
"inputFieldDependencies": {
"description": "A list of dependencies between the input fields. These configure when the input fields should be visible.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SingleFieldDependency"
},
{
"$ref": "#/components/schemas/ConditionalSingleFieldDependency"
}
]
},
"type": "array"
},
"inputFields": {
"description": "The list of input fields to display in this custom action.",
"items": {
"$ref": "#/components/schemas/InputFieldDefinition"
},
"type": "array"
},
"labels": {
"additionalProperties": {
"$ref": "#/components/schemas/ActionLabels"
},
"description": "The user-facing labels for the custom action.",
"type": "object"
},
"objectRequestOptions": {
"$ref": "#/components/schemas/ObjectRequestOptions"
},
"objectTypes": {
"description": "The object types that this custom action supports.",
"items": {
"type": "string"
},
"type": "array"
},
"published": {
"description": "Whether this custom action is published to customers.",
"type": "boolean"
}
},
"required": [
"actionUrl",
"functions",
"inputFields",
"labels",
"objectTypes",
"published"
],
"type": "object"
},
"ExtensionActionDefinitionPatch": {
"description": "Fields on custom workflow action to be updated.",
"properties": {
"actionUrl": {
"description": "The URL that will accept an HTTPS request each time workflows executes the custom action.",
"type": "string"
},
"inputFieldDependencies": {
"description": "A list of dependencies between the input fields. These configure when the input fields should be visible.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SingleFieldDependency"
},
{
"$ref": "#/components/schemas/ConditionalSingleFieldDependency"
}
]
},
"type": "array"
},
"inputFields": {
"description": "The list of input fields to display in this custom action.",
"items": {
"$ref": "#/components/schemas/InputFieldDefinition"
},
"type": "array"
},
"labels": {
"additionalProperties": {
"$ref": "#/components/schemas/ActionLabels"
},
"description": "The user-facing labels for the custom action.",
"type": "object"
},
"objectRequestOptions": {
"$ref": "#/components/schemas/ObjectRequestOptions"
},
"objectTypes": {
"description": "The object types that this custom action supports.",
"items": {
"type": "string"
},
"type": "array"
},
"published": {
"description": "Whether this custom action is published to customers.",
"type": "boolean"
}
},
"type": "object"
},
"FieldTypeDefinition": {
"description": "The data type expected by an input field.",
"properties": {
"fieldType": {
"description": "Controls how the field appears in HubSpot.",
"enum": [
"booleancheckbox",
"checkbox",
"date",
"file",
"number",
"phonenumber",
"radio",
"select",
"text",
"textarea",
"calculation_equation",
"calculation_rollup",
"calculation_score",
"calculation_read_time",
"unknown"
],
"type": "string"
},
"name": {
"description": "The input field name.",
"type": "string"
},
"options": {
"description": "A list of valid options for the field value.",
"items": {
"$ref": "#/components/schemas/Option"
},
"type": "array"
},
"optionsUrl": {
"description": "A URL that will accept HTTPS requests when the valid options for the field are fetched.",
"type": "string"
},
"referencedObjectType": {
"description": "This can be set to `OWNER` if the field should contain a HubSpot owner value.",
"enum": [
"CONTACT",
"COMPANY",
"DEAL",
"ENGAGEMENT",
"TICKET",
"OWNER",
"PRODUCT",
"LINE_ITEM",
"BET_DELIVERABLE_SERVICE",
"CONTENT",
"CONVERSATION",
"BET_ALERT",
"PORTAL",
"QUOTE",
"FORM_SUBMISSION_INBOUNDDB",
"QUOTA",
"UNSUBSCRIBE",
"COMMUNICATION",
"FEEDBACK_SUBMISSION",
"ATTRIBUTION",
"SALESFORCE_SYNC_ERROR",
"RESTORABLE_CRM_OBJECT",
"HUB",
"LANDING_PAGE",
"PRODUCT_OR_FOLDER",
"TASK",
"FORM",
"MARKETING_EMAIL",
"AD_ACCOUNT",
"AD_CAMPAIGN",
"AD_GROUP",
"AD",
"KEYWORD",
"CAMPAIGN",
"SOCIAL_CHANNEL",
"SOCIAL_POST",
"SITE_PAGE",
"BLOG_POST",
"IMPORT",
"EXPORT",
"CTA",
"TASK_TEMPLATE",
"AUTOMATION_PLATFORM_FLOW",
"OBJECT_LIST",
"NOTE",
"MEETING_EVENT",
"CALL",
"EMAIL",
"PUBLISHING_TASK",
"CONVERSATION_SESSION",
"CONTACT_CREATE_ATTRIBUTION",
"INVOICE",
"MARKETING_EVENT",
"CONVERSATION_INBOX",
"CHATFLOW",
"MEDIA_BRIDGE",
"SEQUENCE",
"SEQUENCE_STEP",
"FORECAST",
"SNIPPET",
"TEMPLATE",
"UNKNOWN"
],
"type": "string"
},
"type": {
"description": "The data type of the field.",
"enum": [
"string",
"number",
"bool",
"datetime",
"enumeration",
"date",
"phone_number",
"currency_number",
"json",
"object_coordinates"
],
"type": "string"
}
},
"required": [
"name",
"options",
"type"
],
"type": "object"
},
"ForwardPaging": {
"properties": {
"next": {
"$ref": "#/components/schemas/NextPage"
}
},
"type": "object"
},
"InputFieldDefinition": {
"description": "Configuration for an input field on the custom action",
"properties": {
"isRequired": {
"description": "Whether the field is required for the custom action to be valid",
"type": "boolean"
},
"supportedValueTypes": {
"description": "Controls what kind of input a customer can use to specify the field value. Must contain exactly one of `STATIC_VALUE` or `OBJECT_PROPERTY`. If `STATIC_VALUE`, the customer will be able to choose a value when configuring the custom action; if `OBJECT_PROPERTY`, the customer will be able to choose a property from the enrolled workflow object that the field value will be copied from. In the future we may support more than one input control type here.",
"items": {
"enum": [
"STATIC_VALUE",
"OBJECT_PROPERTY",
"FIELD_DATA"
],
"type": "string"
},
"type": "array"
},
"typeDefinition": {
"$ref": "#/components/schemas/FieldTypeDefinition"
}
},
"required": [
"isRequired",
"typeDefinition"
],
"type": "object"
},
"NextPage": {
"properties": {
"after": {
"type": "string"
},
"link": {
"type": "string"
}
},
"required": [
"after"
],
"type": "object"
},
"ObjectRequestOptions": {
"description": "Configures what properties of the enrolled CRM object are included in the action execution request",
"properties": {
"properties": {
"description": "A list of properties of the CRM object to include with the request to the `actionUrl`.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"properties"
],
"type": "object"
},
"Option": {
"description": "An option for a field value.",
"properties": {
"description": {
"type": "string"
},
"displayOrder": {
"format": "int32",
"type": "integer"
},
"doubleData": {
"type": "number"
},
"hidden": {
"type": "boolean"
},
"label": {
"description": "The user-facing label for the option.",
"type": "string"
},
"readOnly": {
"type": "boolean"
},
"value": {
"description": "The internal value for the option. This is what will be included in the execution request to the `actionUrl`.",
"type": "string"
}
},
"required": [
"description",
"displayOrder",
"doubleData",
"hidden",
"label",
"readOnly",
"value"
],
"type": "object"
},
"SingleFieldDependency": {
"properties": {
"controllingFieldName": {
"type": "string"
},
"dependencyType": {
"default": "SINGLE_FIELD",
"enum": [
"SINGLE_FIELD"
],
"type": "string"
},
"dependentFieldNames": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"controllingFieldName",
"dependencyType",
"dependentFieldNames"
],
"title": "SINGLE_FIELD",
"type": "object"
}
},
"securitySchemes": {
"developer_hapikey": {
"in": "query",
"name": "hapikey",
"type": "apiKey"
},
"hapikey": {
"in": "query",
"name": "hapikey",
"type": "apiKey"
},
"oauth2_legacy": {
"flows": {
"authorizationCode": {
"authorizationUrl": "https://app.hubspot.com/oauth/authorize",
"scopes": {
"automation": "Read from and write to my Workflows"
},
"tokenUrl": "https://api.hubapi.com/oauth/v1/token"
}
},
"type": "oauth2"
},
"private_apps_legacy": {
"in": "header",
"name": "private-app-legacy",
"type": "apiKey"
}
}
},
"x-hubspot-available-client-libraries": [
"PHP",
"Node",
"Python",
"Ruby"
]
}