DoubleTick DoubleTick

Formularios web · WordPress · CRM

Cómo mandar los formularios de tu web (WordPress, Contact Form 7) al CRM

Hay tres formas de que un formulario de tu web llegue solo al CRM: mandarlo directo desde el sitio por webhook o API, hacer que el CRM lea el mail de aviso que el formulario ya te manda, o pasarlo por Zapier, Make o n8n. La directa es la más rápida y la que tiene menos piezas que se puedan romper; en WordPress con Contact Form 7 se hace con un plugin de webhooks o con unas líneas de PHP. Lo que casi nadie revisa es qué pasa cuando algo falla: Contact Form 7 no guarda los envíos por defecto, y si el envío al CRM está atado al mail de aviso, un mail que falla se lleva puesto el lead sin que nadie se entere.

Actualizado: · Verificado en el código fuente de Contact Form 7 y en la documentación de WordPress · DoubleTick

¿Cuáles son las formas de conectar un formulario web a un CRM?

Son tres, y se diferencian en cuántas piezas hay entre el formulario y el vendedor:

VíaCómo funcionaA favorEn contra
Webhook o API directoEl sitio manda los datos al CRM en el momento del envío, por POST y con una claveInstantáneo. Sin intermediarios ni costo extra. Mandás exactamente los campos que querésHay que configurarlo (plugin o código) y prever qué pasa si el CRM no responde
Lectura del mail (email parsing)El formulario manda su mail de aviso a una casilla que el CRM lee y convierte en leadNo tocás el sitio: sirve con cualquier formulario que mande mailsDepende de que el mail salga, llegue y no caiga en spam. Si cambia el formato del mail, el parseo se rompe. Suma demora
Zapier, Make o n8nUn servicio intermedio recibe el envío y lo reenvía al CRMSin código y con historial de cada ejecución. Sirve si el CRM no tiene APIEs otra pieza que pagar, mantener y vigilar, y otra cuenta por la que pasan los datos de tus clientes

Nuestra recomendación por defecto es la primera, siempre que el CRM tenga una API con clave. La segunda sirve como parche cuando no podés tocar el sitio. La tercera tiene sentido cuando el mismo envío tiene que ir a varios lugares a la vez: el CRM, una planilla y una herramienta de mail marketing, por ejemplo.

¿Cómo se conecta Contact Form 7 a un CRM por webhook?

Contact Form 7 es un plugin de formularios de WordPress con más de 10 millones de instalaciones activas (ficha oficial en wordpress.org, consultada el 28-09-2026). No trae integración con CRM de fábrica, así que hay dos caminos.

Con un plugin de webhooks. El más directo es CF7 to Webhook (en el directorio figura con el identificador cf7-to-zapier, aunque sirve para cualquier URL): le cargás la dirección del CRM en una pestaña del formulario y manda los campos como JSON. Permite elegir el método, agregar encabezados propios —ahí va la clave de la API—, cargar varias URL por formulario y renombrar campos. Envía desde el servidor, así que la clave no queda expuesta en el navegador.

Leímos su código para saber qué hace cuando algo sale mal: hace un solo intento, espera hasta 30 segundos y, si falla, le manda un mail de error al administrador y le muestra un mensaje de error a la persona. No reintenta. Y cuelga del evento wpcf7_mail_sent, lo que tiene una consecuencia que conviene conocer (abajo).

Con código, en el tema o en un plugin propio. Contact Form 7 expone dos acciones útiles, y elegir la equivocada tiene consecuencias:

wpcf7_mail_sent

Sólo si el mail salió bien

Se ejecuta después de que el mail de aviso se envió. Si el mail falla, Contact Form 7 ejecuta wpcf7_mail_failed en su lugar. Colgar el CRM de acá ata el lead a tu servidor de correo.

wpcf7_before_send_mail

Antes del mail, pase lo que pase

Se ejecuta antes de enviar el mail, sin importar si el mail después sale o falla. Es la que recomendamos para mandar al CRM.

Las dos acciones corren después del filtro de spam: un envío marcado como spam no llega a ninguna. Lo verificamos en el código fuente oficial de Contact Form 7, no en un tutorial. Y el detalle del plugin: como usa wpcf7_mail_sent, si lo configurás para que también mande el mail y el mail falla, el webhook no sale. Si lo configurás para no mandar mail, Contact Form 7 da el envío por bueno y el webhook sale siempre.

Ejemplo en PHP: mandar cada envío al CRM antes del mail

add_action( 'wpcf7_before_send_mail', function ( $form, &$abort, $submission ) {
    $d = $submission->get_posted_data();
    $campo = function ( $k ) use ( $d ) {
        return isset( $d[ $k ] ) ? $d[ $k ] : '';
    };
    wp_remote_post( 'URL-DE-TU-CRM', array(
        'timeout' => 15,
        'headers' => array(
            'Content-Type' => 'application/json',
            'X-API-KEY'    => 'TU-CLAVE',
        ),
        'body'    => wp_json_encode( array(
            'nombre'     => $campo( 'your-name' ),
            'email'      => $campo( 'your-email' ),
            'telefono'   => $campo( 'your-phone' ),
            'utm_source' => $campo( 'utm_source' ),
            'formulario' => $form->title(),
        ) ),
    ) );
}, 10, 3 );

Es un ejemplo mínimo, sin cola ni reintentos, y los nombres de los campos del JSON dependen de tu CRM. Dos detalles: wp_remote_post espera por defecto 5 segundos (lo fija WordPress en su clase HTTP), poco para un servidor lento, por eso lo subimos; a cambio, la persona espera ese tiempo si el CRM tarda. Y la clave va en PHP, del lado del servidor: nunca en JavaScript del navegador, donde cualquiera la puede leer y cargarte leads falsos.

¿Qué campos conviene mandar del formulario al CRM?

Los que necesita un vendedor para contactar y los que necesita el dueño para saber qué funcionó:

  • Nombre (y apellido, si lo pedís por separado).
  • Teléfono con código de país, en formato internacional: código de país, área y número, sin espacios. Es lo que permite escribirle por WhatsApp sin adivinar de dónde es. Si el formulario lo pide suelto, pedí el país aparte o agregá el código antes de mandarlo.
  • Email.
  • Formulario de origen y página: el nombre del formulario ("Cotizar", "Test drive", "Contacto") y la URL donde se completó. Es la forma más simple de saber qué pidió la persona.
  • Producto o modelo y comentario, si el formulario los tiene.
  • UTM: utm_source, utm_medium, utm_campaign, utm_term y utm_content, los parámetros de campaña que define Google Analytics.
  • Identificadores de clic: gclid, que Google Ads agrega con el etiquetado automático, y fbclid, que Meta agrega a la URL cuando alguien hace clic en un anuncio de Facebook o Instagram. Sirven para devolverle la conversión a cada plataforma.

El detalle técnico que más se olvida: los UTM y los identificadores de clic viven en la URL, no en el formulario. Si no los capturás en campos ocultos, se pierden. Contact Form 7 tiene campos ocultos y la opción default:get, que completa el campo con el parámetro de la URL que tiene el mismo nombre: [hidden utm_source default:get]. Sólo funciona si el formulario está en la misma página a la que llegó el clic; si la persona navega antes de completarlo, hay que guardar esos valores al llegar (en una cookie, por ejemplo) y leerlos al enviar.

¿Cómo frenar el spam sin perder leads reales?

Filtralo en el formulario, antes de que llegue al CRM, y nunca con reglas que descarten en silencio.

Contact Form 7 trae integraciones con reCAPTCHA (Google), Turnstile (Cloudflare) y Akismet (Automattic), además de un campo de pregunta (quiz) y una lista de palabras bloqueadas. Lo que el filtro marca como spam se corta antes de las acciones que mandan al CRM, así que no te ensucia la base. Tené en cuenta que esos servicios reciben datos del envío, incluida la IP de la persona: la ficha oficial del plugin lo avisa.

  • La clave de la API, del lado del servidor. Si el envío al CRM sale desde el navegador, la clave queda a la vista y cualquiera te puede cargar leads falsos.
  • Validá el teléfono en el formulario, con formato obligatorio, en vez de limpiarlo después en el CRM.
  • No descartes en silencio. Si una regla es dudosa, que marque el lead en lugar de borrarlo. Un lead real perdido cuesta más que un spam que un vendedor descarta en dos segundos.

Lo que casi nadie prevé

¿Qué pasa si el CRM está caído cuando alguien completa el formulario?

Depende de la vía, y en la directa la respuesta honesta es: se pierde, salvo que lo hayas previsto.

  • Contact Form 7 no guarda los envíos. Su ficha oficial lo dice: con la configuración por defecto, no escribe datos personales en la base de datos. Lo que no llegó al CRM ni al mail no queda en ningún lado.
  • El plugin de webhooks no reintenta. Hace un intento, espera hasta 30 segundos y, si falla, avisa por mail al administrador y le muestra un error a la persona.
  • Meta sí reintenta, pero eso es otra cosa. En los formularios de anuncios, Meta reintenta el aviso durante 36 horas (lo contamos en formularios de Meta al CRM). Tu sitio web no hace eso por vos.

Cómo cubrirte, de menor a mayor esfuerzo:

  • Dejá prendido el mail de aviso como segunda copia, y mandá al CRM desde wpcf7_before_send_mail para que un mail fallido no se lleve el lead.
  • Instalá Flamingo, del mismo autor de Contact Form 7: guarda cada envío en la base de WordPress. Su ficha lo presenta justamente para no perder mensajes por problemas del servidor de correo.
  • Encolá y reintentá. Si el CRM responde con error, guardá el envío y volvé a mandarlo más tarde. Es la parte que las plataformas intermedias resuelven mejor, porque registran cada ejecución.
  • Que el receptor tolere duplicados. Si reintentás, el mismo lead puede llegar dos veces, y el CRM tiene que reconocerlo.

¿Cómo conecta DoubleTick los formularios de tu web?

Con una API propia, pensada para que el lead entre al mismo lugar que tus conversaciones de WhatsApp:

  • Una clave por cliente. Cada negocio tiene la suya y se manda en el encabezado X-API-KEY. La dirección y la clave te las damos al conectar: no las publicamos.
  • JSON por POST. Recibe nombre, apellido, teléfono, email, modelo o producto, comentario y el nombre del formulario de origen.
  • Asignación automática. El lead entra asignado a tu equipo, con el mismo embudo, la misma asignación y los mismos reportes que WhatsApp, Instagram, Messenger y los formularios de Meta.
  • Modo de prueba. Un campo de prueba crea el lead sin asignarlo, para que puedas probar la integración sin avisarle a ningún vendedor.

Lo usa, por ejemplo, un concesionario de Chile con formularios de Contact Form 7.

Lo que hoy no hace, para que decidas con todo sobre la mesa: no tiene campos propios para UTM ni para identificadores de clic, y lo que distingue el origen es el nombre del formulario; si igual querés conservarlos, podés sumarlos al comentario. Tampoco tiene un widget de chat web propio: el chat de tu sitio se resuelve con un botón que abre tu WhatsApp, que cae en la misma bandeja (lo explicamos en chat web o botón de WhatsApp).

Tenés 7 días gratis, sin tarjeta, facturamos en pesos con Factura A y somos Agente Oficial de Meta.

Lo que no pudimos confirmar

Lo separamos a propósito. Si no lo pudimos verificar en una fuente oficial, no lo presentamos como dato.

La documentación escrita de contactform7.com

El sitio oficial de Contact Form 7 respondió a nuestras consultas con una verificación anti-bots y no lo pudimos leer. Por eso todo lo que decimos del plugin lo verificamos en su código fuente oficial y en su ficha de wordpress.org: es una fuente más dura que un tutorial, pero no es su documentación.

Cuántos leads se pierden por leer mails en vez de usar una API

No encontramos un estudio abierto que lo mida. Lo que sí está medido es que la demora en responder cuesta caro (ver qué tan rápido hay que contactar un lead); cuánto agrega el parseo de mails depende de cada casilla y de cada proveedor de correo.

Si Zapier, Make y n8n reintentan solos

Las tres registran cada ejecución, pero si reintentan automáticamente, cuántas veces y en qué plan varía según el servicio y cambia seguido. Revisalo en tu plan antes de confiarle los leads.

Si default:get funciona detrás de tu caché

El campo se completa cuando WordPress genera la página. Si tu sitio sirve páginas desde una caché, depende de cómo esa caché trate las URL con parámetros. No lo podemos afirmar en general: probalo con una URL con UTM y mirá qué llega al CRM.

Preguntas frecuentes sobre formularios web y CRM

¿Cómo conecto Contact Form 7 a mi CRM?+

Con un plugin de webhooks, como CF7 to Webhook, o con unas líneas de PHP. En los dos casos, cada envío del formulario se manda al CRM como JSON por POST, con la clave de la API en un encabezado. Si lo hacés con código, colgalo de la acción wpcf7_before_send_mail y no de wpcf7_mail_sent: la segunda sólo se ejecuta si el mail de aviso salió bien, así que un problema de correo te haría perder el lead.

¿Necesito Zapier para mandar los formularios de WordPress al CRM?+

No, si tu CRM tiene una API. El envío directo desde el sitio es más rápido y tiene menos piezas. Zapier, Make o n8n tienen sentido cuando el CRM no tiene API o cuando el mismo envío tiene que ir a varios lugares a la vez. A cambio, suman un servicio que pagar y vigilar, y otra cuenta por la que pasan los datos de tus clientes.

¿Qué es un webhook de formulario?+

Es un aviso automático que el sitio manda a otra dirección en el momento en que alguien completa el formulario. En vez de esperar a que alguien lea un mail o baje una planilla, el formulario le manda los datos al CRM por POST, normalmente en JSON y con una clave que identifica a tu negocio. El CRM los recibe y crea el lead al instante.

¿Por qué algunos formularios de la web no llegan al CRM?+

Las causas más comunes son cuatro: el envío al CRM estaba atado al mail de aviso y el mail falló; el filtro anti-spam marcó como spam un envío real; el CRM no respondió y nadie reintentó; o la clave de la API cambió. Como Contact Form 7 no guarda los envíos por defecto, conviene instalar Flamingo o dejar el mail de aviso como segunda copia para poder recuperar lo que se perdió.

¿Cómo guardo de qué campaña vino cada lead de la web?+

Capturando los parámetros de la URL en campos ocultos del formulario: los UTM (utm_source, utm_medium, utm_campaign, utm_term, utm_content) y los identificadores de clic gclid de Google y fbclid de Meta. En Contact Form 7 se hace con un campo oculto y la opción default:get. Si la persona navega por el sitio antes de completar el formulario, hay que guardar esos valores al llegar y leerlos al enviar.

¿Es seguro poner la clave de la API en el formulario?+

Sólo si el envío sale del servidor. Si la clave está en el JavaScript de la página, cualquiera la puede ver y usar para cargarte leads falsos. Los plugins de webhooks de WordPress y el código en PHP mandan desde el servidor, así que la clave no llega al navegador.

¿Puedo probar la conexión sin molestar a los vendedores?+

En DoubleTick, sí: la API tiene un modo de prueba que crea el lead sin asignarlo, así que podés completar el formulario cuantas veces quieras sin que a ningún vendedor le llegue un aviso. Cuando todo funciona, sacás ese campo y los leads empiezan a asignarse solos.

¿DoubleTick tiene un chat para poner en la web?+

No tiene un widget de chat web propio. El chat del sitio se resuelve con un botón que abre el WhatsApp de tu negocio, y esa conversación cae en la misma bandeja que el resto de tus canales. Los formularios de la web, en cambio, entran por la API como leads.

Fuentes

Todo lo afirmado en esta página se verificó el 28 de septiembre de 2026. Como el sitio oficial de Contact Form 7 no se dejó leer, el comportamiento del plugin se verificó directamente en su código fuente.

¿Querés que los formularios de tu web entren solos al CRM?

Te damos la clave, te ayudamos a configurar el formulario y probamos en modo de prueba hasta que el lead llegue bien, sin molestar a tus vendedores. Todo cae en el mismo CRM que tu WhatsApp. 7 días gratis, sin tarjeta.

Seguí explorando

Página actualizada el .