Programar funciones personalizadas
Deluge o Data Enriched Language for the Universal Grid Environment (Lenguaje enriquecido con datos para el ambiente de red universal) es un lenguaje de scripting en línea integrado con Zoho Creator. Lo ayuda a agregar diferentes tipos de lógica empresarial a la función personalizada y aumentar su potencia. Toda la capa de la base de datos es abstracta, y cuando realice scripting en Deluge solo podrá asignar argumentos con campos. Consulte también la Guía de referencia de scripts de Deluge
Público objetivo
- Los usuarios de CRM con permisos para administrar el flujo de trabajo
- Los programadores con conocimientos de Deluge Script
Disponibilidad
Perfil con permiso: los usuarios que cuenten con permisos para administrar flujos de trabajo pueden acceder a esta función.
Programar funciones personalizadas
Para programar una función personalizada a través de Deluge Script se deben seguir los siguientes tres pasos:
- Programar una función personalizada.
- Asociar la función personalizada con una regla de flujo de trabajo.
- Probar la integración de la función personalizada.
Para programar una función personalizada
- Vaya a Configuración > Automatización > Acciones > Función personalizada.
- En la página de funciones personalizadas del flujo de trabajo, haga clic en Configurar la función personalizada.
- En la página de configuración de funciones personalizadas, haga clic en el enlace Escriba su propia función.
- En la página funciones personalizadas, complete los siguientes pasos:
- Especifique el nombre y la descripción de la función.
- Elija el módulo que se debe asociar con la función y haga clic en el enlace Editar argumentos.
- Ahora, asigne el argumento a un nombre de campo o valor personalizado en el módulo de CRM.
- Haga clic en Listo.
- Escriba la función que necesite en el editor de Deluge Script. Haga clic en Guardar y ejecutar script para validar su código.
Si no hay errores, el script estará listo para que lo asocie con la regla de flujo de trabajo. - Haga clic en Guardar.
Para asociar la función personalizada con una regla de flujo de trabajo
- Vaya a Configuración > Automatización > Reglas de flujo de trabajo.
- En la página Reglas de flujo de trabajo, haga clic en Crear regla.
- En la pestaña Crear nueva regla, especifique los parámetros de la regla de flujo de trabajo.
- Seleccione la función personalizada en Acciones instantáneas.
- Ahora, seleccione la función personalizada que se debe activar.
- Haga clic en Guardar.
Para probar la integración de funciones personalizadas:
- Agregue datos de prueba en CRM, de acuerdo con los criterios de la regla de flujo de trabajo.
- En la aplicación, compruebe los datos recibidos desde Zoho CRM a través de la función personalizada.
- Si hay un error o discrepancia de datos, modifique el código de la función personalizada en Zoho CRM.
- Continúe esta prueba hasta obtener los datos necesarios desde Zoho CRM para su aplicación.
Notas importantes
- Puede asociar hasta seis funciones personalizadas por regla de flujo de trabajo (una acción instantánea y cinco acciones basadas en tiempo).
- Puede transferir datos de un máximo de 10 campos de CRM de Zoho CRM a aplicaciones de terceros mediante funciones personalizadas.
- Puede enviar datos de otras aplicaciones a Zoho CRM utilizando las funciones personalizadas.
- Debe actualizar el ticket de la API regularmente de acuerdo con los límites de las aplicaciones de terceros.
- No recibirá ninguna notificación por correo electrónico si la integración de la función personalizada deja de funcionar debido a un problema en una API de terceros.
- Si hay una falla en el proceso, primero la función personalizada enviará una notificación y, después de 15 minutos, el sistema de Zoho CRM enviará una segunda notificación. Posteriormente, el sistema no enviará notificaciones para ese activador de flujo de trabajo en particular.
- Si se excede el número máximo por día, el sistema no enviará las notificaciones restantes de funciones personalizadas a las aplicaciones de terceros, y notificará el fallo al administrador.
- Zoho CRM enviará los datos en el siguiente formato estándar de fecha y fecha y hora a las aplicaciones de terceros:
- Fecha: aaaa-MM-dd
- Fecha y hora: aaaa-MM-dd hh:mm
Información sobre Deluge Script Builder
Deluge Script Builder lo ayuda a programar las funciones personalizadas mediante una interfaz de usuario de "arrastrar y soltar", además de permitirle ejecutar la función dentro de CRM. Le permite convertir la lógica de aplicación compleja en simple código de Deluge sin que sea necesario que recuerde la sintaxis y las funciones de Deluge Script. Contiene los siguientes componentes:
- Código de Deluge Script
- Tareas de Deluge
- Condiciones
- Misceláneo
- Depuración
- Manipulación de listas
- Manipulación de mapas
- Datos web
- Manipulación de XML
- Ejecución de código
Lista de tareas de Deluge
Tarea de Deluge | Finalidad |
Condiciones | |
Misceláneo | |
Depuración | |
Manipulación de listas | |
Manipulación de mapas | |
Datos web | |
Manipulación de XML |
Ejemplo
Situación de negocios: unifique el campo cantidad de la cuenta principal cuando el estado del potencial sea "ganado y cerrado"
Resumen
Unifique la cantidad de cada potencial (el estado es "ganado y cerrado") en el campo ingresos totales (campo personalizado) de la cuenta relacionada. Si el cliente hace 10 compras, puede ver el total de los ingresos en la página de la cuenta, en vez de tener que crear un informe asociando potenciales a cuentas. En función de los ingresos generados por el cliente, puede clasificarlos en clientes tipo A, tipo B o tipo C.
Pasos de programación
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
- void es el tipo de retorno que no va a retornar nada
- workflowspace es el namespace en el creador, como una carpeta para agrupar funciones
- Rollup_the_Potential_Amount_to_Accounts es el nombre de la función
- AccountId es un parámetro en el que se guarda el ID de la cuenta de CRM
- SumUpField es otro parámetro que guarda la etiqueta del campo de la cuenta en la que se actualizará la suma de la cantidad cuando se activa la regla de flujo de trabajo.
{ accountID1 = (input.AccountId).toString();
- Aquí estamos asignando accountid a una cadena.
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
- Este es un método incorporado en Deluge Script para obtener los registros mediante la búsqueda de los valores de campo.
- Aquí estamos especificando el tipo de registro de potencial rgw que asocia el accountid con el valor que se pasa como parámetro.
total = 0.0;
- Inicializar una variable local para calcular la suma de la cantidad.
for each rec in resp
- Iterar todos los potenciales retornados por la llamada del método anterior.
{
stage = (rec.get("Stage")).toLowerCase();
- Capturar el valor del campo stage de cada potencial.
if (stage.contains("won"))
- Comprobar el valor de stage que contiene "won" para cada potencial. Si es true, se seguirá con la línea siguiente, de lo contrario, se pasará al próximo potencial.
{
total = (total + (rec.get("Amount")).toDecimal());
- Agregando el valor del campo amount a la variable local.
} }
updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });
}
- Este método actualizará el registro de CRM. Mencionamos que el tipo de registro es account asociando el campo accountid con el valor que se pasó con la variable local que actualmente guarda el valor de la suma.
Programa completo
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
{
accountID1 = (input.AccountId).toString();
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
info resp;
total = 0.0;
for each rec in resp
{
stage = (rec.get("Stage")).toLowerCase();
if (stage.contains("won"))
{
total = (total + (rec.get("Amount")).toDecimal());
}
}
updateResp = zoho.crm.updateRecord(("Accounts"), accountID1, { input.SumUpField : total });
}
Situación de negocios 2: unifique el campo cantidad de la cuenta principal cuando el estado del potencial sea "ganado y cerrado"
Resumen
Unifique la cantidad de cada potencial (el estado es "ganado y cerrado") en el campo ingresos totales (campo personalizado) de la cuenta relacionada. Si el cliente hace 10 compras, puede ver el total de los ingresos en la página de la cuenta, en vez de tener que crear un informe asociando potenciales a cuentas. En función de los ingresos generados por el cliente, puede clasificarlos en clientes tipo A, tipo B o tipo C.
Pasos de programación
void workflowspace.Rollup_the_Potential_Amount_to_Accounts(int AccountId, string SumUpField)
- void es el tipo de retorno que no va a retornar nada
- workflowspace es el namespace en el creador, como una carpeta para agrupar funciones
- Rollup_the_Potential_Amount_to_Accounts es el nombre de la función
- AccountId es un parámetro en el que se guarda el ID de la cuenta de CRM
- SumUpField es otro parámetro que guarda la etiqueta del campo de la cuenta en la que se actualizará la suma de la cantidad cuando se activa la regla de flujo de trabajo.
{ accountID1 = (input.AccountId).toString();
- Aquí estamos asignando accountid a una cadena.
resp = zoho.crm.searchRecordsByPDC("Potentials", ("accountid"), accountID1);
- Este es un método incorporado en Deluge Script para obtener los registros mediante la búsqueda de los valores de campo.
- Aquí estamos especificando el tipo de registro de potencial rgw que asocia el accountid con el valor que se pasa como parámetro.
total = 0.0;
- Inicializar una variable local para calcular la suma de la cantidad.
for each rec in resp
- Iterar todos los potenciales retornados por la llamada del método anterior.
{
stage = (rec.get("Stage")).toLowerCase();
- Capturar el valor del campo stage de cada potencial.
if (stage.contains("won"))
- Comprobar el valor de stage que contiene "won" para cada potencial. Si es true, se seguirá con la línea siguiente, de lo contrario, se pasará al próximo potencial.
{
total = (total + (rec.get("Amount")).toDecimal());
- Agregando el valor del campo amount a la variable local.
void workflowspace.Mass_update_of_Child_Contacts(int accId) { accountId = input.accId.toString();
rec = zoho.crm.getRecordById(("Accounts"), input.accId);
resp = zoho.crm.getRelatedRecords("Contacts", ("Accounts"), accountId);
for each ele in resp { mp = map();
mp.put("Mailing Street", rec.get("Billing Street"));
mp.put("Mailing City", rec.get("Billing City"));
mp.put("Mailing State", rec.get("Billing State"));
mp.put("Mailing Zip", rec.get("Billing Code"));
mp.put("Mailing Country", rec.get("Billing Country"));
mp.put("Other Street", rec.get("Shipping Street"));
mp.put("Other City", rec.get("Shipping City"));
mp.put("Other State", rec.get("Shipping State"));
mp.put("Other Zip", rec.get("Shipping Code"));
mp.put("Other Country", rec.get("Shipping Country"));
contactId = ele.get("CONTACTID"); updateResp = zoho.crm.updateRecord("Contacts", contactId, mp);
}
Siga estos pasos para configurar la función personalizada:
- Inicie sesión en Zoho CRM.
- Vaya a Configuración > Automatización > Reglas de flujo de trabajo.
Seleccione Acuerdos desde el menú desplegable Módulo. Ingrese el nombre y la descripción de la regla de flujo de trabajo.
Indique si desea ejecutar esta regla. Seleccione la opción Crear o editar en Ejecutar según una acción de registro.
- Haga clic en Listo.
Elija los registros para los que desea ejecutar la regla. Seleccione la opción Registros que coincidan con la condición y establezca el criterio como "Etapa contiene ganados y cerrados"
- Haga clic en Listo.
Ahora elija la función personalizada como acción instantánea
En la ventana emergente de configuración de funciones personalizadas, haga clic en el enlace Funciones personalizadas.
En la página de funciones personalizadas, haga clic en Configurar en la función Unificar cantidad potencial en la cuenta.
- Seleccione Potencial como su módulo.
- Especifique los valores de los argumentos que se mencionan a continuación:
- AccountId: elija la columna "AccountId" de la lista de campos.
- SumUpField: especifique el campo del módulo de cuentas donde se ingresa la suma.
Haga clic en el enlace "Especificar valor personalizado" y escriba el nombre del campo.
- Guarde la configuración. Ahora, la suma de los ingresos generados por todos los potenciales de una cuenta se actualizará automáticamente en el módulo de cuentas.