Skip to main content
Última modificación: 8 de octubre de 2025
Para definir una acción de workflow personalizada para una aplicación en la nueva plataforma de desarrolladores, incluye un directorio workflow-actions en el proyecto, junto con un archivo de configuración *-hsmeta.json.

Estructura del directorio del proyecto

├──src
   ├── app/
   └── app-hsmeta.json
   └── ...
   └── workflow-actions/
     └── custom-action-hsmeta.json
└──

Definición de acciones de workflow personalizadas

Abajo se indican las opciones de configuración disponibles para el archivo *-hsmeta.json.
{
  "uid": "simple_notification_action",
  "type": "workflow-action",
  "config": {
    "actionUrl": "https://example.com",
    "isPublished": false,
    "supportedClients": [
      {
        "client": "WORKFLOWS"
      }
    ],
    "inputFields": [
      {
        "typeDefinition": {
          "name": "message",
          "type": "string",
          "fieldType": "textarea"
        },
        "supportedValueTypes": ["STATIC_VALUE"],
        "isRequired": true
      },
      {
        "typeDefinition": {
          "name": "priority",
          "type": "enumeration",
          "fieldType": "select",
          "options": [
            {
              "value": "high",
              "label": "High Priority"
            },
            {
              "value": "normal",
              "label": "Normal Priority"
            },
            {
              "value": "low",
              "label": "Low Priority"
            }
          ]
        },
        "supportedValueTypes": ["STATIC_VALUE"],
        "isRequired": true
      }
    ],
    "labels": {
      "en": {
        "actionName": "My Custom Action (via Projects V2)",
        "actionDescription": "Sends a notification with custom message and priority level",
        "actionCardContent": "Send {{priority}} priority notification",
        "inputFieldLabels": {
          "message": "Notification Message",
          "priority": "Priority Level"
        },
        "inputFieldDescriptions": {
          "message": "Enter the message to be sent in the notification",
          "priority": "Select the priority level for this notification"
        }
      }
    },
    "objectTypes": ["CONTACT"]
  }
}

Los campos marcados con * son obligatorios.

CampoTipoDescripción
uid*CadenaUn identificador único interno para la acción de workflow.
type*CadenaEl tipo de componente, que en este caso debe ser workflow-action.
actionUrl*CadenaLa URL del webhook de la API para entregar una solicitud de ejecución de workflow.
isPublishedBooleanoDetermina si la definición es visible en las cuentas que instalaron tu aplicación. Por defecto, está configurado como false.
supportedClients*Matriz de objetosEspecifica los clientes a los que da asistencia la acción de workflow personalizada. Cada objeto de la matriz debe tener una clave de cliente con un valor de cadena que indique el tipo de cliente (por ejemplo, WORKFLOWS).
inputFieldsMatrizLos valores de las entradas que ha rellenado el usuario.
typeDefinition.nameCadenaEl nombre o clave del campo de entrada.
typeDefinition.typeCadenaEl tipo de valor que debe esperar el campo de entrada.
typeDefinition.fieldTypeCadenaEl tipo de campo que aparece a los usuarios que crean el workflow.
typeDefinition.optionsMatrizPara los tipos de enumeración, este campo proporciona una lista de opciones. Cada opción debe tener un value, basado en la entrada que proporciona el usuario, y un label, que identifica la opción en la herramienta workflows.
inputFieldDependenciesMatrizUna lista de reglas que definen las relaciones entre dos o más entradas, basándose en su dependencyType. Más información en este ejemplo .
labels.<locale>*CadenaClave de configuración regional que se asigna a la definición de configuración regional. Como mínimo, debe definirse una etiqueta en inglés (en) y su definición.
labels.<locale>.inputFieldDescriptionsObjetoUn objeto que define los detalles de las entradas de tu acción. En el ejemplo de arriba, este objeto incluye los campos message y priority.
labels.<locale>.inputFieldOptionLabelsObjetoUn objeto necesario si tus campos de entrada tienen opciones. Proporciona un mapa de las etiquetas de las opciones de los campos de entrada, codificadas por el valor o la etiqueta de la opción.
labels.<locale>.outputFieldLabelsObjetoObjeto que asigna las definiciones de outputFields a las etiquetas correspondientes que aparecen en la herramienta de workflows.
labels.<locale>.actionName*CadenaEl nombre de la acción tal y como se muestra en el panel Elegir una acción del editor de workflows.
labels.<locale>.appDisplayName*CadenaEl nombre de la sección del panel Elegir una acción donde aparecen todas las acciones de la aplicación. Si se define appDisplayName para varias acciones, se utilizará la primera que se encuentre.
labels.<locale>.actionCardContentCadenaUna descripción resumida que aparece en la ficha de la acción.
labels.<locale>.executionRulesObjetoUn objeto que asigna las definiciones de tus executionRules a los mensajes que aparecerán para los resultados de la ejecución en el historial del workflow.
objectTypesMatrizLos tipos de objetos del CRM disponibles con los que se puede utilizar esta acción. Si está vacía, la acción estará disponible para todos los tipos de objetos.
outputFieldsMatrizLos valores que emitirá la acción y que pueden ser utilizados por acciones posteriores del workflow. Una acción personalizada puede tener 0, 1 o muchas salidas.
executionRulesObjetoUna lista de definiciones que puedes especificar para mostrar los errores de tu servicio al usuario que crea el workflow.
I