Hay formularios que llegan por email y ya está. Alguien rellena la web, el aviso entra en una bandeja de correo y una persona del equipo lo revisa cuando puede.
Índice del artículo web:
Pero cuando una empresa trabaja con Salesforce, ese proceso se queda corto. El equipo comercial no quiere copiar y pegar datos a mano. Quiere que cada solicitud llegue al CRM, quede registrada como lead y pueda seguirse desde el lugar donde ya trabaja ventas.
Ahí es donde tiene sentido integrar Salesforce con Contact Form 7 en WordPress. La idea es sencilla: el usuario rellena un formulario en la web y esos datos se envían automáticamente a Salesforce.
Respuesta rápida: puedes conectar Contact Form 7 con Salesforce usando Web-to-Lead, un plugin específico o código personalizado en WordPress. Para una integración sencilla, Web-to-Lead suele ser suficiente. Si necesitas lógica avanzada, validaciones, varios formularios, campos personalizados o control de errores, conviene plantearlo como una integración a medida.
En esta guía vas a ver: qué preparar en Salesforce, cómo revisar los campos de Contact Form 7, cómo enviar los datos con código actualizado, qué errores son habituales y cuándo es mejor usar un plugin o una integración a medida.
Qué significa integrar Contact Form 7 con Salesforce
Integrar Contact Form 7 con Salesforce significa que los datos enviados desde un formulario de WordPress se registran automáticamente en Salesforce, normalmente como un lead.
Por ejemplo, una persona rellena en tu web:
- Nombre.
- Apellidos.
- Email.
- Teléfono.
- Empresa.
- Mensaje.
Y en lugar de quedarse solo en un correo electrónico, esos datos se envían a Salesforce para que el equipo comercial pueda hacer seguimiento.
El objetivo no es tener un formulario más bonito. El objetivo es no perder leads por el camino.
Cuándo tiene sentido conectar Salesforce con un formulario WordPress
No todas las webs necesitan esta integración. Si recibes dos formularios al mes y los gestionas manualmente, quizá no compense complicarse.
Pero tiene mucho sentido cuando:
- El equipo comercial trabaja en Salesforce.
- La web recibe solicitudes de presupuesto o contacto.
- Necesitas registrar leads de forma ordenada.
- Quieres evitar copiar datos manualmente.
- Hay varios formularios en la web.
- Necesitas saber de qué formulario viene cada lead.
- Quieres medir mejor las oportunidades generadas desde la web.
- Necesitas reducir errores humanos en el traspaso de datos.
En proyectos reales, muchas veces el problema no es el formulario. El problema es lo que pasa después del formulario. Si nadie registra bien la solicitud, el lead se enfría.
Opciones para integrar Salesforce con Contact Form 7
Hay varias formas de hacer esta integración. No todas sirven para el mismo caso.
| Opción | Cuándo encaja | Precaución |
|---|---|---|
| Web-to-Lead de Salesforce | Cuando quieres enviar leads desde un formulario web de forma sencilla. | Hay que mapear bien campos y probar que Salesforce recibe los datos. |
| Plugin WordPress | Cuando prefieres configurar desde el panel sin tocar código. | Dependes del plugin, su mantenimiento y su compatibilidad. |
| Código personalizado | Cuando necesitas controlar campos, lógica, validación o formularios concretos. | Requiere conocimientos técnicos y pruebas. |
| API de Salesforce | Cuando necesitas una integración más avanzada, autenticación, objetos personalizados o procesos complejos. | Es más potente, pero también más delicada. |
En este artículo vamos a centrarnos en una vía práctica: usar Contact Form 7, recoger los datos enviados y mandarlos a Salesforce mediante Web-to-Lead.
Qué necesitas antes de empezar
Antes de tocar código, conviene tener todo preparado. Si no, acabarás probando a ciegas.
- Acceso al panel de WordPress.
- Contact Form 7 instalado y funcionando.
- Un formulario ya creado.
- Acceso a Salesforce con permisos suficientes.
- Web-to-Lead activado en Salesforce.
- El
oidde Salesforce. - Lista de campos que quieres enviar.
- Acceso para editar código de forma segura.
Antes de seguir: no hagas pruebas directamente en una web que recibe leads importantes si no tienes copia de seguridad y forma de revertir cambios. El formulario puede parecer que funciona, pero si la integración falla en silencio, puedes perder oportunidades.
Paso 1: activar Web-to-Lead en Salesforce
El primer paso está en Salesforce. La ruta puede variar según la configuración o el idioma de tu cuenta, pero normalmente tendrás que ir a la zona de configuración y buscar Web-to-Lead.
La idea es:
- Entrar en Salesforce.
- Ir a Setup o configuración.
- Buscar Web-to-Lead.
- Activar la función si no lo está.
- Generar un formulario o revisar el código generado.
- Localizar el campo oculto
oid.
Ese oid identifica tu organización de Salesforce. Lo vas a necesitar en el código para que Salesforce sepa a qué cuenta debe enviar el lead.
En el HTML generado por Salesforce suele aparecer algo parecido a esto:
<input type="hidden" name="oid" value="00DXXXXXXXXXXXX">
El valor que nos interesa es el que aparece dentro de value.
Consejo práctico: guarda el oid en un sitio seguro y cópialo exactamente. Si lo escribes mal, el envío no llegará donde debe.
Paso 2: revisar los campos del formulario en Contact Form 7
Ahora toca revisar el formulario de Contact Form 7.
El código que vamos a usar necesita que los nombres de los campos coincidan con los que vamos a leer en WordPress.
Un formulario básico podría tener campos como estos:
[text* your-firstname placeholder "Nombre"]
[text* your-lastname placeholder "Apellidos"]
[email* your-email placeholder "Email"]
[tel your-phone placeholder "Teléfono"]
[text your-company placeholder "Empresa"]
[textarea your-message placeholder "Mensaje"]
[submit "Enviar"]
Fíjate en los nombres:
your-firstnameyour-lastnameyour-emailyour-phoneyour-companyyour-message
Esos nombres deben coincidir con los que usaremos en el código. Si tu formulario utiliza otros, tendrás que adaptar el código.
Ojo con esto: no es lo mismo el texto que ve el usuario que el nombre interno del campo. El nombre interno es lo que aparece dentro del shortcode de Contact Form 7.
Paso 3: decidir dónde añadir el código en WordPress
El borrador antiguo proponía editar directamente el archivo functions.php. Se puede hacer, pero no es la mejor opción si no sabes recuperar la web si algo falla.
Opciones más seguras:
- Usar un tema hijo y añadir el código en su
functions.php. - Crear un pequeño plugin propio para la integración.
- Usar un plugin de snippets de confianza, si en tu caso encaja.
- Probar antes en staging si la web recibe leads reales.
Disclaimer técnico: tocar código en WordPress puede romper la web si hay un error. Cada uno es libre de modificar su página, pero conviene hacerlo con copia de seguridad, acceso FTP o panel de hosting y una forma clara de volver atrás.
Código actualizado para enviar Contact Form 7 a Salesforce
Este ejemplo recoge los datos del formulario, los sanea y los envía a Salesforce usando wp_remote_post().
Debes cambiar:
TU_OID_DE_SALESFORCEpor eloidreal de tu cuenta.123por el ID real de tu formulario de Contact Form 7.- Los nombres de campos si tu formulario usa otros.
add_action( 'wpcf7_before_send_mail', 'ideaweb_enviar_cf7_a_salesforce' );
function ideaweb_enviar_cf7_a_salesforce( $contact_form ) {
/*
* Opcional: limitar la integración a uno o varios formularios concretos.
* Cambia 123 por el ID real de tu formulario de Contact Form 7.
*/
$formularios_permitidos = array( 123 );
if ( ! in_array( (int) $contact_form->id(), $formularios_permitidos, true ) ) {
return;
}
$submission = WPCF7_Submission::get_instance();
if ( ! $submission ) {
return;
}
$posted_data = $submission->get_posted_data();
$salesforce_oid = 'TU_OID_DE_SALESFORCE';
$body = array(
'oid' => $salesforce_oid,
'first_name' => isset( $posted_data['your-firstname'] ) ? sanitize_text_field( $posted_data['your-firstname'] ) : '',
'last_name' => isset( $posted_data['your-lastname'] ) ? sanitize_text_field( $posted_data['your-lastname'] ) : '',
'email' => isset( $posted_data['your-email'] ) ? sanitize_email( $posted_data['your-email'] ) : '',
'phone' => isset( $posted_data['your-phone'] ) ? sanitize_text_field( $posted_data['your-phone'] ) : '',
'company' => isset( $posted_data['your-company'] ) ? sanitize_text_field( $posted_data['your-company'] ) : '',
'description' => isset( $posted_data['your-message'] ) ? sanitize_textarea_field( $posted_data['your-message'] ) : '',
'lead_source' => $contact_form->title(),
);
/*
* Validación mínima.
* Ajusta esta parte según los campos obligatorios de tu formulario.
*/
if ( empty( $body['email'] ) ) {
return;
}
$response = wp_remote_post(
'https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',
array(
'timeout' => 15,
'body' => $body,
)
);
if ( is_wp_error( $response ) ) {
error_log( 'Error enviando lead a Salesforce: ' . $response->get_error_message() );
}
}
Este código no muestra mensajes al usuario. El formulario seguirá funcionando desde Contact Form 7, pero además intentará enviar los datos a Salesforce.
Cómo saber el ID del formulario de Contact Form 7
Para limitar el código a un formulario concreto, necesitas saber su ID.
Hay varias formas de verlo:
- Entra en Contacto dentro del panel de WordPress.
- Abre el formulario que quieres conectar.
- Busca el ID en la URL del administrador.
- También puedes verlo en el shortcode del formulario en algunos listados.
El shortcode puede tener un aspecto parecido a este:
[contact-form-7 id="123" title="Formulario de contacto"]
En ese caso, el ID sería 123.
Cómo mapear campos de Contact Form 7 con Salesforce
Salesforce espera determinados nombres de campo para Web-to-Lead. Algunos campos estándar habituales son:
| Campo en Salesforce | Campo en Contact Form 7 | Comentario |
|---|---|---|
first_name |
your-firstname |
Nombre del lead. |
last_name |
your-lastname |
Apellido. En Salesforce suele ser importante. |
email |
your-email |
Email del contacto. |
phone |
your-phone |
Teléfono del lead. |
company |
your-company |
Empresa. Puede ser obligatorio según configuración. |
description |
your-message |
Mensaje o necesidad del usuario. |
lead_source |
Título del formulario | Útil para saber de dónde viene el lead. |
Si usas campos personalizados en Salesforce, tendrás que revisar el nombre exacto que espera Web-to-Lead y añadirlo al array $body.
Ejemplo con un campo personalizado de Salesforce
Supongamos que Salesforce te da un campo personalizado llamado:
00NXXXXXXXXXXXX
Podrías añadirlo al array de envío así:
'00NXXXXXXXXXXXX' => isset( $posted_data['your-interest'] ) ? sanitize_text_field( $posted_data['your-interest'] ) : '',
El campo de Contact Form 7 podría ser:
[select your-interest "Servicio web" "SEO" "Mantenimiento WordPress" "Integración CRM"]
Consejo ideaWeb: cuando uses campos personalizados, no adivines nombres. Revisa el formulario generado por Salesforce o la configuración del campo para usar el identificador correcto.
Cómo probar la integración antes de darla por buena
No basta con enviar un formulario y pensar que todo está resuelto. Hay que comprobar el recorrido completo.
Prueba esto:
- Envía un formulario con datos de prueba.
- Comprueba que Contact Form 7 muestra el mensaje correcto.
- Revisa si llega el email habitual del formulario.
- Entra en Salesforce y busca el lead.
- Comprueba que nombre, email, teléfono, empresa y mensaje se han guardado bien.
- Revisa si el lead_source tiene sentido.
- Comprueba si se están creando duplicados.
- Revisa el archivo de log si algo no llega.
No pruebes solo con tu email de siempre. Usa varios casos: campos vacíos, teléfono con espacios, mensajes largos, acentos, empresa con caracteres especiales y diferentes navegadores.
Errores habituales al conectar Contact Form 7 con Salesforce
El OID de Salesforce está mal copiado
Si el oid no es correcto, el lead no se asociará bien con tu organización de Salesforce. Es uno de los primeros puntos que hay que revisar.
Los nombres de campos no coinciden
Si Contact Form 7 usa your-name, pero el código busca your-firstname, ese dato llegará vacío.
El código se ejecuta en todos los formularios
Si no limitas por ID, puedes acabar enviando a Salesforce formularios que no deberían crear leads.
Salesforce exige campos que no estás enviando
Según la configuración, Salesforce puede necesitar campos obligatorios. Si no los envías, el lead puede no crearse como esperas.
No hay logs
Si algo falla y no guardas ninguna pista, te quedas a ciegas. Durante las pruebas, al menos conviene registrar errores básicos.
Se duplican leads
Puede ocurrir si tienes un plugin y código personalizado enviando al mismo tiempo, o si Salesforce tiene reglas que no controlan duplicados como necesitas.
El formulario cumple, pero la parte legal no
Si envías datos personales a un CRM, revisa consentimiento, política de privacidad y textos legales. No todo es código.
¿Mejor plugin o código personalizado?
Depende de lo que necesites.
| Situación | Mejor opción | Motivo |
|---|---|---|
| Formulario sencillo de contacto | Plugin o Web-to-Lead con código básico. | No hace falta complicar demasiado. |
| Varios formularios con lógica distinta | Código personalizado. | Permite controlar qué se envía en cada caso. |
| Campos personalizados en Salesforce | Plugin avanzado o desarrollo a medida. | Hay que mapear bien los campos. |
| Necesidad de logs, control y trazabilidad | Desarrollo personalizado. | Permite guardar errores y revisar envíos. |
| Integración compleja con objetos de Salesforce | API de Salesforce. | Web-to-Lead puede quedarse corto. |
Un plugin puede ser cómodo. El código da más control. La API da todavía más posibilidades, pero también exige más trabajo.
Plugins para conectar Salesforce y Contact Form 7
Si no quieres tocar código, puedes valorar plugins específicos para integrar formularios de WordPress con Salesforce.
Antes de instalar uno, revisa:
- Última actualización.
- Compatibilidad con tu versión de WordPress.
- Compatibilidad con Contact Form 7.
- Método de conexión con Salesforce.
- Soporte para campos personalizados.
- Logs de envíos.
- Opiniones de otros usuarios.
- Coste si es premium.
No instales el primer plugin que prometa “integración automática”. En una conexión con CRM interesa saber qué pasa si Salesforce no responde, si faltan campos o si el envío falla.
Privacidad y consentimiento
Cuando un formulario envía datos a Salesforce, esos datos salen de la web y entran en un CRM. Esto debe estar contemplado en la parte legal del sitio.
Revisa, como mínimo:
- Texto de aceptación del formulario.
- Política de privacidad.
- Finalidad del tratamiento de datos.
- Quién recibe o gestiona esos datos.
- Tiempo de conservación.
- Campos realmente necesarios.
No pidas diez datos si solo necesitas tres para responder al usuario. En formularios, pedir menos y pedir mejor suele funcionar mejor.
Cuándo conviene una integración a medida
Una integración a medida tiene sentido cuando el caso deja de ser básico.
Por ejemplo:
- Necesitas enviar leads a distintos equipos según el servicio.
- Hay varios formularios con campos diferentes.
- Quieres registrar el origen de campaña.
- Necesitas enviar datos UTM.
- Quieres controlar duplicados.
- Necesitas logs en WordPress.
- Salesforce usa campos personalizados.
- Necesitas conectar con objetos distintos a Lead.
- Quieres validar datos antes de enviarlos.
En esos casos, una solución rápida puede quedarse corta. A veces lo serio es no forzar un plugin y preparar una integración que se pueda mantener.
Ejemplo práctico: formulario de presupuesto conectado con Salesforce
Imagina una empresa que tiene en su web un formulario de presupuesto. Hasta ahora, cada solicitud llega al correo de administración. Después, alguien copia el nombre, teléfono, empresa y mensaje en Salesforce.
El sistema funciona… más o menos. Si hay pocas solicitudes, se lleva. Si empiezan a llegar más, aparecen los problemas:
- Se tarda en registrar los leads.
- Algún mensaje se queda sin pasar al CRM.
- No siempre se rellena el origen.
- El equipo comercial no ve los leads a tiempo.
- No se puede medir bien qué formularios generan oportunidades.
Con una integración bien montada, el formulario puede seguir enviando el email habitual y, además, crear el lead en Salesforce. Así el equipo comercial trabaja desde su CRM y la web deja de ser una simple bandeja de entrada.
Una buena integración no se nota cuando funciona. Se nota cuando deja de fallar lo que antes se hacía a mano.
Cómo podemos ayudarte desde ideaWeb
En ideaWeb podemos revisar tu formulario, mapear los campos, preparar el envío a Salesforce y comprobar que los leads llegan correctamente.
Este tipo de trabajo suele encajar dentro de proyectos de mantenimiento WordPress, soporte o reparación web y mejoras sobre webs WordPress que necesitan conectar formularios con herramientas externas.
¿Necesitas conectar WordPress con Salesforce sin perder leads por el camino?
Podemos revisar tu formulario, mapear los campos, preparar la integración y dejarla probada para que cada solicitud llegue correctamente al CRM.
Preguntas frecuentes sobre Salesforce y Contact Form 7
¿Se puede integrar Salesforce con Contact Form 7?
Sí. Puedes integrar Salesforce con Contact Form 7 usando Web-to-Lead, plugins específicos o código personalizado en WordPress.
¿Qué es Web-to-Lead en Salesforce?
Web-to-Lead es una función de Salesforce que permite recibir datos de formularios web y crear leads dentro del CRM.
¿Necesito tocar código para conectar Contact Form 7 con Salesforce?
No siempre. Puedes usar plugins, pero si necesitas controlar campos, formularios concretos, validaciones o logs, el código personalizado puede ser mejor opción.
¿Dónde se consigue el OID de Salesforce?
El OID aparece en el código del formulario generado por Web-to-Lead en Salesforce. Es un campo oculto que identifica la organización de Salesforce.
¿Puedo enviar campos personalizados a Salesforce?
Sí, pero debes usar el nombre o identificador correcto del campo de Salesforce y mapearlo bien con el campo correspondiente de Contact Form 7.
¿Es mejor usar un plugin o una integración a medida?
Para formularios sencillos, un plugin puede ser suficiente. Para integraciones con varios formularios, campos personalizados, lógica comercial o necesidad de logs, suele ser mejor una integración a medida.
¿Qué pasa si Salesforce no recibe el lead?
Hay que revisar el OID, los campos obligatorios, los nombres de los campos, la respuesta del servidor y los posibles errores registrados en WordPress.
¿Esta integración sustituye al email de Contact Form 7?
No necesariamente. Puedes mantener el email habitual de Contact Form 7 y, además, enviar los datos a Salesforce.
¿Debo revisar la política de privacidad?
Sí. Si envías datos personales desde la web a Salesforce, conviene revisar el consentimiento del formulario y la política de privacidad.
¿ideaWeb puede hacer esta integración?
Sí. Podemos revisar el formulario, preparar el mapeo de campos, conectar Contact Form 7 con Salesforce y comprobar que los leads llegan correctamente al CRM.
Tus email se van a spam, 10 Razones y soluciones.
Tu web WordPress en una App fácilmente con Appmaker
Cómo hacer una primera auditoría SEO en WordPress
Cómo Habilitar los comentarios de todos los productos de WooCommerce en WordPress
Cómo cambiar el tipo de publicación en WordPress. Formas de cambiar el tipo de post.
WordPress vs Creadores de sitios web: ¿Cuál es la mejor elección?


