---
title: "Cómo Añadir un Botón de Chat de WhatsApp a Carrd (Guía 2026)"
description: "Añade un botón de chat de WhatsApp a tu sitio Carrd con código para copiar y pegar: botón flotante, widget de chat y opciones multi-chat, con pasos de configuración y solución de problemas."
date: 2026-01-21
categories: ["web-development"]
tags: ["carrd","whatsapp"]
---

import Button from "@components/widgets/Button.astro";
import { Picture } from "astro:assets";
import imag1 from "@assets/images/24/02/carrd-back-to-top-embed.png";
import Notice from "@components/widgets/Notice.astro";
import ListCheck from "@components/widgets/ListCheck.astro";
import Accordion from "@components/widgets/Accordion.astro";
import Tabs from "@components/widgets/Tabs.astro";
import Tab from "@components/widgets/Tab.astro";

Los formularios de contacto están bien, pero algunos visitantes quieren respuestas ahora. Un **botón de chat de WhatsApp** en tu sitio [Carrd](https://go.bitdoze.com/carrd) les permite escribirte al instante, sin salir de la página ni rellenar un formulario.

Esto funciona bien para negocios de servicios, tiendas locales y freelancers que ya viven en WhatsApp. Los estilos de botón flotante y widget de chat de abajo son HTML y CSS puros con SVG en línea, así que no hay scripts de terceros que cargar.

Una cosa de entrada: todas las opciones de aquí viven en un elemento Embed de Carrd, y eso requiere **Carrd Pro Standard o superior** (19 $/año). El plan gratuito y Pro Lite no pueden añadir código personalizado. Detalles abajo.

<Button link="https://go.bitdoze.com/carrd" text="Carrd.co" />

Algunos tutoriales de Carrd:

- [Añadir un Modal Emergente a Carrd](https://www.bitdoze.com/es/ventana-modal-emergente-carrd/)
- [Añadir Scroll Suave a Carrd](https://www.bitdoze.com/carrd-smooth-scroll/)
- [Añadir un Alternador de Modo Oscuro a Carrd](https://www.bitdoze.com/es/alternador-modo-oscuro-carrd/)
- [Añadir un Menú Flotante a Carrd](https://www.bitdoze.com/carrd-floating-menu/)
- [Añadir un Menú Lateral a Carrd](https://www.bitdoze.com/carrd-sidebar-menu/)
- [Análisis de Carrd.co](https://www.bitdoze.com/carrd-review/)

> La lista completa con plugins, temas y tutoriales de Carrd la encuentras en mi sitio **[carrdme.com](https://carrdme.com/)**.

## Por Qué Añadir un Botón de WhatsApp a Tu Sitio Carrd

Algunas razones por las que funciona:

1. **Conexión instantánea** - Los visitantes pueden escribirte de inmediato en lugar de esperar una respuesta por email.

2. **Mayor conversión** - La gente es más propensa a contactar cuando es así de fácil.

3. **Amigable con el móvil** - WhatsApp ya está en su teléfono. Un toque y están chateando.

4. **Mensajes pre-rellenados** - Puedes definir un mensaje por defecto para que los visitantes no tengan que pensar qué escribir.

5. **Alcance global** - WhatsApp tiene más de 3.000 millones de usuarios mensuales (a fecha de 2025). En muchos países es la forma principal de escribir a un negocio.

Un simple botón flotante cubre la mayoría de casos. Si quieres un "widget de chat de WhatsApp para Carrd" con una vista previa del mensaje antes de que se abra el chat, la Opción 3 de abajo está hecha para eso. Los negocios de servicios, tiendas locales y freelancers suelen sacarle más partido.

## Qué Necesitas Antes de Empezar

Esta es la lista corta. El requisito del plan es el que bloquea a la gente, así que va primero.

<ListCheck>
<ul>
<li>Una cuenta de Carrd en <strong>Pro Standard o superior</strong> (19 $/año) - Los Embeds no están en el plan gratuito ni en Pro Lite</li>
<li>Tu número de WhatsApp en formato internacional (código de país, sin ceros delante)</li>
<li>La app de WhatsApp en tu teléfono, o WhatsApp Web, para probar la entrega del chat</li>
<li>Opcional: la app gratuita WhatsApp Business si quieres mensajes de saludo y un enlace corto que oculta el número</li>
</ul>
</ListCheck>

<Notice type="warning" title="Necesitas Carrd Pro Standard o superior">
El elemento Embed que se usa en todas las opciones requiere Pro Standard (19 $/año) o superior. El plan gratuito y Pro Lite (9 $/año) no pueden añadir código personalizado, así que un botón de WhatsApp no es posible en esos planes. Precios verificados contra <a href="https://carrd.com/pro">carrd.com/pro</a> en septiembre de 2026.
</Notice>

| Plan | Precio | Sitios | Qué incluye |
|---|---|---|---|
| Pro Lite | 9 $/año | 3 | Sin Embeds |
| **Pro Standard** | **19 $/año** | 10 | Embeds, Widgets, Formularios, Analítica, Meta Tags |
| Pro Plus | 49 $/año | 25 | Todo lo de Standard más Ajustes Avanzados, Protección por Contraseña, Framing |

Pro Standard es la elección por defecto: 19 $/año sale a unos 1,60 $/mes, y te da Embeds más Analítica (útil para el snippet de seguimiento de clics de más adelante). No pagaría Pro Plus solo por un botón de chat. Para el desglose completo de planes, mira [los planes y precios de Carrd Pro](https://www.bitdoze.com/carrd-review/).

<Button link="https://go.bitdoze.com/carrd" text="Consigue Carrd Pro" variant="solid" color="green" />

## Cómo Añadir un Botón de WhatsApp a Carrd

Tres pasos: crea tu enlace `wa.me`, añade un elemento Embed, pega uno de los cuatro estilos de código de abajo. Todo es HTML, CSS y SVG en línea. Sin script de widget, sin fuente externa y (en general) sin carga extra de consentimiento de cookies por el propio código.

### Paso 1: Consigue Tu Enlace de Chat de WhatsApp (wa.me)

El formato de enlace click-to-chat de WhatsApp es:

```text
https://wa.me/YOURNUMBER
```

Sustituye `YOURNUMBER` por tu número de teléfono en formato internacional, sin `+`, espacios ni guiones. Por ejemplo:
- Número de EE. UU.: `12125551234`
- Número de Reino Unido: `447911123456`

Para añadir un mensaje pre-rellenado:

```text
https://wa.me/YOURNUMBER?text=Hi,%20I%20found%20you%20on%20your%20website
```

Los espacios deben ser `%20` en las URLs. Usa `%0A` para los saltos de línea.

<svg role="img" aria-label="Anatomía de un enlace click-to-chat wa.me: URL base, número de teléfono en formato internacional y mensaje pre-rellenado codificado para URL" viewBox="0 0 600 230" width="100%" xmlns="http://www.w3.org/2000/svg">
  <text x="20" y="28" fill="#57606a" fontSize="13" fontWeight="600">Anatomía de un enlace wa.me</text>
  <rect x="18" y="44" width="564" height="64" rx="10" fill="#f4f6f8" stroke="#d0d7de" strokeWidth="1.5"/>
  <text x="34" y="84" fontFamily="ui-monospace, SFMono-Regular, Menlo, monospace" fontSize="17">
    <tspan fill="#57606a">https://wa.me/</tspan>
    <tspan fill="#0d7d3f" fontWeight="700">447911123456</tspan>
    <tspan fill="#57606a">?text=</tspan>
    <tspan fill="#0552b5" fontWeight="700">Hi%20there</tspan>
  </text>
  <line x1="170" y1="112" x2="170" y2="138" stroke="#0d7d3f" strokeWidth="1.5"/>
  <rect x="20" y="138" width="300" height="54" rx="8" fill="#ddf4e4" stroke="#25D366" strokeWidth="1.5"/>
  <text x="34" y="160" fontSize="13" fill="#0d7d3f" fontWeight="600">código de país + número</text>
  <text x="34" y="180" fontSize="12" fill="#0d7d3f">quita +, espacios, guiones, ceros iniciales</text>
  <line x1="430" y1="112" x2="430" y2="138" stroke="#0552b5" strokeWidth="1.5"/>
  <rect x="340" y="138" width="240" height="54" rx="8" fill="#e7f0fb" stroke="#0552b5" strokeWidth="1.5"/>
  <text x="354" y="160" fontSize="13" fill="#0552b5" fontWeight="600">mensaje codificado para URL</text>
  <text x="354" y="180" fontSize="12" fill="#0552b5">%20 = espacio, %0A = salto de línea</text>
  <text x="20" y="218" fontSize="12" fill="#57606a">Pega esta URL como href en cualquiera de los cuatro estilos de botón de abajo.</text>
</svg>

<Notice type="info" title="El formato del número de teléfono es el fallo nº 1">
Sin <code>+</code>, espacios, guiones, paréntesis ni ceros iniciales. <code>12125551234</code>, no <code>+1 (212) 555-1234</code>. WhatsApp rechaza cualquier otra cosa con "phone number shared via url is invalid".
</Notice>

Dos variantes oficiales más, ambas documentadas en la [página de ayuda de click to chat](https://faq.whatsapp.com/5913398998672934) de WhatsApp:

- **Enlace sin número para elegir chat** - `https://wa.me/?text=Hi!%20Quick%20question` abre WhatsApp y deja que el visitante elija a quién enviarlo.
- **Enlace corto de WhatsApp Business** - `https://wa.me/message/YOURSHORTLINKCODE` oculta tu número de teléfono del código fuente de la página. Lo cubro en detalle en la sección de privacidad de abajo.

`wa.me` es el único formato en la documentación oficial actual. No uses los antiguos enlaces `api.whatsapp.com/send?phone=`, ya no están documentados. Conviene revisar la página oficial de click-to-chat de vez en cuando por si WhatsApp cambia el formato.

### Paso 2: Añade un Elemento Embed en Carrd

Esto requiere Pro Standard o superior. Haz clic en el signo `+` y añade un elemento Embed:

- Type: Code
- Style: Hidden

<Picture formats={["webp"]} fallbackFormat="webp" src={imag1} alt="Ajustes del elemento Embed de Carrd con Type en Code y Style en Hidden" />

Hidden tiene tres ubicaciones en el Carrd actual: **Head**, **Body Top** y **Body End**. Regla general:

- **Body End** - las cuatro opciones. Cada una incluye marcado visible (un `<a>` o `<div>`), que pertenece al body de la página, y el script de la Opción 3 consulta el DOM, así que conviene que el marcado del widget ya esté parseado
- **Head** - solo para snippets de `<style>` puros, como el CSS de personalización de más abajo si lo mantienes en un embed aparte
- **Body Top** - disponible, no hace falta aquí

Si el panel de elementos se está llenando, Carrd lanzó un Elements Panel en agosto de 2026 (More Actions → Elements) que facilita encontrar el código embebido en el editor.

<svg role="img" aria-label="Ubicación del embed de Carrd: Body End para las cuatro opciones, Head solo para snippets de estilos" viewBox="0 0 600 320" width="100%" xmlns="http://www.w3.org/2000/svg">
  <text x="20" y="28" fill="#57606a" fontSize="13" fontWeight="600">Dónde va el código del embed</text>
  <rect x="20" y="48" width="330" height="250" rx="10" fill="#f4f6f8" stroke="#d0d7de" strokeWidth="1.5"/>
  <rect x="36" y="64" width="298" height="56" rx="8" fill="#ddf4e4" stroke="#25D366" strokeWidth="1.5"/>
  <text x="50" y="88" fontSize="14" fontFamily="ui-monospace, Menlo, monospace" fill="#0d7d3f">&lt;head&gt;</text>
  <text x="50" y="108" fontSize="12" fill="#0d7d3f">Embed oculto: Head</text>
  <text x="366" y="96" fontSize="13" fill="#0d7d3f" fontWeight="600">Head → CSS solo de estilos</text>
  <rect x="36" y="136" width="298" height="44" rx="8" fill="#fff8e6" stroke="#d4a72c" strokeWidth="1.5"/>
  <text x="50" y="163" fontSize="13" fill="#8a6d1a">Body Top (sin usar aquí)</text>
  <text x="366" y="163" fontSize="12" fill="#8a6d1a">disponible</text>
  <rect x="36" y="196" width="298" height="44" rx="8" fill="#ffffff" stroke="#d0d7de" strokeWidth="1.5" strokeDasharray="5 4"/>
  <text x="50" y="223" fontSize="13" fill="#57606a">contenido de &lt;body&gt;</text>
  <rect x="36" y="252" width="298" height="32" rx="8" fill="#e7f0fb" stroke="#0552b5" strokeWidth="1.5"/>
  <text x="50" y="273" fontSize="13" fill="#0552b5" fontWeight="600">Embed oculto: Body End</text>
  <text x="366" y="273" fontSize="13" fill="#0552b5" fontWeight="600">Body End → Opciones 1-4</text>
</svg>

<Notice type="warning" title="No se verá nada en el editor">
El elemento Embed no mostrará nada en el editor de Carrd. Es lo esperado. Publica el sitio y abre la URL en vivo para ver el botón. Si pegas código y "no pasa nada", es que aún no has publicado.
</Notice>

### Paso 3: Elige el Estilo de Tu Botón

Cuatro opciones de copiar y pegar abajo. Elige una, pégala en el campo Code del Embed, sustituye `YOURNUMBER` (o los otros marcadores) y publica.

---

## Opción 1: Botón Flotante de WhatsApp Simple

Un botón de WhatsApp limpio que flota en la esquina. Es mi elección por defecto: la menor huella, un enlace, nada que mantener. Si no aparece después de publicar, salta a [Solución de problemas](#solución-de-problemas-el-botón-de-whatsapp-no-funciona-en-carrd).

```html
<style>
  .whatsapp-float {
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 60px;
    height: 60px;
    background-color: #25D366;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
    z-index: 9999;
    transition: all 0.3s ease;
    text-decoration: none;
  }

  .whatsapp-float:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.5);
  }

  .whatsapp-float svg {
    width: 32px;
    height: 32px;
    fill: white;
  }

  /* Pulse animation */
  .whatsapp-float::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #25D366;
    border-radius: 50%;
    z-index: -1;
    animation: pulse 2s infinite;
  }

  @keyframes pulse {
    0% {
      transform: scale(1);
      opacity: 0.7;
    }
    70% {
      transform: scale(1.3);
      opacity: 0;
    }
    100% {
      transform: scale(1);
      opacity: 0;
    }
  }

  /* Hide on desktop if you only want mobile */
  /* 
  @media (min-width: 769px) {
    .whatsapp-float {
      display: none;
    }
  }
  */
</style>

<a href="https://wa.me/YOURNUMBER?text=Hi,%20I%20found%20you%20on%20your%20website" class="whatsapp-float" target="_blank" rel="noopener" aria-label="Chat on WhatsApp">
  <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
    <path d="M16.004 0h-.008C7.174 0 0 7.176 0 16c0 3.5 1.128 6.744 3.046 9.378L1.054 32l6.826-2.192A15.915 15.915 0 0016.004 32C24.826 32 32 24.822 32 16S24.826 0 16.004 0zm9.35 22.614c-.396 1.116-1.956 2.042-3.216 2.312-.864.184-1.99.33-5.786-1.244-4.858-2.014-7.984-6.952-8.226-7.274-.232-.322-1.958-2.606-1.958-4.972s1.238-3.528 1.678-4.012c.396-.436 1.036-.636 1.65-.636.198 0 .376.01.536.018.44.02.66.046.95.734.364.864 1.25 3.05 1.36 3.272.11.222.184.482.036.772-.138.3-.208.486-.416.748-.208.262-.438.584-.626.784-.208.24-.424.5-.182.98.242.48 1.076 1.774 2.312 2.874 1.588 1.414 2.926 1.852 3.342 2.058.416.206.658.172.9-.104.252-.286 1.072-1.248 1.358-1.676.276-.428.562-.356.95-.214.39.144 2.476 1.168 2.9 1.38.424.214.706.322.81.498.104.176.104 1.022-.292 2.138z"/>
  </svg>
</a>
```

**Importante:** Sustituye `YOURNUMBER` por tu número de teléfono real (p. ej., `12125551234`).

El `aria-label="Chat on WhatsApp"` coincide con el ejemplo de etiqueta accesible de los snippets HTML oficiales de WhatsApp. Consérvalo: el botón es solo un icono, así que los lectores de pantalla lo necesitan.

Si además quieres un control de volver arriba, el patrón es casi idéntico. Mira cómo [añadir un botón de volver arriba a Carrd](https://www.bitdoze.com/carrd-back-to-top-button/) (la captura del embed de ese tutorial es la usada en el Paso 2).

---

## Opción 2: Botón con Texto

Un botón que muestra el texto "Chat with us" al pasar el ratón. Se colapsa a un icono por debajo de 600px.

```html
<style>
  .wa-button {
    position: fixed;
    bottom: 25px;
    right: 25px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #25D366;
    padding: 15px 20px;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    z-index: 9999;
    transition: all 0.3s ease;
  }

  .wa-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
  }

  .wa-button svg {
    width: 28px;
    height: 28px;
    fill: white;
    flex-shrink: 0;
  }

  .wa-button-text {
    color: white;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
  }

  /* Collapse to icon only on mobile */
  @media (max-width: 600px) {
    .wa-button {
      padding: 15px;
      border-radius: 50%;
    }
    .wa-button-text {
      display: none;
    }
  }
</style>

<a href="https://wa.me/YOURNUMBER?text=Hi,%20I'm%20interested%20in%20your%20services" class="wa-button" target="_blank" rel="noopener" aria-label="Chat on WhatsApp">
  <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
    <path d="M16.004 0h-.008C7.174 0 0 7.176 0 16c0 3.5 1.128 6.744 3.046 9.378L1.054 32l6.826-2.192A15.915 15.915 0 0016.004 32C24.826 32 32 24.822 32 16S24.826 0 16.004 0zm9.35 22.614c-.396 1.116-1.956 2.042-3.216 2.312-.864.184-1.99.33-5.786-1.244-4.858-2.014-7.984-6.952-8.226-7.274-.232-.322-1.958-2.606-1.958-4.972s1.238-3.528 1.678-4.012c.396-.436 1.036-.636 1.65-.636.198 0 .376.01.536.018.44.02.66.046.95.734.364.864 1.25 3.05 1.36 3.272.11.222.184.482.036.772-.138.3-.208.486-.416.748-.208.262-.438.584-.626.784-.208.24-.424.5-.182.98.242.48 1.076 1.774 2.312 2.874 1.588 1.414 2.926 1.852 3.342 2.058.416.206.658.172.9-.104.252-.286 1.072-1.248 1.358-1.676.276-.428.562-.356.95-.214.39.144 2.476 1.168 2.9 1.38.424.214.706.322.81.498.104.176.104 1.022-.292 2.138z"/>
  </svg>
  <span class="wa-button-text">Chat with us</span>
</a>
```

El `aria-label` importa aún más aquí: una vez el texto se colapsa en móvil, la etiqueta es el único nombre accesible que queda.

<Notice type="info" title="¿Prefieres el botón oficial?">
WhatsApp publica recursos de botón con marca "Chat on WhatsApp" (verde y blanco, 3 tamaños, descargas en SVG y PNG) con directrices de marca, además de ejemplos HTML oficiales. Por ahora solo están en inglés. El SVG en línea personalizado de este tutorial es más ligero y te permite cambiar la etiqueta. Los recursos oficiales están en la <a href="https://faq.whatsapp.com/5913398998672934">página de ayuda de click to chat</a>.
</Notice>

---

## Opción 3: Widget de Chat de WhatsApp Expandible

Un botón que se expande para mostrar una vista previa del mensaje antes de abrir WhatsApp. Es la opción más pesada de las cuatro (más marcado y CSS), pero vende mejor la conversación porque los visitantes ven una invitación antes de decidirse.

Pega este embed en **Body End** (ver Paso 2). El script de abajo espera al DOM y sale limpiamente si falta el botón o el popup, así que funciona en cualquiera de las dos ubicaciones. Body End sigue siendo la ubicación más segura, ya que el marcado del widget está garantizado a estar parseado primero.

```html
<style>
  .wa-widget {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 9999;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  }

  .wa-widget-button {
    width: 60px;
    height: 60px;
    background: #25D366;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
    transition: all 0.3s;
  }

  .wa-widget-button:hover {
    transform: scale(1.05);
  }

  .wa-widget-button svg {
    width: 32px;
    height: 32px;
    fill: white;
  }

  .wa-widget-popup {
    position: absolute;
    bottom: 75px;
    right: 0;
    width: 320px;
    background: white;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    overflow: hidden;
    transform: scale(0);
    transform-origin: bottom right;
    transition: transform 0.3s ease;
  }

  .wa-widget-popup.active {
    transform: scale(1);
  }

  .wa-widget-header {
    background: #075E54;
    color: white;
    padding: 20px;
  }

  .wa-widget-header h4 {
    margin: 0 0 5px 0;
    font-size: 18px;
  }

  .wa-widget-header p {
    margin: 0;
    font-size: 13px;
    opacity: 0.9;
  }

  .wa-widget-body {
    padding: 20px;
    background: #ECE5DD;
  }

  .wa-widget-message {
    background: white;
    padding: 12px 15px;
    border-radius: 8px;
    border-top-left-radius: 0;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
    position: relative;
    margin-bottom: 15px;
  }

  .wa-widget-message::before {
    content: '';
    position: absolute;
    top: 0;
    left: -8px;
    border: 8px solid transparent;
    border-right-color: white;
    border-top-color: white;
  }

  .wa-widget-message p {
    margin: 0;
    font-size: 14px;
    color: #333;
    line-height: 1.5;
  }

  .wa-widget-time {
    font-size: 11px;
    color: #999;
    text-align: right;
    margin-top: 5px;
  }

  .wa-widget-cta {
    display: block;
    width: 100%;
    padding: 15px;
    background: #25D366;
    color: white;
    border: none;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background 0.2s;
  }

  .wa-widget-cta:hover {
    background: #20bd5a;
  }

  @media (max-width: 400px) {
    .wa-widget-popup {
      width: 280px;
      right: -10px;
    }
  }
</style>

<div class="wa-widget">
  <div class="wa-widget-popup" id="waPopup">
    <div class="wa-widget-header">
      <h4>Need help?</h4>
      <p>Typically replies within minutes</p>
    </div>
    <div class="wa-widget-body">
      <div class="wa-widget-message">
        <p>Hi there! 👋 How can I help you today?</p>
        <div class="wa-widget-time">Just now</div>
      </div>
    </div>
    <a href="https://wa.me/YOURNUMBER?text=Hi,%20I%20have%20a%20question" class="wa-widget-cta" target="_blank" rel="noopener">
      Start Chat
    </a>
  </div>
  
  <button class="wa-widget-button" id="waButton" aria-label="Open WhatsApp chat">
    <svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
      <path d="M16.004 0h-.008C7.174 0 0 7.176 0 16c0 3.5 1.128 6.744 3.046 9.378L1.054 32l6.826-2.192A15.915 15.915 0 0016.004 32C24.826 32 32 24.822 32 16S24.826 0 16.004 0zm9.35 22.614c-.396 1.116-1.956 2.042-3.216 2.312-.864.184-1.99.33-5.786-1.244-4.858-2.014-7.984-6.952-8.226-7.274-.232-.322-1.958-2.606-1.958-4.972s1.238-3.528 1.678-4.012c.396-.436 1.036-.636 1.65-.636.198 0 .376.01.536.018.44.02.66.046.95.734.364.864 1.25 3.05 1.36 3.272.11.222.184.482.036.772-.138.3-.208.486-.416.748-.208.262-.438.584-.626.784-.208.24-.424.5-.182.98.242.48 1.076 1.774 2.312 2.874 1.588 1.414 2.926 1.852 3.342 2.058.416.206.658.172.9-.104.252-.286 1.072-1.248 1.358-1.676.276-.428.562-.356.95-.214.39.144 2.476 1.168 2.9 1.38.424.214.706.322.81.498.104.176.104 1.022-.292 2.138z"/>
    </svg>
  </button>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function () {
    const waButton = document.getElementById('waButton');
    const waPopup = document.getElementById('waPopup');
    if (!waButton || !waPopup) return;
    waButton.addEventListener('click', () => waPopup.classList.toggle('active'));
    document.addEventListener('click', (e) => {
      if (!e.target.closest('.wa-widget')) waPopup.classList.remove('active');
    });
  });
</script>
```

Edita el texto de la cabecera y el mensaje de vista previa ficticio para que coincida con lo que esperas responder. Si quieres el mismo patrón de mostrar/ocultar para otro contenido, aquí está cómo [añadir un modal emergente a Carrd](https://www.bitdoze.com/es/ventana-modal-emergente-carrd/).

---

## Opción 4: Botón Multi-Chat (WhatsApp + Otros)

Si quieres ofrecer varias opciones de contacto:

```html
<style>
  .chat-buttons {
    position: fixed;
    bottom: 25px;
    right: 25px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 9999;
  }

  .chat-btn {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    position: relative;
    transition: all 0.3s;
    transform: scale(0);
    animation: popIn 0.3s ease forwards;
  }

  .chat-btn:nth-child(1) { animation-delay: 0s; }
  .chat-btn:nth-child(2) { animation-delay: 0.1s; }
  .chat-btn:nth-child(3) { animation-delay: 0.2s; }

  @keyframes popIn {
    to {
      transform: scale(1);
    }
  }

  .chat-btn:hover {
    transform: scale(1.1) !important;
  }

  .chat-btn svg {
    width: 28px;
    height: 28px;
    fill: white;
  }

  .chat-btn.whatsapp {
    background: #25D366;
  }

  .chat-btn.telegram {
    background: #0088cc;
  }

  .chat-btn.email {
    background: #ea4335;
  }

  /* Tooltip */
  .chat-btn::before {
    content: attr(data-tooltip);
    position: absolute;
    right: 65px;
    background: #333;
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
  }

  .chat-btn:hover::before {
    opacity: 1;
  }
</style>

<div class="chat-buttons">
  <a href="https://wa.me/YOURNUMBER?text=Hi" class="chat-btn whatsapp" target="_blank" rel="noopener" data-tooltip="WhatsApp" aria-label="Chat on WhatsApp">
    <svg viewBox="0 0 32 32"><path d="M16.004 0h-.008C7.174 0 0 7.176 0 16c0 3.5 1.128 6.744 3.046 9.378L1.054 32l6.826-2.192A15.915 15.915 0 0016.004 32C24.826 32 32 24.822 32 16S24.826 0 16.004 0zm9.35 22.614c-.396 1.116-1.956 2.042-3.216 2.312-.864.184-1.99.33-5.786-1.244-4.858-2.014-7.984-6.952-8.226-7.274-.232-.322-1.958-2.606-1.958-4.972s1.238-3.528 1.678-4.012c.396-.436 1.036-.636 1.65-.636.198 0 .376.01.536.018.44.02.66.046.95.734.364.864 1.25 3.05 1.36 3.272.11.222.184.482.036.772-.138.3-.208.486-.416.748-.208.262-.438.584-.626.784-.208.24-.424.5-.182.98.242.48 1.076 1.774 2.312 2.874 1.588 1.414 2.926 1.852 3.342 2.058.416.206.658.172.9-.104.252-.286 1.072-1.248 1.358-1.676.276-.428.562-.356.95-.214.39.144 2.476 1.168 2.9 1.38.424.214.706.322.81.498.104.176.104 1.022-.292 2.138z"/></svg>
  </a>
  
  <a href="https://t.me/YOURUSERNAME" class="chat-btn telegram" target="_blank" rel="noopener" data-tooltip="Telegram" aria-label="Message on Telegram">
    <svg viewBox="0 0 24 24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm5.562 8.161c-.18 1.897-.962 6.502-1.359 8.627-.168.9-.5 1.201-.82 1.23-.697.064-1.226-.461-1.901-.903-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.015-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.139-5.062 3.345-.479.329-.913.489-1.302.481-.428-.009-1.252-.242-1.865-.442-.751-.244-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.831-2.529 6.998-3.015 3.333-1.386 4.025-1.627 4.477-1.635.099-.002.321.023.465.141.121.1.154.234.169.334.016.1.035.323.02.498z"/></svg>
  </a>
  
  <a href="mailto:your@email.com" class="chat-btn email" data-tooltip="Email" aria-label="Send an email">
    <svg viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
  </a>
</div>
```

Sustituye `YOURNUMBER`, `YOURUSERNAME` y `your@email.com`. Úsalo cuando de verdad ofreces varios canales. Una nota operativa: cada canal que añades es otra bandeja de entrada que vigilar.

---

## Cómo Probar Tu Botón de WhatsApp Después de Publicar

Los embeds de Carrd no renderizan nada en el editor, así que publicar es la única forma de ver el botón. Ejecuta esta checklist tú mismo después de cada publicación.

<ListCheck>
<ul>
<li>Publica el sitio desde el editor de Carrd</li>
<li>Abre la URL en vivo en una ventana privada o de incógnito (evita rarezas de la vista previa y CSS en caché)</li>
<li>Haz clic en el botón y confirma que el chat wa.me se abre con el texto pre-rellenado intacto</li>
<li>Prueba en un teléfono real: confirma que la app de WhatsApp se abre y que el botón de 60px abajo a la derecha no tapa CTAs ni contenido</li>
<li>Si usas un dominio personalizado, prueba en el dominio en vivo, no en la URL de staging. Mira <a href="https://www.bitdoze.com/carrd-add-domain/">cómo conectar un dominio personalizado a Carrd</a></li>
</ul>
</ListCheck>

Si el clic abre WhatsApp pero el texto del mensaje se ve roto, tu codificación de URL está mal (vuelve al Paso 1). Si no se renderiza nada en absoluto, la solución está casi siempre en la Solución de problemas de abajo.

## Personaliza Tu Botón de WhatsApp

Pequeños ajustes de CSS y URL una vez el botón está en vivo.

### Cambiar la Posición

Mueve el botón a otra esquina:

```css
/* Bottom left */
.whatsapp-float {
  bottom: 25px;
  left: 25px;
  right: auto;
}

/* Top right */
.whatsapp-float {
  top: 25px;
  right: 25px;
  bottom: auto;
}
```

Usa una de las dos reglas, y cambia `.whatsapp-float` por `.wa-button`, `.wa-widget` o `.chat-buttons` si elegiste la Opción 2, 3 o 4. Para la Opción 3 a la izquierda, voltea también el popup con `.wa-widget-popup { left: 0; right: auto; transform-origin: bottom left; }`.

Sea cual sea la esquina que elijas, asegúrate de que no se superpone a los elementos flotantes propios de Carrd (mira el arreglo de solapamiento en Solución de problemas).

### Cambiar el Tamaño

Ajusta las dimensiones del botón:

```css
.whatsapp-float {
  width: 50px;  /* Smaller */
  height: 50px;
}

/* Or larger */
.whatsapp-float {
  width: 70px;
  height: 70px;
}
```

Mantén al menos un área táctil de 48px en móvil. Por debajo de eso, los toques empiezan a fallar.

### Desactivar la Animación de Pulso

Elimina el pseudo-elemento `::before` o pon `animation: none`:

```css
.whatsapp-float::before {
  display: none;
}
```

### Mensaje Pre-rellenado Personalizado

Personaliza lo que aparece cuando los visitantes abren el chat:

```text
https://wa.me/12125551234?text=Hi!%20I'm%20interested%20in%20your%20web%20design%20services.%20My%20name%20is%20___
```

Usa `%20` para espacios y `%0A` para saltos de línea.

Dos trucos operativos que merecen la pena: pon tu horario de respuesta en el mensaje ("Suelo responder en menos de 2 horas") para fijar expectativas antes del primer mensaje, y etiqueta el origen ("te encontré en tu web") para saber qué canal convierte.

### Rastrear Clics (Opcional)

Mídelo, o no sabrás si el botón se gana su sitio. Carrd Pro Standard ya incluye Analítica (Google Analytics, Plausible, Matomo y otros), así que el seguimiento no te cuesta nada extra en el plan que ya necesitas. Añade un atributo `onclick` a la etiqueta `<a>`:

<Tabs>
  <Tab name="Plausible">

```html
<a href="https://wa.me/YOURNUMBER" onclick="plausible('WhatsApp Click')" ...>
```

  </Tab>
  <Tab name="Google Analytics">

```html
<a href="https://wa.me/YOURNUMBER" onclick="gtag('event','whatsapp_click')" ...>
```

  </Tab>
  <Tab name="Matomo">

```html
<a href="https://wa.me/YOURNUMBER" onclick="_paq.push(['trackEvent','Contact','WhatsApp Click'])" ...>
```

  </Tab>
</Tabs>

## Solución de Problemas: el Botón de WhatsApp No Funciona en Carrd

Comprueba estos en orden. Los dos primeros resuelven la mayoría de casos.

### El botón no aparece en absoluto

Causa: el Style del Embed no está en Hidden, tu plan no incluye Embeds (gratuito o Pro Lite), o guardaste sin republicar.

Solución: pon el Embed en Type: Code, Style: Hidden, confirma que estás en Pro Standard o superior, publica de nuevo y fuerza la recarga de la página en vivo. Si sigue chocando con otro elemento fijo, las mismas reglas de apilado se aplican a un [menú flotante en Carrd](https://www.bitdoze.com/carrd-floating-menu/) o a un [header sticky en Carrd](https://www.bitdoze.com/add-stickey-header-carrd/).

### "Phone number shared via url is invalid"

Causa: el número en el href de `wa.me` no está en formato internacional completo.

Solución: quita `+`, espacios, guiones, paréntesis y ceros iniciales. `12125551234`, no `+1 (212) 555-1234`. Revisa cada href de `wa.me` si pegaste la opción multi-chat.

### El widget emergente no se abre (Opción 3)

Causa: el script se ejecutó antes de que el DOM estuviera listo, o los IDs de los elementos no coinciden.

Solución: usa el script con guarda de DOMContentLoaded de la Opción 3 y mueve el embed de Head a Body End. Mantén los IDs `waButton` y `waPopup` como en el snippet. Republica.

### El botón se solapa con otros elementos flotantes

Causa: dos elementos fijos peleando por la misma esquina y `z-index`.

Solución: baja el `z-index` de WhatsApp (por ejemplo `9999` → `999`) o muévelo a otra esquina (ver Cambiar la Posición). El mismo choque aparece con menús flotantes y headers sticky en Carrd.

## Consejo de Privacidad: Oculta Tu Número con un Enlace Corto de WhatsApp Business

<Notice type="warning" title="Tu número queda público al publicar">
Un simple enlace <code>wa.me/YOURNUMBER</code> pone tu número de teléfono en el código fuente de la página. Los scrapers lo recogen, y deberías esperar algunas llamadas spam y mensajes de WhatsApp. No es un problema de Carrd, es cómo funciona el formato del enlace.
</Notice>

Dos mitigaciones:

1. **Usa un número de negocio dedicado** en lugar de tu personal. SIM barata, cuenta de WhatsApp separada, separación limpia.
2. **Usa el enlace corto de WhatsApp Business** - `https://wa.me/message/YOURSHORTLINKCODE`, generado en las herramientas de empresa de la app gratuita WhatsApp Business (las etiquetas varían según la versión). No revela el número.

Cambio de href directo para cualquiera de las cuatro opciones:

```html
<a href="https://wa.me/message/YOURSHORTLINKCODE" class="whatsapp-float" target="_blank" rel="noopener" aria-label="Chat on WhatsApp">
```

Pierdes el mensaje pre-rellenado `?text=` con los enlaces cortos, así que elige: número oculto o mensaje pre-rellenado. Para la mayoría de los que trabajan en solitario, gana el mensaje pre-rellenado y el número ya está en la página de contacto de todos modos.

Sobre el consentimiento de cookies: como este código es un simple `<a>` con CSS y SVG en línea y sin JavaScript de terceros, en general no añade carga de cookies ni de consentimiento por sí mismo. Es orientación general, no asesoramiento legal. Si ejecutas scripts de analítica (incluidos los snippets de seguimiento de clics de arriba), eso es otra conversación y puede que necesites [un aviso de cookies en tu sitio Carrd](https://www.bitdoze.com/add-cookie-notice-carrd/).

## Botón de WhatsApp en Móvil vs Escritorio

El botón funciona en ambos, pero la experiencia difiere:
- **Móvil**: abre directamente la app de WhatsApp
- **Escritorio**: abre WhatsApp Web en una pestaña nueva

Si quieres mostrar el botón solo en móvil:

```css
@media (min-width: 769px) {
  .whatsapp-float {
    display: none;
  }
}
```

La Opción 2 ya se colapsa a un icono por debajo de 600px. Sea cual sea el estilo que uses, mantén el área táctil en al menos 48-60px para que los pulgares le den con fiabilidad.

## Consejos de Negocio: Respuestas Automáticas, FAQs y Más

**El tiempo de respuesta importa** - Si añades un botón de chat, prepárate para responder rápido. Las respuestas lentas dan mala impresión.

**Define horarios de disponibilidad** - Considera mencionar tus horas de respuesta en el mensaje pre-rellenado o en el widget emergente.

**Usa WhatsApp Business** - La app gratuita WhatsApp Business ofrece mensajes de saludo, mensajes de ausencia, perfiles de empresa y catálogos. Solo el mensaje de ausencia te ahorra el estrés del "visto a las 2 de la madrugada".

Desvía las preguntas repetitivas antes de que se conviertan en chats. Una [sección de FAQs en acordeón en Carrd](https://www.bitdoze.com/es/anadir-acordeon-faq-carrd/) responde las cinco preguntas que todo el mundo hace, o usa un [plugin de acordeón para Carrd ya hecho](https://go.carrdme.com/accordion) si no quieres escribir el código a mano. Y mantén un segundo canal activo para que WhatsApp no se convierta en la única bandeja de entrada: [añade un formulario de contacto a cualquier web estática](https://www.bitdoze.com/add-contact-form-static-websites/) como respaldo.

<Button link="https://go.bitdoze.com/carrd" text="Prueba Carrd.co" />

## Preguntas Frecuentes

<Accordion label="¿Necesito un plan de pago de Carrd para un botón de WhatsApp?" group="faq" expanded="true">
Sí. El elemento Embed que contiene el código requiere <strong>Pro Standard o superior</strong> (19 $/año). El plan gratuito y Pro Lite (9 $/año) no incluyen Embeds. Mira <a href="https://www.bitdoze.com/carrd-review/">los planes y precios de Carrd Pro</a> para el desglose completo.
</Accordion>

<Accordion label="¿El botón de WhatsApp en sí es gratis?" group="faq">
Sí. Los enlaces click-to-chat de <code>wa.me</code> no cuestan nada y el código de este tutorial es HTML y CSS puro. La única pieza de pago es el plan de Carrd que necesitas para los Embeds.
</Accordion>

<Accordion label="¿Esto ralentizará mi sitio?" group="faq">
No. No hay script de widget de terceros. Cada opción es una etiqueta <code>&lt;a&gt;</code> en línea más un pequeño bloque CSS y un SVG en línea. El widget expandible (Opción 3) añade más marcado, y aun así es diminuto comparado con un widget de chat alojado.
</Accordion>

<Accordion label="¿Necesito WhatsApp Business?" group="faq">
No. Una cuenta normal de WhatsApp funciona bien con los enlaces <code>wa.me</code>. La app gratuita WhatsApp Business añade mensajes de saludo y ausencia, un perfil de empresa, catálogos y el enlace corto que oculta el número. Vale la pena instalarla si chateas con clientes a menudo.
</Accordion>

<Accordion label="¿Puedo usar esto en otros creadores de sitios?" group="faq">
Sí. Las cuatro opciones de código son HTML y CSS puros, así que funcionan en cualquier sitio que acepte código personalizado o bloques HTML. Solo los pasos de configuración del Embed son específicos de Carrd.
</Accordion>

## Conclusión

Un botón de WhatsApp elimina fricción entre los visitantes y el contacto. Todo el camino: Pro Standard, pegar el código, publicar, ejecutar la checklist de pruebas, y luego decidir si el enlace corto de Business le gana a los mensajes pre-rellenados en tu caso. Solo asegúrate de estar listo para atender los mensajes que lleguen.

Si quieres más opciones de contacto, combina esto con un [formulario de contacto en cualquier web estática](https://www.bitdoze.com/add-contact-form-static-websites/) o un [modal emergente](https://www.bitdoze.com/es/ventana-modal-emergente-carrd/).