HubSpot · JSON Structure

Custom Workflow Actions Api Action Definition Structure

A custom workflow action definition

Type: object Properties: 10 Required: 5
AnalyticsCommerceContentCRMCustomer ServiceEmail MarketingMarketingMarketing AutomationOperationsSales

ActionDefinition is a JSON Structure definition published by HubSpot, describing 10 properties, of which 5 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

id revisionId actionUrl labels inputFields outputFields objectTypes objectRequestOptions published functions

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hubspot/refs/heads/main/json-structure/custom-workflow-actions-api-action-definition-structure.json",
  "name": "ActionDefinition",
  "description": "A custom workflow action definition",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier of the action definition",
      "example": "500123"
    },
    "revisionId": {
      "type": "string",
      "description": "The current revision identifier",
      "example": "500123"
    },
    "actionUrl": {
      "type": "uri",
      "description": "The URL that HubSpot will call when the action executes",
      "example": "https://app.hubspot.com/contacts/12345"
    },
    "labels": {
      "type": "object",
      "description": "Human-readable labels for the action",
      "required": [
        "actionName"
      ],
      "properties": {
        "actionName": {
          "type": "string",
          "description": "The display name of the action",
          "example": "Example Record"
        },
        "actionDescription": {
          "type": "string",
          "description": "A description of what the action does",
          "example": "This is an example description."
        },
        "appDisplayName": {
          "type": "string",
          "description": "The name of the app providing this action",
          "example": "Example Record"
        },
        "actionCardContent": {
          "type": "string",
          "description": "Content to display on the action card in the workflow editor",
          "example": "example-value"
        }
      }
    },
    "inputFields": {
      "type": "array",
      "description": "Input fields that users can configure for the action",
      "items": {
        "type": "object",
        "description": "An input field for the action",
        "required": [
          "typeDefinition",
          "supportedValueTypes"
        ],
        "properties": {
          "typeDefinition": {
            "$ref": "#/components/schemas/FieldTypeDefinition"
          },
          "supportedValueTypes": {
            "type": "array",
            "description": "The types of values that can be provided for this field",
            "items": {
              "type": "string",
              "enum": [
                "STATIC_VALUE",
                "OBJECT_PROPERTY",
                "OUTPUT_FROM_PREVIOUS_ACTION"
              ]
            },
            "example": [
              "STATIC_VALUE"
            ]
          },
          "isRequired": {
            "type": "boolean",
            "description": "Whether this field is required",
            "example": true
          }
        }
      },
      "example": [
        {
          "typeDefinition": {},
          "supportedValueTypes": [
            {}
          ],
          "isRequired": true
        }
      ]
    },
    "outputFields": {
      "type": "array",
      "description": "Output fields that the action returns",
      "items": {
        "type": "object",
        "description": "An output field returned by the action",
        "required": [
          "typeDefinition"
        ],
        "properties": {
          "typeDefinition": {
            "$ref": "#/components/schemas/FieldTypeDefinition"
          }
        }
      },
      "example": [
        {
          "typeDefinition": {}
        }
      ]
    },
    "objectTypes": {
      "type": "array",
      "description": "CRM object types this action can operate on",
      "items": {
        "type": "string",
        "enum": [
          "CONTACT",
          "COMPANY",
          "DEAL",
          "TICKET",
          "QUOTE"
        ]
      },
      "example": [
        "CONTACT"
      ]
    },
    "objectRequestOptions": {
      "type": "object",
      "description": "Options for requesting CRM object data",
      "properties": {
        "properties": {
          "type": "array",
          "description": "CRM properties to include in the action execution request",
          "items": {
            "type": "string"
          },
          "example": [
            "example-value"
          ]
        }
      }
    },
    "published": {
      "type": "boolean",
      "description": "Whether the action is published and available for use",
      "example": true
    },
    "functions": {
      "type": "array",
      "description": "Functions associated with this action",
      "items": {
        "type": "object",
        "description": "A reference to a function associated with an action",
        "required": [
          "functionType",
          "id"
        ],
        "properties": {
          "functionType": {
            "type": "string",
            "enum": [
              "PRE_ACTION_EXECUTION",
              "PRE_FETCH_OPTIONS",
              "POST_FETCH_OPTIONS",
              "POST_ACTION_EXECUTION"
            ],
            "description": "The type of function",
            "example": "PRE_ACTION_EXECUTION"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the function",
            "example": "500123"
          }
        }
      },
      "example": [
        {
          "functionType": "PRE_ACTION_EXECUTION",
          "id": "500123"
        }
      ]
    }
  },
  "required": [
    "id",
    "revisionId",
    "actionUrl",
    "labels",
    "objectTypes"
  ]
}