Saltar al contenido
Chatsac Tools

Formulario para WhatsApp · click-to-chat · sin registro

Formulario para WhatsApp en el sitio

El visitante llena y WhatsApp abre con el mensaje listo. Snippet en tu tema. Esto no guarda el lead y no envía solo.

Armar el formulario

Campos

Preview del mensaje

Texto que cae en el campo de WhatsApp. El visitante todavía tiene que tocar Enviar.

Prueba los campos

Mensaje concatenado

Hola, vengo del formulario del sitio.

Snippet listo. Quien llena todavía necesita tocar Enviar en WhatsApp. · 104/2000

Copia el código

HTML con el script adentro. Sin CDN. El código es el mismo en todas las pestañas.

Dónde pegar: Pega antes de '</body>' en cualquier 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>Nombre</span><input id="nome" name="nome" type="text" data-cs-field data-cs-label="Nombre" required /></label>
<label class="cs-wa-label" for="email"><span>Email</span><input id="email" name="email" type="email" data-cs-field data-cs-label="Email" /></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 en 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 = "Hola, vengo del formulario del sitio.";
  var tooLong = "El mensaje quedó demasiado grande para el enlace de WhatsApp. Acorta los 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 ejemplo en el snippet. Cámbialo por el tuyo antes de copiar.

Informa un número válido para copiar el snippet.

Preguntas frecuentes

Esto es igual a Whatsform o Callbell?
No. Whatsform y Callbell hospedan el formulario en su dominio y guardan la respuesta. Aquí el HTML vive en tu sitio. Chatsac no recibe el lead. Quien hace clic abre WhatsApp con el texto listo y todavía toca Enviar.
Por qué no se puede adjuntar PDF o foto?
El envío es un enlace GET (api.whatsapp.com/send). Un archivo no cabe en ese URL. Las herramientas que aceptan upload guardan el archivo en su servidor. Esta pantalla no hace eso.
La FAQ de Meta muestra wa.me. Por qué el código usa api.whatsapp.com/send?
La ayuda al consumidor documenta wa.me. El redirect de wa.me corrompe emoji en el mensaje. El snippet usa api.whatsapp.com/send, el mismo endpoint de las otras tools de Chatsac. No cambies el URL. Fuente: faq.whatsapp.com/5913398998672934.
El visitante llenó y no recibí nada?
El formulario solo abre WhatsApp con el texto en el campo. Si la persona no toca Enviar en la app, el mensaje no sale. Eso no es falla del snippet.
Esto vale como opt-in de marketing?
No. Un mensaje iniciado por el cliente abre conversación. No sustituye un opt-in claro de campaña. La herramienta no resuelve la política de messaging de Meta.