{
  "name": "Wafly HTTP — primeira mensagem manual (Cloud ou self-hosted)",
  "active": false,
  "nodes": [
    {"id":"manual","name":"Executar teste próprio","type":"n8n-nodes-base.manualTrigger","typeVersion":1,"position":[0,0],"parameters":{}},
    {"id":"config","name":"Configurar instância própria","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[230,0],"parameters":{"assignments":{"assignments":[{"id":"instance","name":"instance","type":"string","value":"SUA_INSTANCIA"},{"id":"token","name":"instanceToken","type":"string","value":"SEU_TOKEN_DA_INSTANCIA"},{"id":"phone","name":"phone","type":"string","value":"SEU_NUMERO_COM_DDI"},{"id":"message","name":"message","type":"string","value":"Teste próprio da integração Wafly HTTP."}]},"options":{}}},
    {"id":"guard","name":"Validar antes de enviar","type":"n8n-nodes-base.code","typeVersion":2,"position":[470,0],"parameters":{"jsCode":"const c = $input.first().json;\nif (!/^[A-Za-z0-9_-]{1,128}$/.test(c.instance || '') || c.instance === 'SUA_INSTANCIA') throw new Error('Configure a sua própria instância.');\nif (!/^[A-Za-z0-9_-]{8,256}$/.test(c.instanceToken || '') || c.instanceToken === 'SEU_TOKEN_DA_INSTANCIA') throw new Error('Configure o token da sua própria instância em ambiente privado.');\nif (!/^[1-9][0-9]{9,14}$/.test(c.phone || '')) throw new Error('Use somente seu destinatário próprio/autorizado, com DDI e apenas dígitos.');\nif (typeof c.message !== 'string' || !c.message.trim() || c.message.length > 500) throw new Error('Use um texto de teste de até 500 caracteres.');\nreturn [{ json: c }];"}},
    {"id":"send","name":"Enviar uma única mensagem (habilitar após configurar)","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[710,0],"disabled":true,"retryOnFail":false,"parameters":{"method":"POST","url":"={{ 'https://wafly.com.br/api-bridge-whats/instances/' + encodeURIComponent($json.instance) + '/token/' + encodeURIComponent($json.instanceToken) + '/send-text' }}","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","sendBody":true,"specifyBody":"json","jsonBody":"={{ JSON.stringify({phone: $json.phone, message: $json.message}) }}","options":{"timeout":15000,"redirect":{"redirect":{"followRedirects":false}},"response":{"response":{"fullResponse":true,"responseFormat":"json"}}}}},
    {"id":"note","name":"Leia antes de habilitar","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[0,-380],"parameters":{"width":950,"height":300,"content":"## Primeiro envio com nodes nativos\n1. Importe sem ativar. Não instala community nodes.\n2. Conecte uma instância própria pelo painel Wafly. Preencha Configurar instância própria e use somente destinatário próprio/autorizado.\n3. No HTTP Request, crie uma credencial Header Auth: Name = Client-Token; Value = seu token de cliente. Selecione a credencial.\n4. O token da instância faz parte da URL pelo contrato atual. Ele fica no workflow privado: não exporte/compartilhe depois de configurar, não exponha prints e restrinja acesso ao projeto. Para requisitos mais estritos, use seu backend como proxy.\n5. Só então habilite o HTTP Request e clique no gatilho manual uma vez. Sem retentativa automática. Timeout pode ocorrer após aceite: confira antes de repetir.\nHTTP2xx/messageId é aceite, não prova de entrega/leitura. Confira seu aparelho. Credenciais e número são do operador, não campos novos do cadastro Wafly. Flex não é oficial da Meta e pode sofrer restrição. Tutorial: https://wafly.com.br/tutoriais/enviar-mensagem-whatsapp-api/"}}
  ],
  "connections":{"Executar teste próprio":{"main":[[{"node":"Configurar instância própria","type":"main","index":0}]]},"Configurar instância própria":{"main":[[{"node":"Validar antes de enviar","type":"main","index":0}]]},"Validar antes de enviar":{"main":[[{"node":"Enviar uma única mensagem (habilitar após configurar)","type":"main","index":0}]]}},
  "settings":{"executionOrder":"v1","saveDataErrorExecution":"none","saveDataSuccessExecution":"none","saveManualExecutions":false,"saveExecutionProgress":false},
  "pinData":{},
  "tags":[]
}
