Pular para o conteúdo principal
Use client.Chatwoot para conectar uma instância VZaps ao Chatwoot. Campos comuns em toda chamada:
CampoTipoObrigatórioDescrição
InstanceIDstringSimID da instância.
InstanceTokenstringSimToken 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 GoObrigatórioDescrição
enabledEnabledSimHabilita ou desabilita a integração.
urlURLSimURL base do Chatwoot.
account_idAccountIDSimID numérico da conta.
tokenTokenSimToken API do Chatwoot.
name_inboxNameInboxNãoNome da inbox na API.
auto_createAutoCreateNãoCria inbox e webhook automáticamente.
import_contactsImportContactsNãoImporta contatos no fluxo inicial.
import_messagesImportMessagesNãoImporta mensagens no fluxo inicial.
days_limit_import_messagesDaysLimitImportMessagesNãoJanela de importação de mensagens em dias. Mínimo 1.
ignore_groupsIgnoreGroupsNãoIgnora mensagens de grupo.
ignore_jidsIgnoreJidsNãoJIDs 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.