Los formularios web son un medio clave para recopilar información sobre posibles clientes potenciales. Contar con la opción de un formulario web integrado en un CRM permite automatizar la captura de datos, como nombres, direcciones, correos electrónicos y números de teléfonos dirigidos directamente a la base de datos del CRM.

La integración de formularios web con un CRM supone una mejor segmentación del público, permitiendo a las empresas personalizar sus comunicación y ofrecer mejores experiencias para los clientes.

A través de la interfaz abierta de API en Megacall es posible conectar el CRM de forma gratuita en cualquier canal de comunicación. A continuación, presentamos un ejemplo de formulario funcional para aceptar solicitudes o comentarios y crear leads.

A tener en cuenta que el formulario está simplificado y recomendamos modificar para el uso en su sitio web, definiendo su propio estilo y añadiendo medidas necesarias como por ejemplo captcha.

El formulario se encuentra en HTML, los elementos y bibliotecas se insertan en el código del sitio web. Para el correcto funcionamiento del formulario en la web, será necesario añadir el script de PHP para agregar los datos en Megacall CRM.

Fases de configuración del código: Creación de leads en el CRM desde el formulario web.

  1. En caso de no estar registrado en el CRM de Megacall, el primer paso es crear y activar la plataforma. El usuario debe estar creado y activado en el CRM, de lo contrario no es posible continuar.
  2. Desde el área personal, obtenemos las claves API.
  3. Accediendo a https://my.site.com/megacall_leads creamos un script que servirá para enviar datos del formulario al CRM a través de API. En UserKey y Secret debemos indicar la clave y contraseña que se obtienen en el segundo punto.
    <?php
    $postData = $_POST;
    if ($postData) {
     if (isset($postData['phones'], $postData['phones'][0], $postData['phones'][0]['phone'])) {
     $postData['phones'][0]['type'] = 'work';
     }
     if (isset($postData['contacts'], $postData['contacts'][0], $postData['contacts'][0]['value'])) {
     $postData['contacts'][0]['type'] = 'email_work';
     }
     $params = ['lead' => $postData];
     $params['lead']['lead_source'] = 'form';
     $leadData = makePostRequest('/v1/zcrm/leads', $params);
     if (isset($leadData['status'], $leadData['data'], $leadData['data']['id'])
     && $leadData['status'] === 'success'
     && (isset($postData['comment']) && !empty($postData['comment']))
     ) {
     //Si el cliente se ha creado dejaremos una nota de texto en el flujo de actividad
     $addFeedMethod = sprintf('/v1/zcrm/customers/%s/feed', $leadData['data']['id']);
     $messageData = ['content' => $postData['comment']];
     makePostRequest($addFeedMethod, $messageData);
     }
     var_dump($leadData);
    }
    exit();
    function makePostRequest($method, $params)
    {
     // userKey и secret sustituir por las propias obtenidas en el área personal
     $userKey = '';
     $secret = '';
     $apiUrl = 'https://api.megacall.es';
     ksort($params);
     $paramsStr = makeParamsStr($params);
     $sign = makeSign($paramsStr, $method, $secret);
     $curl = curl_init();
     curl_setopt($curl, CURLOPT_URL, $apiUrl . $method);
     curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
     curl_setopt($curl, CURLOPT_POST, true);
     curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
     curl_setopt($curl, CURLOPT_POSTFIELDS, $paramsStr);
     curl_setopt($curl, CURLOPT_HTTPHEADER, [
     'Authorization: ' . $userKey . ':' . $sign
     ]);
     $response = curl_exec($curl);
     $error = curl_error($curl);
     curl_close($curl);
     if ($error) {
     return null;
     } else {
     return json_decode($response, true);
     }
    }
    /**
    * @param array $params
    * @return string
    */
    function makeParamsStr($params)
    {
     return http_build_query($params, null, '&', PHP_QUERY_RFC1738);
    }
    /**
    * @param string $paramsStr
    * @param string $method
    * @param string $secret
    *
    * @return string
    */
    function makeSign($paramsStr, $method, $secret)
    {
     return base64_encode(
     hash_hmac(
     'sha1',
     $method . $paramsStr . md5($paramsStr),
     $secret
     )
     );
    }
  4. En el código del sitio web vamos a añadir el formulario para conseguir y enviar el lead en API donde los campos ocultos son obligatorios para la solicitud.
    <form method="POST" action="/zcrm_leads">
     <label for="name">Name:
     <br>
     <input type="text" id="name" name="name" value="">
     <br>
     <label for="comment">Comment:</label><br>
     <input type="text" id="comment" name="comment" value="">
     <br>
     <label for="phone">Phone:</label><br>
     <input type="text" id="phone" name="phones[0][phone]" value="">
     <br>
     <label for="phone">Email:</label><br>
     <input type="text" id="email" name="contacts[0][value]" value="">
     <br>
     <br>
     <input type="submit" value="Submit">
    </form>
  5. Después de estos pasos, el formulario estará configurado y listo para funcionar. Al no contar con un diseño aparecerá de esta forma:
    forma para captar leads en crm

Finalmente, recordamos definir los estilos propios y agregar protección como es el reCAPTCHA gratuito. Es posible actualizar el formulario de cualquier forma, ya sea un script para otros datos o para otro apartado (contactos, tareas). Para conocer todos los métodos de integración, puede ver la lista completa en API Megacall CRM.