Ejemplo: Enviar datos de un formulario por chat

De Vocalcom.latam Wiki
Saltar a: navegación, buscar
<html>
<head>
</head>
<body>
	<form>
		<label for="nombre">Nombre: </label><input type="text" id="nombre" value="Jorge" ></input><br/>
		<label for="apellido">Apellido: </label><input type="text" id="apellido" value="García" ></input><br/>
		<input type="button" onclick="enviarDatos()" value="Enviar"></input>
	</form>


	<!-- copiar código del script de chat de vocalcom para la campaña -->
	<script>
	function enviarDatos () {
		if (MyG2C.IgnoreData) {
			MyG2C.IgnoreData = false; //esta variable por defecto se carga en true e impide el uso de la función setData que envía datos al script de agente
		}
		
		//tomamos los datos del formulario en variables (también se puede usar getElementById dentro de la función setData, pero así queda más claro)
		var varNombre = document.getElementById("nombre").value
		var varApellido = document.getElementById("apellido").value

		//la función chatAsk se fija si hay algún agente trabajando en la campaña y realiza la solicitud de chat, devuelve true o false
		if ( MyG2C.API.chatAsk() ) {
		
			//la función getChatAskState se fija el estado de la solicitud de chat, devuelve un entero
			var estado = MyG2C.API.getChatAskState();
			
			if ( estado < 0 ) {
				//si devuelve un valor menor a cero significa que hubo un error en la solicitud
				alert("Error en la solicitud");
				return;
			}
			else if ( estado == 0 || estado == 1 ) {
				//si devuelve 0 o 1 la solicitud tuvo exito y puede comenzar el chat
				
				//enviamos los datos al script del agente
				//los parámetros son:
				//id - nombre del campo en la base de datos
				//value - valor a almacenar
				MyG2C.API.setData('apellidoCliente', varApellido);
				MyG2C.API.setData('nombreCliente', varNombre);
			}
			else if ( estado > 1 ) {
				//si devuelve un valor mayor a uno la oslicitud está en cola, el valor indica el tiempo estimado de espera
				alert ("Agente disponible en " + estado + " segundos.");
			}
		}
		else {
			alert("No hay ningún agente disponible");
		}
	}
	</script>
	<!-- 
		Notas: 
		- Sería buena práctica que si la función getChatAskState devuelve un valor mayor a 1, se dispare 
		un setTimeout que vuelva a checkear luego el estado de la solicitud.
		- La función setData debe ser usada una vez que el chat ha comenzado (cuando getChatAskState devuelve 0 ó 1).
		- También se puede agregar el uso de la función MyG2C.API.getAgentAvailable() para checkear si hay algún 
		agente en la cola (disponible) - Devuelve true si hay agente disponible o false si no lo hay.
		- Si la campaña tiene horarios pueden utilizar MyG2C.API.getCampaignOpened() para corroborar si la campaña
		está habilitada en ese momento - Devuelve true si la campaña está abierta o false si no lo está.
	-->
</body>
</html>