> ## Documentation Index
> Fetch the complete documentation index at: https://br.developers.hubspot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Definir uma ação de fluxo de trabalho personalizada (BETA)

> Saiba como definir uma ação de fluxo de trabalho personalizada na versão mais recente da plataforma para desenvolvedores (BETA).

<style>
  {`
    .table-key, .table-key div, .table-key p {
        margin: 0;
        font-size: 14px;
      }
    `}
</style>

Para definir uma [ação de fluxo de trabalho personalizada](/api-reference/automation-actions-v4-v4/guide) para um aplicativo na nova plataforma para desenvolvedores, inclua um diretório `workflow-actions` no projeto, juntamente com um arquivo de configuração `*-hsmeta.json`.

## Estrutura do diretório do projeto

```shell theme={null}
├──src
│   ├── app/
│   │   └── app-hsmeta.json
│   │   └── ...
│   │   └── workflow-actions/
│   │     └── custom-action-hsmeta.json
└──
```

## Definição de ação de fluxo de trabalho personalizado

Veja as opções de configuração disponíveis para o arquivo `*-hsmeta.json`.

```json theme={null}
{
  "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"]
  }
}
```

<p className="table-key">
  Campos marcados com <span style={{ color: 'red' }}>\*</span> são obrigatórios.
</p>

| Campo                                                                 | Tipo              | Descrição                                                                                                                                                                                                                      |
| --------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `uid`<span style={{color:"red"}}>\*</span>                            | String            | Um identificador exclusivo interno para a ação de fluxo de trabalho.                                                                                                                                                           |
| `type`<span style={{color:"red"}}>\*</span>                           | String            | O tipo de componente, que deve ser `workflow-action` neste caso.                                                                                                                                                               |
| `actionUrl`<span style={{color:"red"}}>\*</span>                      | String            | O URL de webhook da API para entregar uma solicitação de execução de fluxo de trabalho.                                                                                                                                        |
| `isPublished`                                                         | Booleano          | Determina se a definição está visível nas contas que instalaram seu aplicativo. Isso é definido por padrão como `false`.                                                                                                       |
| `supportedClients`<span style={{color:"red"}}>\*</span>               | Matriz de objetos | Especifica os clientes aos quais a ação de fluxo de trabalho personalizada oferece suporte. Cada objeto na matriz deve ter uma chave de cliente com um valor de string indicando o tipo de cliente (por exemplo, `WORKFLOWS`). |
| `inputFields`                                                         | Matriz            | Os valores para as entradas que o usuário preencheu.                                                                                                                                                                           |
| `typeDefinition.name`                                                 | String            | O nome ou a chave do campo de entrada.                                                                                                                                                                                         |
| `typeDefinition.type`                                                 | String            | O tipo de valor esperado para o campo de entrada.                                                                                                                                                                              |
| `typeDefinition.fieldType`                                            | String            | O tipo de campo que aparece para os usuários que criam o fluxo de trabalho.                                                                                                                                                    |
| `typeDefinition.options`                                              | Matriz            | Para tipos de enumeração, este campo fornece uma lista de opções. Cada opção deve ter um `value`, com base nos dados fornecidos pelo usuário, e um `label`, que identifica a opção na ferramenta de fluxos de trabalho.        |
| `inputFieldDependencies`                                              | Matriz            | Uma lista de regras que definem os relacionamentos entre duas ou mais entradas, com base em `dependencyType`. Saiba mais [neste](/api-reference/automation-actions-v4-v4/guide#example-%233) exemplo.                          |
| `labels.<locale>`<span style={{color:"red"}}>\*</span>                | String            | Chave de local que mapeia à definição do local. No mínimo, um rótulo em inglês (`en`) e sua definição devem ser incluídos.                                                                                                     |
| `labels.<locale>.inputFieldDescriptions`                              | Objeto            | Um objeto que define os detalhes para as entradas da sua ação. No exemplo acima, este objeto inclui os campos `message` e `priority`.                                                                                          |
| `labels.<locale>.inputFieldOptionLabels`                              | Objeto            | Um objeto obrigatório se seus campos de entrada tiverem opções. Fornece um mapa de rótulos de opções de campo de entrada, indexado pelo valor ou rótulo da opção.                                                              |
| `labels.<locale>.outputFieldLabels`                                   | Objeto            | Um objeto que mapeia as definições de `outputFields` aos rótulos correspondentes mostrados na ferramenta de fluxos de trabalho.                                                                                                |
| `labels.<locale>.actionName`<span style={{color:"red"}}>\*</span>     | String            | O nome da ação, conforme mostrado no painel *Escolha uma ação* no editor de fluxo de trabalho.                                                                                                                                 |
| `labels.<locale>.appDisplayName`<span style={{color:"red"}}>\*</span> | String            | O nome da seção no painel *Escolher uma ação*, em que todas as ações do aplicativo são exibidas. Se `appDisplayName` for definido para várias ações, a primeira ação encontrada será usada.                                    |
| `labels.<locale>.actionCardContent`                                   | String            | Uma descrição resumida exibida no cartão de ação.                                                                                                                                                                              |
| `labels.<locale>.executionRules`                                      | Objeto            | Um objeto que mapeia as definições do seu `executionRules` às mensagens que serão exibidas para resultados de execução no histórico do fluxo de trabalho.                                                                      |
| `objectTypes`                                                         | Matriz            | Os tipos de objeto do CRM disponíveis com os quais esta ação pode ser usada. Se estiver vazio, a ação estará disponível para todos os tipos de objeto.                                                                         |
| `outputFields`                                                        | Matriz            | Os valores que a ação enviará e que poderão ser usados por ações posteriores no fluxo de trabalho. Uma ação personalizada pode ter 0, 1 ou muitas saídas.                                                                      |
| `executionRules`                                                      | Objeto            | Uma lista de definições que você pode especificar para revelar erros do seu serviço ao usuário que cria o fluxo de trabalho.                                                                                                   |
