Use client.Chatwoot para conectar uma instância VZaps ao Chatwoot.
Campos comuns em toda chamada:
| Campo | Tipo | Obrigatório | Descrição |
|---|
InstanceID | string | Sim | ID da instância. |
InstanceToken | string | Sim | Token da instância. |
Chatwoot.Get(ctx, instanceID, options)
Lê configuração atual, incluindo webhook_url e token_masked quando aplicável.
chatwoot, err := client.Chatwoot.Get(ctx, "VZ...", vzaps.InstanceOptions{
InstanceToken: "instance-token",
})
fmt.Printf("%#v\n", chatwoot)
Retorno: configuracao Chatwoot (enabled, url, account_id, webhook_url, token_masked, etc.).
Chatwoot.Set(ctx, req)
Cria ou atualiza integração Chatwoot da instância.
saved, err := client.Chatwoot.Set(ctx, vzaps.ChatwootRequest{
InstanceScopedRequest: vzaps.InstanceScopedRequest{
InstanceID: "VZ...",
InstanceToken: "instance-token",
},
Enabled: true,
URL: "https://app.chatwoot.com",
AccountID: "1",
Token: "chatwoot-api-token",
NameInbox: "WhatsApp VZaps",
SignMsg: true,
SignDelimiter: "\n",
Number: "5511999999999",
ReopenConversation: true,
ConversationPending: false,
ImportContacts: true,
ImportMessages: true,
DaysLimitImportMessages: 30,
AutoCreate: true,
Organization: "Minha empresa",
Logo: "",
IgnoreGroups: false,
IgnoreJids: []any{},
})
fmt.Printf("%#v\n", saved)
Retorno: configuracao salva (inclui webhook_url quando gerada).
Principais campos do payload:
| Campo (JSON) | Campo Go | Obrigatório | Descrição |
|---|
enabled | Enabled | Sim | Habilita ou desabilita a integração. |
url | URL | Sim | URL base do Chatwoot. |
account_id | AccountID | Sim | ID numérico da conta. |
token | Token | Sim | Token API do Chatwoot. |
name_inbox | NameInbox | Não | Nome da inbox na API. |
auto_create | AutoCreate | Não | Cria inbox e webhook automáticamente. |
import_contacts | ImportContacts | Não | Importa contatos no fluxo inicial. |
import_messages | ImportMessages | Não | Importa mensagens no fluxo inicial. |
days_limit_import_messages | DaysLimitImportMessages | Não | Janela de importação de mensagens em dias. Mínimo 1. |
ignore_groups | IgnoreGroups | Não | Ignora mensagens de grupo. |
ignore_jids | IgnoreJids | Não | JIDs a ignorar. |
Copie webhook_url da resposta para a inbox API do Chatwoot quando AutoCreate não aplicar automáticamente.
Chatwoot.Delete(ctx, instanceID, options)
Remove integração Chatwoot da instância.
_, err := client.Chatwoot.Delete(ctx, "VZ...", vzaps.InstanceOptions{
InstanceToken: "instance-token",
})
Retorno: confirmacao de remocao da integracao.
Chatwoot.TriggerImport(ctx, req)
Dispara importação manual de contatos, mensagens ou ambos.
Importar contatos:
_, err := client.Chatwoot.TriggerImport(ctx, vzaps.ChatwootImportRequest{
InstanceScopedRequest: vzaps.InstanceScopedRequest{
InstanceID: "VZ...",
InstanceToken: "instance-token",
},
What: "contacts",
})
Retorno: confirmacao do job de importacao (contacts, messages ou all).
Importar mensagens:
_, err := client.Chatwoot.TriggerImport(ctx, vzaps.ChatwootImportRequest{
InstanceScopedRequest: vzaps.InstanceScopedRequest{
InstanceID: "VZ...",
InstanceToken: "instance-token",
},
What: "messages",
})
Importar tudo:
_, err := client.Chatwoot.TriggerImport(ctx, vzaps.ChatwootImportRequest{
InstanceScopedRequest: vzaps.InstanceScopedRequest{
InstanceID: "VZ...",
InstanceToken: "instance-token",
},
What: "all",
})
Valores aceitos para What: contacts, messages, all.