Hosting WordPress

En este artículo vamos a ver cómo integrar Salesforce en un formulario de Contact Form 7. Cuando en WordPress tenemos un formulario de CF7 un plugin muy popular que se encuentra instalado en miles de paginas web, al ser gratuito y con muchísimas funcionalidades que te permiten generar casi cualquier formulario para casi cualquier necesidad.

Muchas veces nos encontramos que necesitamos recopilar datos y que cuando los usuarios entren a nuestra web la información que introducen en un formulario concreto se envie a nuestro Salesforce, en principio es bastante sencillo integrar salesforce a un formulario de cf7 solo necesitamos un poquito de paciencia y otro poco de código personalizado, os mostramos como lo hicimos en la web de un clientes que necesitaba tener un formulario de salesforce con las funcionalidades de contact form 7 en su web WordPress.

 

De contact form 7 hacia Salesforce paso a paso

Para empezar vamos a suponer que nuestro sitio web es un WordPress y para los formularios estamos utilizando Contact Form 7. Pues bien, lo que vamos a hacer es llevarnos todas las “entradas” (todos los formularios que nos envían) que  tenemos desde el formulario Contact Form 7 en  Salesforce.

Para hacerlo tendremos que configurar nuestro Salesforce, asegurarnos de que nuestro formulario de Contact Form 7 está bien y por último añadir al functions.php de nuestro wordpress un pequeño código que te mostraré después. Y así ya tendríamos la integración hecha.

Pero vamos paso a paso, vamos a ordenar lo que tienes que hacer en tres aspectos diferentes, primero en Salesforce, luego en Contact form 7 y después en WordPress, veámoslo de forma ordenada:

 

Integración de Salesforce paso a paso

  1. En nuestro Salesforce:
  • Vamos a Setup (parte superior derecha junto a tu nombre), es un menú desplegable.
  • Seleccionamos Customize -> Leads -> Web-to-Lead sobre la barra lateral izquierda.
  • Activamos Web-to-Lead y creamos un formulario.
  • Cuando genere su código, vas a encontrar un campo oculto llamado “oid”. Copia este valor y luego vemos dónde hay que ponerlo.
  1. En Contact Form 7:
  • Tan sólo nos tenemos que asegurar de que cada campo tenga la identificación correcta, por ejemplo, “your-mail”, “your-firstmail”, …. Si nos has cambiado nada todo estará correcto.
  • Además Contact Form 7 nos ofrece un gancho (hook), “wpcf7_before_send_mail”, que permite ejecutar una función después del envío del formulario.
  1. En nuestro sitio WordPress
  • Dentro de nuestro sitio WordPress, vamos al menú de Administrador y en Personalizar, vamos a la opción Editor de Temas. En la parte derecha, en el menú, aparecerá el archivo functions.php, lo editamos.
  • Una vez abierto el archivo functions.php copiamos el siguiente código (advertencia: pasa el código, si copias pegas, por un editor de texto antes de llevarlo a tu WP, los plugins de código de WordPress nos han generado problemas en nuestra web, todos, y los hemos descartado):

 

add_action( ‘wpcf7_before_send_mail’, ‘my_conversion’ );

function my_conversion( $cf7 ){

$email = $cf7->posted_data[«your-email»];

$first_name  = $cf7->posted_data[«your-firstname»];

$last_name  = $cf7->posted_data[«your-lastname»];

$phone = $cf7->posted_data[«your-phone»];

$company = $cf7->posted_data[«your-company»];

$message  = $cf7->posted_data[«your-message»];

$lead_source = $cf7->title;

$post_items[] = ‘oid=<YOU_SALESFORCE_OID>‘;

$post_items[] = ‘first_name=’ . $first_name;

$post_items[] = ‘last_name=’ . $last_name;

$post_items[] = ‘email=’ . $email;

$post_items[] = ‘phone=’ . $phone;

$post_items[] = ‘company=’ . $company;

$post_items[] = ‘description=’ . $message;

$post_items[] = ‘lead_source=’ . $lead_source;

if(!empty($first_name) && !empty($last_name) && !empty($email) ){

$post_string = implode (‘&’, $post_items);

// Create a new cURL resource

$ch = curl_init();

if (curl_error($ch) != «»){

// error handling

}

$con_url = ‘https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8’;

curl_setopt($ch, CURLOPT_URL, $con_url);

// Set the method to POST

curl_setopt($ch, CURLOPT_POST, 1);

// Pass POST data

curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_string);

curl_exec($ch); // Post to Salesforce

curl_close($ch); // close cURL resource

}

}

Ya acabamos, advertencias importantes finales

Veamos lo que hemos hecho: Mediante el gancho de Contact Form 7 hemos lanzado una función, “my_conversion”, que se encargará de terminar la integración.

Si observas el código, aparece en rojo,  <YOU_SALESFORCE_OID> esto es lo que tenemos que sustituir por el valor que se ha generado en el campo oculto “oid” de tu Salesforce (recuerda el paso 1).

Además debes comprobar que la identificación de los campos coincide con la de Contact Form 7.

Recuerda actualizar el archivo y ya tendrás integrado tu Contac Form 7 en Salesforce.

 

Alternativas en plugin para integrar Salesforce

Si esto te parece demasiado complicado, no pasa nada, en WordPress casi siempre hay una solución para todo, intentalo con un plugin del repositorio de WordPress gratuito que promete hacerlo sin esfuerzo, aunque a vecesno funciona en algunas webs puedes intentarlo, así que puedes probar con el plugin “Forms: 3rd-Party Integration”.

Hay un buen plugin de pago que por poco mas de 25€ te puede solucionar la papeleta con Salesforce y tiene muy buenas opiniones, su nombre y enlace: Contact Form 7 – Salesforce CRM Integration

En este enlace tienen otras alternativas de pago muy buenas también: Varios plugins premium salesforce + CF7

En caso de que tu formulario WordPress no sea ContactForm 7 y tengas Gravity Forms, el mejor plugin formulario para WordPress tienes un plugin gratuito que promete hacerlo todo bien fácil: Gravity Forms Salesforce

Si nada te funciona hay un plugin de pago por unos 30 dólares para integrar Gravity Forms con Salesforce, puede probar a ver: Gravity Forms – Salesforce CRM Integration