ActionKit supports multiple formats for accessing Action definitions from the API, for different use cases:

  • JSON Schema format=json_schema
    • For tool-calling agent use cases - in most cases, you can pass Action schemas directly in JSON Schema format to your LLM.
    • To learn more about JSON Schema, reference the official specification. Paragon does not implement any of the non-standard fields in draft-* versions of JSON Schema at this time.
  • Paragon format=paragon
    • For frontend configuration use cases - for example, if you are adding Actions to your product’s workflow builder.
    • Learn more about the Paragon format below.

You can request a specific format in the List Actions API endpoint with the format query parameter.

Paragon Format

Overview

The Paragon format is the same schema used internally to power our Workflow Editor. It is designed to render input fields to allow end users to configure Actions.

When using the Paragon format, you will need to support the following types of inputs in Paragon:

Input TypeKey(s)Example
Enum input (dropdown)ENUM | DYNAMIC_ENUM

Enum input with free text support
The user should be able to add their own option, if unavailable in the list

EDITABLE_ENUM

Enum input with text area
A text input should appear to the right of the dropdown.

EnumTextAreaPairInput
Text inputTEXT | TEXT_NO_VARS
Textarea input
Note that by default, lines = 1 (in this case, this input should look identical to a text input).
TEXTAREA | TEXTAREA_NO_VARS
Code inputCODE
Boolean input (switch / toggle)BOOLEAN_INPUT | SWITCH
Filter / conditional inputCONDITIONAL | DYNAMIC_CONDITIONAL

Action polymorphism

To best support tool calling, the json_schema format automatically breaks down polymorphism in Actions as individual tools.

For example, SALESFORCE_CREATE_RECORD splits into distinct Actions:

  • SALESFORCE_CREATE_OPPORTUNITY
  • SALESFORCE_CREATE_CONTACT
  • SALESFORCE_CREATE_ACCOUNT
  • SALESFORCE_CREATE_LEAD
  • SALESFORCE_CREATE_ANY
    • For non-standard objects, whose fields can be discovered with SALESFORCE_DESCRIBE_ACTION_SCHEMA

In the paragon format, polymorphic schemas are not broken into individual Actions and instead will be represented as dependentInputs within the API (see below example).

When calling Run Action, you can reference either the specific Action (e.g. SALESFORCE_CREATE_OPPORTUNITY) or the generic Action (e.g. SALESFORCE_CREATE_RECORD), as long as the required parameters are supplied.

// Example format=paragon Action Schema:
{
    "name": "SALESFORCE_CREATE_RECORD",
    "title": "Create record",
    "inputs": [
        {
            "id": "recordType",
            "title": "Record type",
            "type": "ENUM",
            "required": true,
            "values": [
                {
                    "value": "Opportunity",
                    // When recordType = "Opportunity", show inputs:
                    "dependentInputs": [...]
                },
                {
                    "value": "Contact",
                    // When recordType = "Contact", show inputs:
                    "dependentInputs": [...]
                },
                ...
            ]
        }
    ]
}