Formulário de site · click-to-chat · sem cadastro
Formulário WhatsApp para o site
O visitante preenche e o WhatsApp abre com a mensagem pronta. Snippet no seu tema. Isto não guarda o lead e não envia sozinho.
Montar o formulário
Campos
Preview da mensagem
Texto que cai no campo do WhatsApp. Ainda falta o visitante apertar Enviar.
Experimente os campos
Mensagem concatenada
Olá, vim pelo formulário do site.
Snippet pronto. Quem preenche ainda precisa apertar Enviar no WhatsApp. · 110/2000
Copie o código
HTML com o script dentro. Sem CDN. O código é o mesmo em todas as abas.
Onde colar: Cole antes de '</body>' em qualquer página HTML.
index.html
<!-- Formulário WhatsApp · Chatsac Tools · não altere o endpoint send -->
<form id="chatsac-wa-form" class="cs-wa-form" novalidate>
<label class="cs-wa-label" for="nome"><span>Nome</span><input id="nome" name="nome" type="text" data-cs-field data-cs-label="Nome" required /></label>
<label class="cs-wa-label" for="email"><span>E-mail</span><input id="email" name="email" type="email" data-cs-field data-cs-label="E-mail" /></label>
<label class="cs-wa-label" for="pedido"><span>Pedido</span><textarea id="pedido" name="pedido" data-cs-field data-cs-label="Pedido" rows="3"></textarea></label>
<button type="submit" class="cs-wa-submit">Enviar no WhatsApp</button>
</form>
<style>
.cs-wa-form{display:flex;flex-direction:column;gap:12px;max-width:28rem;font-family:system-ui,sans-serif}
.cs-wa-label{display:flex;flex-direction:column;gap:4px;font-size:14px}
.cs-wa-label input,.cs-wa-label textarea,.cs-wa-label select{padding:8px 10px;border:1px solid #d4d4d4;border-radius:8px;font:inherit}
.cs-wa-submit{background:#25D366;color:#073B33;border:0;border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer}
</style>
<script>
(function(){
var form = document.getElementById("chatsac-wa-form");
if (!form) return;
var phone = "5511999999999";
var intro = "Olá, vim pelo formulário do site.";
var tooLong = "A mensagem ficou grande demais para o link do WhatsApp. Encurte os campos.";
form.addEventListener("submit", function (e) {
e.preventDefault();
var parts = [];
if (intro) parts.push(intro);
var nodes = form.querySelectorAll("[data-cs-field]");
for (var i = 0; i < nodes.length; i++) {
var el = nodes[i];
if (el.required && !String(el.value || "").trim()) {
if (el.reportValidity) el.reportValidity();
return;
}
var val = String(el.value || "").trim();
if (!val) continue;
var label = el.getAttribute("data-cs-label") || "";
parts.push(label + ": " + val);
}
var text = parts.join("\n");
var url = "https://api.whatsapp.com/send?phone=" + phone;
if (text) url += "&text=" + encodeURIComponent(text);
if (url.length > 2000) {
alert(tooLong);
return;
}
window.location.href = url;
});
})();
</script>Número de exemplo no snippet. Troque pelo seu antes de copiar.
Informe um número válido pra copiar o snippet.
Perguntas frequentes
- Isto é igual ao Whatsform ou Callbell?
- Não. Whatsform e Callbell hospedam o formulário no domínio deles e guardam a resposta. Aqui o HTML fica no seu site. A Chatsac não recebe o lead. Quem clica abre o WhatsApp com o texto pronto e ainda precisa apertar Enviar.
- Por que não dá para anexar PDF ou foto?
- O envio é um link GET (api.whatsapp.com/send). Arquivo não cabe nesse URL. Ferramentas que aceitam upload guardam o arquivo no servidor delas. Esta tela não faz isso.
- A FAQ da Meta mostra wa.me. Por que o código usa api.whatsapp.com/send?
- A ajuda ao consumidor documenta wa.me. O redirect do wa.me corrompe emoji na mensagem. O snippet usa api.whatsapp.com/send, o mesmo endpoint das outras tools da Chatsac. Não troque o URL. Fonte: faq.whatsapp.com/5913398998672934.
- O visitante preencheu e eu não recebi nada?
- O formulário só abre o WhatsApp com o texto no campo. Se a pessoa não apertar Enviar no app, a mensagem não sai. Isso não é falha do snippet.
- Isso vale como opt-in de marketing?
- Não. Uma mensagem iniciada pelo cliente abre conversa. Não substitui um opt-in claro de campanha. A ferramenta não resolve política de messaging da Meta.