Álvaro Hermida | Diseño Web

Dieciséis Bits

Integrar Salesforce con WordPress + Elementor

Contenido de la entrada

Integrar Salesforce con WordPress + Elementor

Hoy he tenido que integrar la plataforma Salesforce con una página hecha con WordPress y Elementor. Nunca había hecho esto así que lo primero que he probado ha sido buscar un plugin que me facilitara esta integración, que los hay, pero cuando he visto la info que me reenviaba el cliente desde Salesforce, he visto que me había facilitado únicamente un fragmento de código para dicha integración, así me he propuesto hacerlo desde el functions.php, cuyo resultado te dejo más abajo.

Crear formulario con Elementor

Lo primero que debes hacer es crear un formulario normal con Elementor.
A este formulario le debemos asignar un id, que será el que luego utilizaremos en el «functions.php». Yo en este caso lo llamaré «salesforce».

Además del nombre de formulario también debemos asignarle uno a cada campo que vayamos a enviar a Salesforce. Yo usaré «name»,»phone» y «email».

Esto es lo único que debemos hacer desde Elementor, todo lo demás se hará desde el archivo functions.php

Integrar Salesforce con WordPress + Elementor
				
					function send_custom_webhook( $record, $handler ) {
 /**Código para Elementor*/
  $form_name = $record->get_form_settings( 'form_name' );
  
  if ( 'salesforce' !== $form_name ) {
      return;
  }

  $raw_fields = $record->get( 'fields' );
  $fields_elementor = [];
    
  foreach ( $raw_fields as $id => $field ) {
    $fields_elementor[ $id ] = $field['value'];
  }
 /**Código para salesforce*/
  $nombre = $fields_elementor['name'];
  $email = $fields_elementor['email'];
  $telefono = $fields_elementor['phone'];

  $ch = curl_init('https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8');

  curl_setopt($ch, CURLOPT_POST, TRUE);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

  $fields=array(

    "oid"=>"XXXXXXXXXXXXX",
    "retURL"=>"",
    "recordType"=>"XXXXXXXXXXXXXXXX",
    "00N20000000jMoK"=>"Spain Telesales Residential",
    "company"=>$nombre,
    "lead_source"=>"Web2Lead",
    "00N20000000jKNZ"=>"Spanish",
    "Campaign_ID"=>"XXXXXXXXXXXXXXXX",
    "00N20000003Ytii"=>"Intruder Alarm System",
    "00N20000000jKFf"=>"Spain",
    "00N20000000jKH4"=>"Iberia",
    "last_name"=>$nombre,
    "email"=>$email,
    "phone"=>"".$telefono."",
    "00N200000027QSz"=>"1",
    "00N20000003YUyo"=>"Web",
    "debug"=>"1","debugEmail"=> "hola@dieciseisbits.com"

  );

  foreach($fields as $k=>$v)

    $string.=$k."=".$v."&";
    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $string);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);

    $res=curl_exec ($ch);
    curl_close ($ch);

}

add_action( 'elementor_pro/forms/new_record', 'send_custom_webhook', 10, 2 );


				
			

Editar functions.php

Ahora ya puedes añadir el hook que hará que tras el envío exitoso del formulario creado anteriormente realice la acción que desees. 

Como verás la primera parte es exclusiva para Elementor, lo que hace es determinar de qué formulario se trata, en este caso únicamente continuará la acción si es el formulario llamado «salesforce»

El resto del código es lo que nos había facilitado Salesforce, una llamada remota a su API desde la que haremos el envío de los datos que nos requieren.

Para verificar que la integración está funcionando correctamente, verás que el Array $fields contiene un índice llamado «debugEmail». Envía un formulario de prueba y ahí deberías recibir un correo electrónico indicándote que todo ha salido OK.

Por último, recuerda que si necesitas una ayuda para esta integración, no tienes más que ponerte en contacto comigo a través del siguiente formulario.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Últimas entradas

¿Necesitas ayuda profesional?

Puedes contactar conmigo directamente a través del siguiente formulario.

Álvaro Hermida

Teléfono:

+34 649 72 11 34

Correo electrónico

hola@dieciseisbits.com

Para dudas, consultas o sugerencias utiliza el formulario de contacto.