Prefer to view the site in English? For relevant information, visit the English version of the website.
21Sep, 2017
0Comments

¿Cómo enviar un mensaje de texto por celular después de haber llenado un formulario digital?

Este artículo de Trucos y Consejos es para los usuarios más avanzados de Kizeo Forms que tienen conocimientos en desarrollo informático.

¿Recibe muchos correos electrónicos en su buzón? Aparte, usted ya sabe que algunas personas a veces no leen o abren sus correos electrónicos. Tiene que encontrar una forma más directa de llegar directamente a estas personas. ¡Un mensaje de texto por celular sería la manera perfecta!

Por ejemplo, tiene un formulario sencillo para sacar una cita. Dentro de este formulario, tiene la siguiente información: nombre del cliente, dirección, fecha y nombre del representante de ventas:

Formulario digital celular

Sería genial poder avisar directamente el representante de ventas que un nuevo prospecto pidió una cita con él. Para eso, le podemos enviar un mensaje de texto directamente a su celular.

Es posible hacerlo usando el API Kizeo Forms: acciones a seguir.

En vez de hacer esta acción manualmente, el API permite automatizarla. Así, lo podemos hacer en 3 pasos:

1° paso: Obtener un token

El token es una especie de contraseña temporal que permite a su programa ver los datos como si usted estuviera conectado a la plataforma Kizeo Forms.

2° paso: Visualizar los nuevos datos

Para cada determinado formulario, el programa va a crear el contenido de su mensaje de texto gracias a los valores registrados al llenar su formulario.
Tomando el mismo ejemplo del formulario de citas, el programa recuperará fácilmente el nombre del cliente, su dirección y sobretodo el número de teléfono del representante de ventas.

Una vez que el contenido del mensaje haya sido creado, tendrá que contratar los servicios de una compañía externa, como Mensatek por ejemplo, para enviar este mensaje de texto.

Eso sería el resultado:

Mensaje de texto trucos consejos

3° paso: marcar estos datos como “tratados” en el servidor de Kizeo Forms.

Su mensaje de texto fue enviado, pero ahí no se acaba. En caso de que el programa sea lanzado otra vez, el mensaje de texto se enviará nuevamente. Por eso, es necesario terminar el programa lanzando una nueva llamada API que marcará en el servidor este dato como ya tratado. Sin embargo, este dato se quedará en la plataforma Kizeo Forms.

Ahí viene la parte técnica de este artículo, se trata de un ejemplo en PHP:

require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

$user = 'login';
$password = 'pass';
$company = 'global_code';
$array_login = array("user" => $user, "password" => $password, "company" => $company);
$json_login = json_encode($array_login);

$service_main_url = "https://www.kizeoforms.com/rest/v3";
$service_url = $service_main_url . '/login';
$ch = curl_init($service_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_login);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: '.strlen($json_login)));
$curl_response = curl_exec($ch);
curl_close($ch);


$array_json_token = json_decode($curl_response, true);
$token = "";


if ($array_json_token['status'] == 'ok'){
$token = $array_json_token['data']['token'];
}

$array_ids = array();
$form_id = 00000;

$service_main_url = "https://www.kizeoforms.com/rest/v3";
$service_url = $service_main_url . '/forms/' . $form_id . '/data/readnew';
$ch = curl_init($service_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: '. $token));
$curl_response = curl_exec($ch);
curl_close($ch);

$array_json_data = json_decode($curl_response, true);
if ($array_json_data['status'] == 'ok' && count($array_json_data['data']) > 0 ){
foreach ($array_json_data['data'] as $key => $data) {
$array_ids[] = $data['id'];
$commercial = $data['fields']['commercial']['value'];
$client = $data['fields']['nom_du_client']['value'];
$date = $data['fields']['date_et_heure_du_rdv']['value'];
$adresse = $data['fields']['adresse_address']['value'] . ' ' .$data['fields']['adresse_zip']['value'] . ' '. $data['fields']['adresse_city']['value'];

$endpoint = 'ovh-eu';
$applicationKey = "appKey";
$applicationSecret = "appSecret";
$consumer_key = "consumerKey";

$conn = new Api( $applicationKey,
$applicationSecret,
$endpoint,
$consumer_key);
$smsServices = $conn->get('/sms/');
$content = (object) array(
"charset"=> "UTF-8",
"class"=> "phoneDisplay",
"coding"=> "7bit",
"message"=> "Bonjour $commercial, merci de noter dans votre agenda le RDV suivant avec $client. $adresse le $date",
"noStopClause"=> false,
"priority"=> "high",
"receivers"=> [ $data['fields']['telephone']['value'] ],
"senderForResponse"=> true,
"validityPeriod"=> 2880
);
$resultPostJob = $conn->post('/sms/'. $smsServices[0] . '/jobs/', $content);
}
}


if (count($array_ids)){
$service_main_url = "https://www.kizeoforms.com/rest/v3";
$service_url = $service_main_url . '/forms/' . $form_id . '/markasread';
$ch = curl_init($service_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: '. $token));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('data_ids' => $array_ids)));
$curl_response = curl_exec($ch);
curl_close($ch);
$array_json_data = json_decode($curl_response, true);
if ($array_json_data['status'] == 'ok'){
// c'est bon signe
}
}

¡Deje su comentario acerca de este articulo!
¡Comparta sus dudas, sugerencias o preguntas y con gusto se las contestaremos !

Deje su comentario

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