Un errore Deluge Zoho CRM che segnala una "mancata corrispondenza del tipo di dati BIGINT" con un lookup significa che lo script ha tentato di scrivere o confrontare un ID numerico di lookup come tipo errato. Zoho memorizza gli ID dei record per i lookup come numeri interi di grandi dimensioni (BIGINT) e passare una stringa, null o un formato numerico incompatibile attiva questo errore.
Cosa significa — spiegazione concreta legata alla superficie dell'API Zoho
Quando un'attività Deluge o l'API CRM aggiorna un campo di lookup, il motore si aspetta che il valore di lookup sia l'ID del record del modulo (un BIGINT) o un oggetto che include tale ID secondo la forma del payload dell'API. Fornire una stringa, un valore vuoto, un oggetto composito senza la chiave numerica "id", o un numero al di fuori dell'intervallo BIGINT fa sì che il livello CRM rifiuti l'operazione con una mancata corrispondenza del tipo di dati [3].
Cause comuni
- Passare il nome visualizzato, l'email o il valore di un campo personalizzato del record di lookup invece dell'ID numerico del record [3].
- Inviare l'ID come stringa tra virgolette (ad esempio, "123456789012345") invece di un tipo numerico in Deluge o JSON API [3].
- Utilizzare una variabile vuota, non definita o nulla nel campo di lookup quando l'API si aspetta un BIGINT valido [1].
- Costruire l'oggetto di lookup in modo errato (mancanza della chiave "id" o struttura JSON errata) quando si chiama /crm/v2 o si utilizzano le chiamate zoho.crm.update record [3].
Come risolverlo
- Conferma che il valore di origine sia l'ID numerico del record: recupera il record correlato tramite getRecord o una chiamata di ricerca e utilizza la sua proprietà "id". Ad esempio, usa response.get("id") invece di response.get("Name") in Deluge [3].
- Assicurati che l'ID sia numerico nel payload: in Deluge, non racchiudere l'ID tra virgolette; nelle chiamate REST, invialo come numero o come {"id": 123456789012345} all'interno del campo di lookup.
- Costruisci l'oggetto di lookup esattamente come previsto dall'API. Per un aggiornamento del record in Deluge: map.put("Account_Name", {"id": accountId}); quindi chiama zoho.crm.updateRecord("Contacts", contactId, map) [3].
- Aggiungi controlli difensivi: if (accountId == null || accountId.toString().trim().length() == 0) quindi salta l'aggiornamento del lookup o genera un chiaro errore di validazione invece di inviare un valore vuoto [1].
- Riproduci con un payload minimo: invia solo il campo di lookup e l'ID all'API per confermare che l'errore BIGINT scompaia, quindi espandi al payload completo una volta risolto.
Quando escalare
Se confermi che il codice invia un "id" numerico e il CRM lo rifiuta ancora, raccogli il corpo della richiesta fallita, le intestazioni della risposta, gli ID dei record e i timestamp e apri un ticket con il Supporto Zoho. Includi lo script riproducibile minimo e la chiamata API in modo che l'ingegneria possa ispezionare la coercizione del tipo a livello di servizio.
[1]: Post della community Zoho su scripting CRM e integrazioni di elenchi correlati.
[3]: Discussione nella community Zoho sull'API behavior e le interazioni degli script Deluge.