Table of contents
Official Content
  • This documentation is valid for:

This API allows you to define Agent-driven Business Processes in Globant Enterprise AI allowing you to create, retrieve, update, publish, list and delete Agentic Processes.

Check the generic variables required to call the API.

Endpoints

Method Path Description
POST /processes/tasks/ Creates a new task definition in the Project.
PUT /processes/tasks/{idOrName}/upsert Create or update (upsert) a task definition identified by taskName.
PUT /processes/tasks/{idOrName} Updates an existing task definition.
GET /processes/tasks Retrieves a list of tasks. Supports pagination and filters.
GET /processes/tasks/{idOrName} Retrieves detailed information about a specific task, optionally selecting a revision/version and whether drafts are allowed.
DELETE /processes/tasks/{idOrName} Deletes a task definition. This is typically a soft delete or full delete depending on service behavior.
POST /agentic-process-definition/artifact-types Create a new artifact type
PUT /agentic-process-definition/artifact-types/{idOrName} Updates an existing artifact type
GET /agentic-process-definition/artifact-types/{idOrName} Retrieves a specific artifact type
DELETE /agentic-process-definition/artifact-types/{idOrName} Deletes a specific artifact type
GET /agentic-process-definition/artifact-types List artifact types with optional filters
POST /processes Creates an Agentic Process.
PUT /processes/{idOrName}/upsert Inserts the Agentic Process if it does not exist; otherwise, updates it.
PUT /processes/{idOrName} Updates an Agentic Process.
GET /processes/{idOrName} Gets an Agentic Process definition (optionally a given revision/version).
GET /processes Lists Agentic Processes with filtering and pagination.
DELETE /processes/{idOrName} Deletes an Agentic Process.

Authentication

All endpoints require authentication using one of the following:

  • Authorization: Bearer $GEAI_APITOKEN
  • Authorization: Bearer $OAuth_accesstoken

For $OAuth_accesstoken, you must also include the header: ProjectId: $GEAI_PROJECT_ID

Some endpoints may require additional headers such as:

  • Content-Type: application/json when a body is sent.
  • Accept: application/json only when you need a JSON response body.

POST /processes/tasks/

Creates a new Task definition in the Project.

Request

  • Method: POST
  • Path: $BASE_URL/v2/processes/tasks/

Request Body

{
  "taskDefinition":
    "name": "string", // Unique name of the Task definition
    "description": "string", // Description of the Task
    "titleTemplate": "string", // string: Template for the generated user stories document title
    "promptData": { 
      "instructions": "string", // Instructions for generating user stories
      "examples":  
        {
          "inputData": "string", // Example input transcript and documentation
          "output": "string" // Example output user stories in JSON format
        }
      
    },
    "artifactTypes":  
      {
        "usageType": "string", // Indicates if the artifact is 'output'
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // string: Description of the artifact type
      },
      {
        "usageType": "string", // Indicates if the artifact is 'input' 
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // Description of the artifact type
      }
    
  }
}

Response

{
  "artifactTypes": 
    {
      "isRequired": boolean, // Whether the artifact is required
      "name": "string", // Name of the artifact type
      "usageType": "string" // Indicates if the artifact is 'input' or 'output'
    }
  ,
  "description": "string", // Description of the Task
  "id": "string", // Unique identifier for the Task instance
  "name": "string", // Name of the Task
  "prompt": { 
    "examples": 
      {
        "inputData": "string", //Example input transcript and documentation
        "output": "string" // Example output user stories in JSON format
      }
    ,
    "instructions": "string" // Instructions for generating user stories
  },
  "revision": integer, // Revision number of the task
  "status": "string", // Current status of the task (e.g., 'active')
  "version": integer // Version number of the task
}

cURL Sample

curl -X POST “$BASE_URL/v2/processes/tasks” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "taskDefinition": {
    "name": "Basic Task",
    "description": "A simple Task that requires no tools and define no prompt",
    "titleTemplate": "Sample Task "
  }
'{
   "taskDefinition": {
    "name": "create-plan-test",
    "description": "based on the product requirements, extract test case scenarios",
    "titleTemplate": "Create Test-Plan for Ticket #{{issue_id}}",
    "promptData": {
    "instructions": "The first thing you need to do is read the Product Requirements Document (PRD) from a file that should be provided in variable !prd_file_path!. If you dont have that then indicate that you cannot continue. Once you read the requirements, create a test plan to test those requirements. The test plan should be in markdown format, it should contain all the test cases that you evaluate are needed. For each test case provide a name, pre-requisites, data and expected outcome. Once you are done, save the content in a document using the tool to create-artifact and name the artifact using as test_case_plan_!issue_id!.",
    "context": ""
    },
    "artifactTypes": 
      {
        "usageType": "input",
        "isRequired": true,
        "name": "Text"
      },
      {
        "usageType": "output",
        "isRequired": true,
        "name": "Text"
      }
    
  }
}'

PUT /processes/tasks/{idOrName}/upsert

Creates or updates (upserts) a Task definition identified by idOrName.

Parameters

Name Type Description
automaticPublish boolean Controls whether a Task is automatically published after it is created or updated (optional). If set to true, the Task is validated and published in a single operation. If omitted or set to false, the Task is created as a draft and not published.

Request

  • Method: PUT
  • Path: $BASE_URL/v2/processes/tasks/{idOrName}/upsert

Request Body

{
  "taskDefinition":
    "name": "string", // Unique name of the Task definition
    "description": "string", // Description of the Task
    "titleTemplate": "string", // string: Template for the generated user stories document title
    "promptData": { 
      "instructions": "string", // Instructions for generating user stories
      "examples":  
        {
          "inputData": "string", // Example input transcript and documentation
          "output": "string" // Example output user stories in JSON format
        }
      
    },
    "artifactTypes":  
      {
        "usageType": "string", // Indicates if the artifact is 'output'
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // string: Description of the artifact type
      },
      {
        "usageType": "string", // Indicates if the artifact is 'input' 
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // Description of the artifact type
      }
    
  }
}

Response

{
  "description": "string",     // Description of the upserted Task 
  "id": "string",              // Unique identifier for the Task 
  "name": "string",            // Name of the upserted Task 
  "revision": 1,               // Revision number of the Task (integer)
  "version": 1                 // Version number of the Task (integer)
}

cURL Sample

curl -X PUT “$BASE_URL/v2/processes/tasks/{idOrName}/upsert?automaticPublish=true” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "taskDefinition": {
    "name": "create-test-plan-product",
    "description": "based on the product requirements, extract test case scenarios",
    "titleTemplate": "Create Test-Plan for Ticket #{{issue_id}}",
    "promptData": {
      "instructions": "The first thing you need to do is read the Product Requirements Document (PRD) from a file that should be provided in variable !prd_file_path!. If you dont have that then indicate that you cannot continue. Once you read the requirements, create a test plan to test those requirements. The test plan should be in markdown format, it should contain all the test cases that you evaluate are needed. For each test case provide a name, pre-requisites, data and expected outcome. Once you are done, save the content in a document using the tool to create-artifact and name the artifact using as test_case_plan_!issue_id!.",
      "context": ""
    },
    "artifactTypes": 
      {
        "usageType": "input",
        "isRequired": true,
        "name": "Text",
        "description": "Input file containing the Product Requirements Document"
      },
      {
        "usageType": "output",
        "isRequired": true,
        "name": "Text",
        "description": "Generated test case plan based on the PRD"
      }
    
  }
}'

PUT /processes/tasks/{idOrName}

Updates an existing Task definition.

Parameters

Name Type Description
automaticPublish boolean Controls whether a Task is automatically published after it is created or updated (optional). If set to true, the Task is validated and published in a single operation. If omitted or set to false, the Task is created as a draft and not published.

Request

  • Method: PUT
  • Path: $BASE_URL/v2/processes/tasks/{idOrName}

Request Body

{
  "taskDefinition":
    "name": "string", // Unique name of the Task definition
    "description": "string", // Description of the Task
    "titleTemplate": "string", // string: Template for the generated user stories document title
    "promptData": { 
      "instructions": "string", // Instructions for generating user stories
      "examples":  
        {
          "inputData": "string", // Example input transcript and documentation
          "output": "string" // Example output user stories in JSON format
        }
      
    },
    "artifactTypes":  
      {
        "usageType": "string", // Indicates if the artifact is 'output'
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // string: Description of the artifact type
      },
      {
        "usageType": "string", // Indicates if the artifact is 'input' 
        "isRequired": boolean, // Whether the artifact is required
        "name": "string", // Name of the artifact type (e.g.: Text)
        "description": "string" // Description of the artifact type
      }
    
  }
}

Response

{
  "artifactTypes": 
    {
      "isRequired": boolean, // Whether the artifact is required
      "name": "string", // Name of the artifact type
      "usageType": "string" // Indicates if the artifact is 'input' or 'output'
    }
  ,
  "description": "string", // Description of the Task
  "id": "string", // Unique identifier for the Task instance
  "name": "string", // Name of the Task
  "prompt": { 
    "examples": 
      {
        "inputData": "string", //Example input transcript and documentation
        "output": "string" // Example output user stories in JSON format
      }
    ,
    "instructions": "string" // Instructions for generating user stories
  },
  "revision": integer, // Revision number of the task
  "status": "string", // Current status of the task (e.g., 'active')
  "version": integer // Version number of the task
}

cURL Sample

curl -X PUT “$BASE_URL/v2/processes/tasks/{IdOrName}?automaticPublish=true” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
  "taskDefinition": {
    "name": "create-test-plan-product",
    "description": "based on the product requirements, extract test case scenarios",
    "titleTemplate": "Create Test-Plan for Ticket #{{issue_id}}",
    "promptData": {
      "instructions": "The first thing you need to do is read the Product Requirements Document (PRD) from a file that should be provided in variable !prd_file_path!. If you dont have that then indicate that you cannot continue. Once you read the requirements, create a test plan to test those requirements. The test plan should be in markdown format, it should contain all the test cases that you evaluate are needed. For each test case provide a name, pre-requisites, data and expected outcome. Once you are done, save the content in a document using the tool to create-artifact and name the artifact using as test_case_plan_!issue_id!.",
      "examples": 
        {
          "inputData": "Example PRD:\n- Feature: User Login\n- Requirement 1: The system must allow users to log in using email and password.\n- Requirement 2: The system must validate the email format and password length.\n- Requirement 3: Display appropriate error messages for invalid credentials.\n- Requirement 4: Limit login attempts to 5 before temporary lockout.\n- Additional Notes: The login page must load in less than 2 seconds."
        }
      ,
      "context": ""
    },
    "artifactTypes": 
      {
        "usageType": "input",
        "isRequired": true,
        "name": "Text",
        "description": "Input file containing the Product Requirements Document"
      },
      {
        "usageType": "output",
        "isRequired": true,
        "name": "Text",
        "description": "Generated test case plan based on the PRD"
      }
    
  }
}'

GET/processes/tasks

Retrieves a list of Tasks. Supports pagination and filters.

Parameters

Name Type Description
name string Filter by name (partial match)
id string
start integer Pagination start index
count integer Number of items per page
allowDrafts boolean Include draft Tasks in the results

Request

  • Method: GET
  • Path: $BASE_URL/v2/processes/tasks
  • Request Body: Empty

Response

{
  "total": integer,                   // Total number of Tasks matching the filter
  "start": integer,                   // Pagination start index
  "count": integer,                   // Number of items returned in this page
  "items": 
    {
      "id": "string",           // Unique identifier for the Task 
      "name": "string",         // Name of the Task 
      "description": "string",  // Description of the Task 
      "titleTemplate": "string",// Template for the Task title
      "revision": integer,            // Revision number of the Task (integer)
      "version": integer,             // Version number of the Task (integer)
      "status": "string"        // Status of the Task (e.g., "draft")
    }
  
}

cURL Sample

curl -X GET "$BASE_URL/v2/processes/tasks?id=string&start=integer&count=integer&allowDrafts=true" \
  -H 'ProjectId: $GEAI_PROJECT_ID' \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

GET /processes/tasks/{idOrName}

Retrieves detailed information about a specific Task, with optional selection of revision/version and inclusion of drafts.

Parameters

Name Type Description
revision integer Specific revision number to retrieve
version integer Specific version number to retrieve
allowDrafts boolean Whether to include drafts in the response

Request

  • Method: GET
  • Path: $BASE_URL/v2/processes/tasks/{idOrName}
  • Body: Empty

Response

{
  "description": "string",         // Description of the Task 
  "id": "string",                  // Unique identifier for the Task 
  "name": "string",                // Name of the Task 
  "revision": integer,               // Revision number,
  "status": "string",          // Status of this revision (e.g., "published"),
  "version": integer,                // Version number (integer)
}

cURL Sample

curl -X GET "$BASE_URL/v2/processes/tasks/{IdOrName}g?revision=1&version=1&allowDrafts=true" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

DELETE /processes/tasks/{idOrName}

Deletes a Task definition.

Request

  • Method: GET
  • Path: $BASE_URL/v2/processes/tasks/{idOrName}
  • Body: Empty

Response

  • 204 No Content
  • No body returned

cURL Sample

curl -X DELETE "$BASE_URL/v2/processes/tasks/{idOrName}" \
  -H 'ProjectId: $GEAI_PROJECT_ID'

POST /agent-studio/agentic-process-definition/artifact-types

Creates a new artifact type definition.

Request

  • Method: POST
  • Path: $BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types

Request Body

{
  "artifactDefinition": {
    "name": "string",
    "description": "string",
    "tag": "string"
  }
}

Response

{
  "description": "string",
  "id": "string",
  "name": "string"
}

cURL Sample

curl -X POST "$BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types" \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "artifactDefinition": {
    "name": "weatherInfo",
    "description": "There must be a nice description",
    "tag": "wi"
  }
}'

PUT /agent-studio/agentic-process-definition/artifact-types/{idOrName}

Updates an existing artifact type definition.

Request

  • Method: PUT
  • Path: $BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{idOrName}

Request Body

{
  "artifactDefinition": {
    "name": "string",
    "description": "string",
    "tag": "string"
  }
}

Response

{
  "description": "string",
  "id": "string",
  "name": "string"
}

cURL Sample

curl -X PUT "$BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{idOrName}" \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "artifactDefinition": {
        "name": "Sample Artifact",
        "description": "An updated description",
        "tag": "abc"
  }
}'

GET /agent-studio/agentic-process-definition/artifact-types/{idOrName}

Retrieves a specific artifact type.

Request

  • Method: GET
  • Path: $BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{idOrName}
  • Body: Empty

Response

{
  "description": "string",
  "id": "string",
  "name": "string",
  "status": "string"    // “active”
}

cURL Same

curl -X GET "$BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{IdOrName}" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

DELETE/agent-studio/agentic-process-definition/artifact-types/{idOrName}

Deletes a specific artifact type.

Request

  • Method: DELETE
  • Path: $BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{idOrName}
  • Body: Empty

Response

  • 204 No Content on success.

cURL Sample

curl -X DELETE "$BASE_URL/v1/agentic-process-definition/artifact-types/{idOrName}" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

GET /agent-studio/agentic-process-definition/artifact-types

Retrieves a list of artifact types with optional filters.

Parameters

Name Type Description
start integer Pagination start index (default 1)
count integer Number of items to return

Request

  • Method: GET
  • Path: BASE_URL/agent-studio/agentic-process-definition/artifact-types/{idOrName}
  • Body: Empty

Response

{
  "artifactTypes": 
  {
      "id": "string",
      "name": "name",
      "status": "string"
    },
// repeats one node per retrieved Artifact.
  
}

cURL Sample

curl -X GET "$BASE_URL/v1/agent-studio/agentic-process-definition/artifact-types/{idOrName}?start=1&count=10" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

POST /processes

Creates a new Agentic Process definition specifying a workflow with agentic activities, signals, events, and data variables.

Request

  • Method: POST
  • Path: $BASE_URL/v2/processes

Request Body

{
  "processDefinition": {
    "key": "string",                   // Required Unique key for the Agentic Process within the Project.
    "name": "string",                  // Required Name of the Agentic Process, must be unique within the Project and exclude ':' or '/'.
    "description": "string",           // Description of the Agentic Process’s purpose or workflow.
    "kb": {                            // Optional Knowledge base associated with the Agentic Process.
      "name": "string",                // Name of the knowledge base.
      "artifactTypeName":             // List of Artifact type names managed by the knowledge base.
        "string"
      
      // "id": "string"                // Optional Knowledge base identifier.
    },
    "agenticActivities":              // [Optional List of agentic activities defining the steps of the Agentic Process.
      {
        "key": "string",               // Unique key for the activity within the Agentic Process.
        "name": "string",              // Name of the activity.
        "taskName": "string",          // Optional if taskId is present Name of the Task this activity executes.
        // "taskId": "string",         // Optional if taskName is present ID of the Task.
        "agentName": "string",         // Optional if agentId is present Name of the agent performing the task.
        // "agentId": "string",        // Optional if agentName is present ID of the agent.
        "agentRevisionId": integer     // Specific revision of the agent to use (0 for latest published).
        // "taskRevisionId": integer   // Specific revision of the Task to use (0 for latest published).
      }
    ],
    "artifactSignals":                // [Optional List of Artifact signals triggering actions based on Artifact events.
      {
        "artifactTypeName":           // List of Artifact type names this signal responds to.
          "string"
        ,
        "handlingType": "string",      // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",               // Unique key for the signal within the Agentic Process.
        "name": "string"               // Name of the signal.
      }
    ],
    "startEvent": {                    // Required The starting event of the Agentic Process.
      "key": "string",                 // Unique key for the start event.
      "name": "string"                 // Name of the start event.
    },
    "endEvent": {                      // Required The ending event of the Agentic Process.
      "key": "string",                 // Unique key for the end event.
      "name": "string"                 // Name of the end event.
    },
    "sequenceFlows":                  // List of sequence flows defining the Agentic Process flow.
      {
        "key": "string",               // Unique key for the flow within the Agentic Process.
        "label": "string",             // Label assigned to the path in the flow-diagram.
        "sourceKey": "string",         // Key of the source element (event, signal, or activity).
        "targetKey": "string"          // Key of the target element (event, signal, or activity).
        // "condition": {              // [Optional Condition for the flow (not currently supported).
        //   "expression": "string"    // Expression to evaluate for this path.
        // },
        // "isDefault": boolean        // Indicates the default path (not currently supported).
      }
    ],
    "relevantData":                   // [Optional List of variables available to the Agentic Process.
      {
        "key": "string",               // Unique key of the variable within the Agentic Process.
        "dataType": "string"           // Data-type of the variable.
        // "description": "string"     // Optional Description for the variable.
      }
    ]
    // "userSignals":                 // [Optional List of user signals triggering actions based on user input.
    //   {
    //     "key": "string",            // Unique key for the signal within the Agentic  Process.
    //     "name": "string"            // Name of the signal (e.g., "process-completed").
    //   }
    // ]
  }
}

Response

{
  "processDefinition": {
    "Status": "string",                    // Status of the Agentic Process definition (e.g., "active").
    "VersionId": integer,                  // Version identifier.
    "agenticActivities": 
      {
        "agentId": "string",               // ID of the agent.
        "agentName": "string",             // Name of the agent.
        "agentRevisionId": integer,        // Revision of the agent.
        "key": "string",                   // Unique key for the activity.
        "name": "string",                  // Name of the activity.
        "taskId": "string",                // ID of the Task.
        "taskName": "string",              // Name of the Task.
        "taskRevisionId": integer          // Revision of the Task.
      }
    ,
    "artifactSignals": 
      {
        "artifactTypeName": [
          "string"
        ,
        "handlingType": "string",          // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",                   // Unique key for the signal.
        "name": "string"                   // Name of the signal.
      }
    ],
    "description": "string",               // Description of the Agentic Process.
    "endEvent": {
      "key": "string",                     // Unique key for the end event.
      "name": "string"                     // Name of the end event.
    },
    "id": "string",                        // Resource identifier.
    "isDraft": boolean,                    // Indicates if the Agentic Process is a draft.
    "kb": {
      "artifactTypeName": 
        "string"
      ,
      "id": "string",                      // Knowledge base identifier.
      "name": "string"                     // Name of the knowledge base.
    },
    "name": "string",                      // Name of the Agentic Process.
    "relevantData": 
      {
        "dataType": "string",              // Data-type of the variable.
        "key": "string"                    // Unique key of the variable.
      }
    ,
    "revision": integer,                   // Revision number.
    "sequenceFlows": 
      {
        "key": "string",                   // Unique key for the flow.
        "label": "string",                 // Label for the flow.
        "order": integer,                  // Order of the flow.
        "sourceKey": "string",             // Key of the source element.
        "targetKey": "string"              // Key of the target element.
      }
    ,
    "startEvent": {
      "key": "string",                     // Unique key for the start event.
      "name": "string"                     // Name of the start event.
    },
    "userSignals": 
      {
        "key": "string",                   // Unique key for the user signal.
        "name": "string"                   // Name of the user signal.
      }
    
  }
}

cURL Sample

curl -X POST "$BASE_URL/v2/processes" \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
    "processDefinition": {
      "key": "TestTranslator",
      "name": "Test Translator",
      "description": "A process that receives a text, converts it to markdown and translates it to selected language.",
      "kb": {
        "name": "text-translation-kb",
        "artifactTypeName": 
          "Text",
          "MarkdownArticle",
          "TranslatedMarkdownArticle"
        
      },
      "agenticActivities": 
        {
          "key": "Markdown",
          "name": "Markdown convertor",
          "taskName": "Convert to Markdown",
          "agentName": "GlobantDocumentationAssistant",
          "agentRevisionId": 0
        },
        {
          "key": "Translator",
          "name": "Translates from markdown",
          "taskName": "Translate Article",
          "agentName": "ExpertTranslator",
          "agentRevisionId": 0
        }
      ,
      "artifactSignals": 
        {
          "artifactTypeName": [
            "Text"
          ,
          "handlingType": "C",
          "key": "START",
          "name": "Start"
        }
      ],
      "startEvent": {
        "key": "START",
        "name": "Start"
      },
      "endEvent": {
        "key": "END",
        "name": "End"
      },
      "sequenceFlows": 
        {
          "key": "flow1",
          "label": "Convert to Markdown",
          "sourceKey": "START",
          "targetKey": "Markdown"
        },
        {
          "key": "flow2",
          "label": "Translate Markdown",
          "sourceKey": "Markdown",
          "targetKey": "Translator"
        },
        {
          "key": "flow3",
          "label": "Finish",
          "sourceKey": "Translator",
          "targetKey": "END"
        }
      ,
      "relevantData": 
        {
          "key": "Language",
          "dataType": "string"
        }
      
    }
  }'

PUT /processes/{idOrName}/upsert

Creates or updates (upserts) an Agentic Process definition by its ID or name.

Request

  • Method: PUT
  • Path: $BASE_URL/v2/processes/{idOrName}/upsert

Request Body

{
  "processDefinition": {
    "key": "string",                   // Required Unique key for the Agentic Process within the Project.
    "name": "string",                  // Required Name of the process, must be unique within the Project and exclude ':' or '/'.
    "description": "string",           // Description of the Agentic Process’s purpose or workflow.
    "kb": {                            // Optional Knowledge base associated with the Agentic Process.
      "name": "string",                // Name of the knowledge base.
      "artifactTypeName":             // List of Artifact type names managed by the knowledge base.
        "string"
      
      // "id": "string"                // Optional Knowledge base identifier.
    },
    "agenticActivities":              // [Optional List of agentic activities defining the steps of the Agentic Process.
      {
        "key": "string",               // Unique key for the activity within the Agentic Process.
        "name": "string",              // Name of the activity.
        "taskName": "string",          // Optional if taskId is present Name of the Task this activity executes.
        // "taskId": "string",         // Optional if taskName is present ID of the Task.
        "agentName": "string",         // Optional if agentId is present Name of the agent performing the Task.
        // "agentId": "string",        // Optional if agentName is present ID of the agent.
        "agentRevisionId": integer     // Specific revision of the agent to use (0 for latest published).
        // "taskRevisionId": integer   // Specific revision of the Task to use (0 for latest published).
      }
    ],
    "artifactSignals":                // [Optional List of Artifact signals triggering actions based on Artifact events.
      {
        "artifactTypeName":           // List of Artifact type names this signal responds to.
          "string"
        ,
        "handlingType": "string",      // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",               // Unique key for the signal within the Agentic Process.
        "name": "string"               // Name of the signal.
      }
    ],
    "startEvent": {                    // Required The starting event of the Agentic Process.
      "key": "string",                 // Unique key for the start event.
      "name": "string"                 // Name of the start event.
    },
    "endEvent": {                      // Required The ending event of the Agentic Process.
      "key": "string",                 // Unique key for the end event.
      "name": "string"                 // Name of the end event.
    },
    "sequenceFlows":                  // List of sequence flows defining the Agentic Process flow.
      {
        "key": "string",               // Unique key for the flow within the Agentic Process.
        "label": "string",             // Label assigned to the path in the flow-diagram.
        "sourceKey": "string",         // Key of the source element (event, signal, or activity).
        "targetKey": "string"          // Key of the target element (event, signal, or activity).
        // "condition": {              // [Optional Condition for the flow (not currently supported).
        //   "expression": "string"    // Expression to evaluate for this path.
        // },
        // "isDefault": boolean        // Indicates the default path (not currently supported).
      }
    ],
    "relevantData":                   // [Optional List of variables available to the Agentic Process.
      {
        "key": "string",               // Unique key of the variable within the Agentic Process.
        "dataType": "string"           // Data-type of the variable.
        // "description": "string"     // Optional Description for the variable.
      }
    ]
    // "userSignals":                 // [Optional List of user signals triggering actions based on user input.
    //   {
    //     "key": "string",            // Unique key for the signal within the Agentic Process.
    //     "name": "string"            // Name of the signal (e.g., "process-completed").
    //   }
    // ]
  }
}

Response

{
  "processDefinition": {
    "Status": "string",                    // Status of the Agentic Process definition (e.g., "active").
    "VersionId": integer,                  // Version identifier.
    "agenticActivities": 
      {
        "agentId": "string",               // ID of the agent.
        "agentName": "string",             // Name of the agent.
        "agentRevisionId": integer,        // Revision of the agent.
        "key": "string",                   // Unique key for the activity.
        "name": "string",                  // Name of the activity.
        "taskId": "string",                // ID of the Task.
        "taskName": "string",              // Name of the Task.
        "taskRevisionId": integer          // Revision of the Task.
      }
    ,
    "artifactSignals": 
      {
        "artifactTypeName": [
          "string"
        ,
        "handlingType": "string",          // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",                   // Unique key for the signal.
        "name": "string"                   // Name of the signal.
      }
    ],
    "description": "string",               // Description of the Process.
    "endEvent": {
      "key": "string",                     // Unique key for the end event.
      "name": "string"                     // Name of the end event.
    },
    "id": "string",                        // Resource identifier.
    "isDraft": boolean,                    // Indicates if the Agentic Process is a draft.
    "kb": {
      "artifactTypeName": 
        "string"
      ,
      "id": "string",                      // Knowledge base identifier.
      "name": "string"                     // Name of the knowledge base.
    },
    "name": "string",                      // Name of the Agentic Process.
    "relevantData": 
      {
        "dataType": "string",              // Data-type of the variable.
        "key": "string"                    // Unique key of the variable.
      }
    ,
    "revision": integer,                   // Revision number.
    "sequenceFlows": 
      {
        "key": "string",                   // Unique key for the flow.
        "label": "string",                 // Label for the flow.
        "order": integer,                  // Order of the flow.
        "sourceKey": "string",             // Key of the source element.
        "targetKey": "string"              // Key of the target element.
      }
    ,
    "startEvent": {
      "key": "string",                     // Unique key for the start event.
      "name": "string"                     // Name of the start event.
    },
    "userSignals": 
      {
        "key": "string",                   // Unique key for the user signal.
        "name": "string"                   // Name of the user signal.
      }
    
  }
}

cURL Sample

curl -X POST “$BASE_URL/v2/processes/{idorName}/upsert” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
    "processDefinition": {
      "key": "TestTranslator",
      "name": "Test Translator",
      "description": "Updating the process that receives a text, converts it to markdown and translates it to selected language.",
      "kb": {
        "name": "text-translation-kb",
        "artifactTypeName": 
          "Text",
          "MarkdownArticle",
          "TranslatedMarkdownArticle"
        
      },
      "agenticActivities": 
        {
          "key": "Markdown",
          "name": "Markdown convertor",
          "taskName": "Convert to Markdown",
          "agentName": "GlobantDocumentationAssistant",
          "agentRevisionId": 0
        },
        {
          "key": "Translator",
          "name": "Translates from markdown",
          "taskName": "Translate Article",
          "agentName": "ExpertTranslator",
          "agentRevisionId": 0
        }
      ,
      "artifactSignals": 
        {
          "artifactTypeName": [
            "Text"
          ,
          "handlingType": "C",
          "key": "START",
          "name": "Start"
        }
      ],
      "startEvent": {
        "key": "START",
        "name": "Start"
      },
      "endEvent": {
        "key": "END",
        "name": "End"
      },
      "sequenceFlows": 
        {
          "key": "flow1",
          "label": "Convert to Markdown",
          "sourceKey": "START",
          "targetKey": "Markdown"
        },
        {
          "key": "flow2",
          "label": "Translate Markdown",
          "sourceKey": "Markdown",
          "targetKey": "Translator"
        },
        {
          "key": "flow3",
          "label": "Finish",
          "sourceKey": "Translator",
          "targetKey": "END"
        }
      ,
      "relevantData": 
        {
          "key": "Language",
          "dataType": "string"
        }
      
    }
  }'

PUT /processes/{idOrName}

Updates an existing Agentic Process definition by its ID or name.

Request

  • Method: PUT
  • Path: $BASE_URL/v2/processes/{idOrName}

Request Body

{
  "processDefinition": {
    "key": "string",                   // Required Unique key for the Agentic Process within the Project.
    "name": "string",                  // Required Name of the Agentic Process, must be unique within the Project and exclude ':' or '/'.
    "description": "string",           // Description of the Agentic Process’s purpose or workflow.
    "kb": {                            // Optional Knowledge base associated with the Agentic Process.
      "name": "string",                // Name of the knowledge base.
      "artifactTypeName":             // List of Artifact type names managed by the knowledge base.
        "string"
      
      // "id": "string"                // Optional Knowledge base identifier.
    },
    "agenticActivities":              // [Optional List of agentic activities defining the steps of the Agentic Process.
      {
        "key": "string",               // Unique key for the activity within the Agentic Process.
        "name": "string",              // Name of the activity.
        "taskName": "string",          // Optional if taskId is present Name of the Task this activity executes.
        // "taskId": "string",         // Optional if taskName is present ID of the Task.
        "agentName": "string",         // Optional if agentId is present Name of the agent performing the task.
        // "agentId": "string",        // Optional if agentName is present ID of the agent.
        "agentRevisionId": integer     // Specific revision of the agent to use (0 for latest published).
        // "taskRevisionId": integer   // Specific revision of the Task to use (0 for latest published).
      }
    ],
    "artifactSignals":                // [Optional List of Artifact signals triggering actions based on 
Artifact events.
      {
        "artifactTypeName":           // List of Artifact type names this signal responds to.
          "string"
        ,
        "handlingType": "string",      // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",               // Unique key for the signal within the Agentic Process.
        "name": "string"               // Name of the signal.
      }
    ],
    "startEvent": {                    // Required The starting event of the Agentic Process.
      "key": "string",                 // Unique key for the start event.
      "name": "string"                 // Name of the start event.
    },
    "endEvent": {                      // Required The ending event of the Agentic Process.
      "key": "string",                 // Unique key for the end event.
      "name": "string"                 // Name of the end event.
    },
    "sequenceFlows":                  // List of sequence flows defining the Agentic Process flow.
      {
        "key": "string",               // Unique key for the flow within the Agentic Process.
        "label": "string",             // Label assigned to the path in the flow-diagram.
        "sourceKey": "string",         // Key of the source element (event, signal, or activity).
        "targetKey": "string"          // Key of the target element (event, signal, or activity).
        // "condition": {              // [Optional Condition for the flow (not currently supported).
        //   "expression": "string"    // Expression to evaluate for this path.
        // },
        // "isDefault": boolean        // Indicates the default path (not currently supported).
      }
    ],
    "relevantData":                   // [Optional List of variables available to the Agentic Process.
      {
        "key": "string",               // Unique key of the variable within the Agentic Process.
        "dataType": "string"           // Data-type of the variable.
        // "description": "string"     // Optional Description for the variable.
      }
    ]
    "userSignals":                 // [Optional List of user signals triggering actions based on user input.
      {
        "key": "string",            // Unique key for the signal within the Agentic Process.
        "name": "string"            // Name of the signal (e.g., "process-completed").
      }
    ]
  }
}

Response

{
  "processDefinition": {
    "Status": "string",                    // Status of the Agentic Process definition (e.g., "active").
    "VersionId": integer,                  // Version identifier.
    "agenticActivities": 
      {
        "agentId": "string",               // ID of the agent.
        "agentName": "string",             // Name of the agent.
        "agentRevisionId": integer,        // Revision of the agent.
        "key": "string",                   // Unique key for the activity.
        "name": "string",                  // Name of the activity.
        "taskId": "string",                // ID of the Task.
        "taskName": "string",              // Name of the Task.
        "taskRevisionId": integer          // Revision of the Task.
      }
    ,
    "artifactSignals": 
      {
        "artifactTypeName": [
          "string"
        ,
        "handlingType": "string",          // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",                   // Unique key for the signal.
        "name": "string"                   // Name of the signal.
      }
    ],
    "description": "string",               // Description of the Agentic Process.
    "endEvent": {
      "key": "string",                     // Unique key for the end event.
      "name": "string"                     // Name of the end event.
    },
    "id": "string",                        // Resource identifier.
    "isDraft": boolean,                    // Indicates if the Agentic Process is a draft.
    "kb": {
      "artifactTypeName": 
        "string"
      ,
      "id": "string",                      // Knowledge base identifier.
      "name": "string"                     // Name of the knowledge base.
    },
    "name": "string",                      // Name of the Agentic Process.
    "relevantData": 
      {
        "dataType": "string",              // Data-type of the variable.
        "key": "string"                    // Unique key of the variable.
      }
    ,
    "revision": integer,                   // Revision number.
    "sequenceFlows": 
      {
        "key": "string",                   // Unique key for the flow.
        "label": "string",                 // Label for the flow.
        "order": integer,                  // Order of the flow.
        "sourceKey": "string",             // Key of the source element.
        "targetKey": "string"              // Key of the target element.
      }
    ,
    "startEvent": {
      "key": "string",                     // Unique key for the start event.
      "name": "string"                     // Name of the start event.
    },
    "userSignals": 
      {
        "key": "string",                   // Unique key for the user signal.
        "name": "string"                   // Name of the user signal.
      }
    
  }
}

cURL Sample

curl -X PUT “$BASE_URL/v2/processes/{idOrName}” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
    "processDefinition": {
      "key": "TestTranslator",
      "name": "Test Translator",
      "description": "Updating again the process that receives a text, converts it to markdown and translates it to selected language.",
      "kb": {
        "name": "text-translation-kb",
        "artifactTypeName": 
          "Text",
          "MarkdownArticle",
          "TranslatedMarkdownArticle"
        
      },
      "agenticActivities": 
        {
          "key": "Markdown",
          "name": "Markdown convertor",
          "taskName": "Conert to Markdown - 1760549031587",
          "agentName": "GlobantDocumentationAssistant",
          "agentRevisionId": 0
        },
        {
          "key": "Translator",
          "name": "Translates from markdown",
          "taskName": "Translate Article - 1760548897700",
          "agentName": "ExpertTranslator",
          "agentRevisionId": 0
        }
      ,
      "artifactSignals": 
        {
          "artifactTypeName": [
            "Text"
          ,
          "handlingType": "C",
          "key": "START",
          "name": "Start"
        }
      ],
      "startEvent": {
        "key": "START",
        "name": "Start"
      },
      "endEvent": {
        "key": "END",
        "name": "End"
      },
      "sequenceFlows": 
        {
          "key": "flow1",
          "label": "Convert to Markdown",
          "sourceKey": "START",
          "targetKey": "Markdown"
        },
        {
          "key": "flow2",
          "label": "Translate Markdown",
          "sourceKey": "Markdown",
          "targetKey": "Translator"
        },
        {
          "key": "flow3",
          "label": "Finish",
          "sourceKey": "Translator",
          "targetKey": "END"
        }
      ,
      "relevantData": 
        {
          "key": "Language",
          "dataType": "string"
        }
      
    }
  }'

POST /processes/{idOrName}/publish-revision

Publishes a specific revision of an Agentic Process definition.

Request

  • Method: POST
  • Path: $BASE_URL/processes/{idOrName}/publish-revision

Request Body

{
  "revision": integer // Required The revision number to publish.
}

Response

{
  "processDefinition": {
    "Status": "string",                    // Status of the Agentic Process definition (e.g., "active").
    "VersionId": integer,                  // Version identifier.
    "agenticActivities": 
      {
        "agentId": "string",               // ID of the agent.
        "agentName": "string",             // Name of the agent.
        "agentRevisionId": integer,        // Revision of the agent.
        "key": "string",                   // Unique key for the activity.
        "name": "string",                  // Name of the activity.
        "taskId": "string",                // ID of the Task.
        "taskName": "string",              // Name of the Task.
        "taskRevisionId": integer          // Revision of the Task.
      }
    ,
    "artifactSignals": 
      {
        "artifactTypeName": [
          "string"
        ,
        "handlingType": "string",          // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",                   // Unique key for the signal.
        "name": "string"                   // Name of the signal.
      }
    ],
    "description": "string",               // Description of the Agentic Process.
    "endEvent": {
      "key": "string",                     // Unique key for the end event.
      "name": "string"                     // Name of the end event.
    },
    "id": "string",                        // Resource identifier.
    "isDraft": boolean,                    // Indicates if the Agentic Process is a draft.
    "kb": {
      "artifactTypeName": 
        "string"
      ,
      "id": "string",                      // Knowledge base identifier.
      "name": "string"                     // Name of the knowledge base.
    },
    "name": "string",                      // Name of the Agentic Process.
    "relevantData": 
      {
        "dataType": "string",              // Data-type of the variable.
        "key": "string"                    // Unique key of the variable.
      }
    ,
    "revision": integer,                   // Revision number.
    "sequenceFlows": 
      {
        "key": "string",                   // Unique key for the flow.
        "label": "string",                 // Label for the flow.
        "order": integer,                  // Order of the flow.
        "sourceKey": "string",             // Key of the source element.
        "targetKey": "string"              // Key of the target element.
      }
    ,
    "startEvent": {
      "key": "string",                     // Unique key for the start event.
      "name": "string"                     // Name of the start event.
    },
    "userSignals": 
      {
        "key": "string",                   // Unique key for the user signal.
        "name": "string"                   // Name of the user signal.
      }
    
  }
}

cURL Sample

curl X POST “$BASE_URLv2/processes/{idOrName}/publish-revision” \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'content-type: application/json' \
  -d '{
    "revision": 3
  }'

GET /processes/{idOrName}

Allows you to retrieve a specific Agentic Process definition and its details. You can specify the revision and version of the Agentic Process definition to fetch the desired configuration.

Parameters

Name Type Description
revision integer The revision number of the Agentic Process definition.
version integer The version number of the Process definition.

Request

  • Method: GET
  • Path: $BASE_URL/processes/{IdOrName}
  • Body: Empty

Response

{
  "processDefinition": {
    "Status": "string",                    // Status of the process definition (e.g., "active").
    "VersionId": integer,                  // Version identifier.
    "agenticActivities": 
      {
        "agentId": "string",               // ID of the agent.
        "agentName": "string",             // Name of the agent.
        "agentRevisionId": integer,        // Revision of the agent.
        "key": "string",                   // Unique key for the activity.
        "name": "string",                  // Name of the activity.
        "taskId": "string",                // ID of the Task.
        "taskName": "string",              // Name of the Task.
        "taskRevisionId": integer          // Revision of the Task.
      }
    ,
    "artifactSignals": 
      {
        "artifactTypeName": [
          "string"
        ,
        "handlingType": "string",          // Handling type (e.g., 'C' for catch, 'T' for throw).
        "key": "string",                   // Unique key for the signal.
        "name": "string"                   // Name of the signal.
      }
    ],
    "description": "string",               // Description of the process.
    "endEvent": {
      "key": "string",                     // Unique key for the end event.
      "name": "string"                     // Name of the end event.
    },
    "id": "string",                        // Resource identifier.
    "isDraft": boolean,                    // Indicates if the process is a draft.
    "kb": {
      "artifactTypeName": 
        "string"
      ,
      "id": "string",                      // Knowledge base identifier.
      "name": "string"                     // Name of the knowledge base.
    },
    "name": "string",                      // Name of the process.
    "relevantData": 
      {
        "dataType": "string",              // Data-type of the variable.
        "key": "string"                    // Unique key of the variable.
      }
    ,
    "revision": integer,                   // Revision number.
    "sequenceFlows": 
      {
        "key": "string",                   // Unique key for the flow.
        "label": "string",                 // Label for the flow.
        "order": integer,                  // Order of the flow.
        "sourceKey": "string",             // Key of the source element.
        "targetKey": "string"              // Key of the target element.
      }
    ,
    "startEvent": {
      "key": "string",                     // Unique key for the start event.
      "name": "string"                     // Name of the start event.
    },
    "userSignals": 
      {
        "key": "string",                   // Unique key for the user signal.
        "name": "string"                   // Name of the user signal.
      }
    
  }
}

cURL Sample

curl -X GET "$BASE_URL/v2/processes/{idOrName}?revision=0&version=0" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

GET /processes

Allows you to retrieve a list of all Agentic Processes within a specified Project. You can filter the results by revision, version, and whether to include draft Agentic Processes.

Parameters

Name Type Description
revision integer Filter by Agentic Process revision number.
version integer Filter by Agentic Process version number.
allowDrafts boolean If true, include draft Agentic Processes in the results.

Request

  • Method: GET
  • Path: /v2/processes/
  • Body: Empty

Response

A successful response returns a list of Agentic Process definitions. All values below are replaced by their data types.

{
  "processes": 
    {
      "Status": "string",        // Status of the Agentic Process definition (e.g., "active").
      "VersionId": integer,      // Version identifier.
      "description": "string",   // Description of the Agentic Process.
      "id": "string",            // Resource identifier.
      "isDraft": boolean,        // Indicates if the Agentic Process is a draft.
      "name": "string",          // Name of the Agentic Process.
      "revision": integer        // Revision number.
    }
    // ... more Agentic Processes definitions
  
}

cURL Sample

curl -X GET "$BASE_URL/v2/processes/?revision=0&version=0&allowDrafts=true" \
  -H 'Authorization: Bearer $GEAI_APITOKEN'

DELETE /processes/{idOrName}

Deletes an Agentic Process definition by its ID or name.

Request

  • Method: DELETE
  • Path: /v2/processes/{IdOrName}
  • Body: Empty

Response

{
  "status": "string",   // Announces if deletion processes successful
  "deletedId": "string"
}

cURL Sample

curl -X DELETE "$BASE_URL/v2/processes/SimpleAgenticProcess" \
  -H 'Authorization: Bearer $GEAI_APITOKEN' \
  -H 'ProjectId: $GEAI_PROJECT_ID'
Last update: December 2025 | © GeneXus. All rights reserved. GeneXus Powered by Globant