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

# Chatwoot

> Configurar integração Chatwoot e importar dados com o SDK Java

Use `client.chatwoot()` para conectar uma instancia VZaps ao Chatwoot.

Campos comuns em todas as chamadas:

| Campo           | Tipo     | Obrigatório | Descrição           |
| --------------- | -------- | ----------- | ------------------- |
| `instanceId`    | `string` | Sim         | ID da instância.    |
| `instanceToken` | `string` | Sim         | Token da instância. |

## `client.chatwoot().get(...)`

Lê a configuração atual, incluindo `webhookUrl` e `tokenMasked` quando aplicável.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.chatwoot().get(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** configuracao Chatwoot (`enabled`, `url`, `account_id`, `webhook_url`, `token_masked`, etc.).

## `client.chatwoot().set(...)`

Cria ou atualiza a integração Chatwoot da instância.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.chatwoot().set(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** configuracao salva (inclui `webhook_url` quando gerada).

Campos principais do payload:

| Campo                     | Tipo      | Obrigatório | Descrição                                                |
| ------------------------- | --------- | ----------- | -------------------------------------------------------- |
| `enabled`                 | `boolean` | Sim         | Ativa ou desativa a integração.                          |
| `url`                     | `string`  | Sim         | URL base do Chatwoot.                                    |
| `accountId`               | `string`  | Sim         | ID numérico da conta.                                    |
| `token`                   | `string`  | Sim         | Token de API do Chatwoot.                                |
| `nameInbox`               | `string`  | Não         | Nome da inbox API.                                       |
| `autoCreate`              | `boolean` | Não         | Cria inbox e webhook automáticamente.                    |
| `importContacts`          | `boolean` | Não         | Importa contatos no fluxo inicial.                       |
| `importMessages`          | `boolean` | Não         | Importa mensagens no fluxo inicial.                      |
| `daysLimitImportMessages` | `number`  | Não         | Janela em dias para importação de mensagens. Mínimo `1`. |
| `ignoreGroups`            | `boolean` | Não         | Ignora mensagens de grupos.                              |
| `ignoreJids`              | `array`   | Não         | JIDs a ignorar.                                          |

<Tip>
  Copie `webhookUrl` da resposta para o inbox API do Chatwoot quando `autoCreate` não aplicar sozinho.
</Tip>

## `client.chatwoot().delete(...)`

Remove a integração Chatwoot da instância.

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.chatwoot().delete(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** confirmacao de remocao da integracao.

## `client.chatwoot().triggerImport(...)`

Dispara importação manual de contatos, mensagens ou ambos.

Importar contatos:

```java theme={null}
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.chatwoot().triggerImport(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
```

**Retorno:** confirmacao do job de importacao (`contacts`, `messages` ou `all`).

Importar mensagens:

```ts theme={null}
await vzaps.chatwoot.triggerImport({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  what: 'messages',
});
```

Importar tudo:

```ts theme={null}
await vzaps.chatwoot.triggerImport({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  what: 'all',
});
```

Valores aceitos em `what`: `contacts`, `messages`, `all`.
