Un error de Deluge en Zoho CRM que reporta una "incompatibilidad de tipo de dato BIGINT" con un lookup significa que el script intentó escribir o comparar un ID de lookup numérico con el tipo incorrecto. Zoho almacena los IDs de registro para los lookups como enteros grandes (BIGINT), y pasar una cadena, nulo o un formato numérico incompatible activa este error.
Qué significa — explicación concreta ligada a la superficie de la API de Zoho
Cuando una tarea de Deluge o la API de CRM actualiza un campo de lookup, el motor espera que el valor del lookup sea el ID del registro del módulo (un BIGINT) o un objeto que incluya ese ID según la forma de la carga útil de la API. Suministrar una cadena, un valor vacío, un objeto compuesto sin la clave numérica "id", o un número fuera del rango BIGINT hace que la capa de CRM rechace la operación con una incompatibilidad de tipo de dato [3].
Causas comunes
- Pasar el nombre para mostrar, el correo electrónico o el valor de un campo personalizado del registro de lookup en lugar del ID numérico del registro [3].
- Enviar el ID como una cadena entre comillas (por ejemplo, "123456789012345") en lugar de un tipo numérico en Deluge o JSON de la API [3].
- Usar una variable vacía, indefinida o nula en el campo de lookup cuando la API espera un BIGINT válido [1].
- Construir el objeto de lookup incorrectamente (falta la clave "id" o estructura JSON incorrecta) al llamar a /crm/v2 o al usar llamadas de registro zoho.crm.update [3].
Cómo solucionarlo
- Confirma que el valor de origen es el ID numérico del registro: obtén el registro relacionado a través de getRecord o una llamada de búsqueda y usa su propiedad "id". Por ejemplo, usa response.get("id") en lugar de response.get("Name") en Deluge [3].
- Asegúrate de que el ID sea numérico en la carga útil: en Deluge, no envuelvas el ID entre comillas; en llamadas REST, envíalo como un número o como
{"id": 123456789012345}dentro del campo de lookup. - Construye el objeto de lookup exactamente como lo espera la API. Para una actualización de registro en Deluge:
map.put("Account_Name", {"id": accountId});luego llama azoho.crm.updateRecord("Contacts", contactId, map)[3]. - Agrega verificaciones defensivas:
if (accountId == null || accountId.toString().trim().length() == 0)entonces omite la actualización del lookup o genera un error de validación claro en lugar de enviar un valor en blanco [1]. - Reproduce con una carga útil mínima: envía solo el campo de lookup y el ID a la API para confirmar que el error BIGINT desaparece, luego expande a la carga útil completa una vez que esté corregido.
Cuándo escalar
Si confirmas que el código envía un "id" numérico y el CRM aún lo rechaza, recopila el cuerpo de la solicitud fallida, las cabeceras de respuesta, los IDs de registro y las marcas de tiempo, y abre un ticket con el Soporte de Zoho. Incluye el script reproducible mínimo y la llamada a la API para que ingeniería pueda inspeccionar la coerción de tipos en la capa de servicio.
[1]: Publicaciones de la Comunidad Zoho sobre scripting de CRM e integraciones de listas relacionadas.
[3]: Hilo de la Comunidad Zoho que discute el comportamiento de la API e interacciones de scripts de Deluge.