L'errore UNAPPROVABLE viene restituito dall'API Approvazioni di Zoho CRM quando un record non può entrare o progredire attraverso un flusso di approvazione perché non supera la validazione, manca la configurazione richiesta o viola le condizioni di approvazione. Questo errore segnala un problema di regole aziendali o di configurazione piuttosto che un errore di autenticazione o di rete.
Cosa significa — spiegazione concreta legata alla superficie dell'API Zoho
UNAPPROVABLE si verifica quando l'endpoint Approvazioni (ad esempio POST /crmv2/Approvals o le API di approvazione specifiche del modulo) determina che il record di destinazione non può essere approvato secondo le regole attuali. I controlli tipici a livello API includono campi obbligatori mancanti per la regola di approvazione, lo stato del record non corrispondente ai criteri della regola, o il flusso di lavoro di approvazione non abilitato o configurato in modo errato per quel modulo o tipo di record [3][4].
Cause comuni
- Un campo obbligatorio utilizzato dalla regola di approvazione è vuoto o contiene dati non validi, causando il fallimento della valutazione della regola [4].
- I criteri della regola di approvazione non corrispondono allo stato del record (stato, fase, valore picklist), quindi il flusso di lavoro rifiuta di avviarsi [3].
- Il flusso di lavoro o il processo di approvazione è disabilitato, eliminato o non assegnato al profilo/ruolo del record, impedendo all'API Approvazioni di instradare la richiesta [3].
- La richiesta API fa riferimento al modulo, all'ID record o al nome API del campo personalizzato errato, quindi Zoho considera il record non applicabile a nessuna regola di approvazione [3][4].
Come risolverlo
- Riprodurre il fallimento nell'interfaccia utente per lo stesso record. Aprire il record in CRM e tentare la stessa azione di approvazione per visualizzare avvisi dell'interfaccia utente o campi mancanti.
- Controllare la configurazione della regola di approvazione: aprire Setup > Automation > Approvals e confermare che il processo sia attivo, applicato al modulo corretto e mirato al profilo/ruolo del record. Verificare che le regole di assegnazione e i criteri di immissione corrispondano esattamente ai valori sul record [3].
- Validare i campi obbligatori e i tipi di dati utilizzati dall'approvazione: confermare che i campi obbligatori siano popolati e che i valori picklist/API corrispondano alle stringhe attese. Utilizzare la chiamata GET del record (GET /crm/v3/Modules/{module}/records/{id}) per ispezionare le chiavi dei campi e i valori utilizzati nel payload dell'API [4].
- Confermare che il payload della richiesta API utilizzi i nomi API dei campi e l'ID record corretti. Confrontare le chiavi del payload con Setup > Customization > Modules and Fields per evitare nomi API non corrispondenti. Se si inviano mappe nidificate, assicurarsi che la struttura JSON corrisponda allo schema dell'API Approvazioni di Zoho.
- Se l'approvazione è condizionata a record correlati (campi lookup), confermare che il record correlato esista e soddisfi i propri criteri. Rieseguire l'API dopo aver corretto i campi o abilitato il flusso di lavoro.
- Aggiungere il logging per il corpo della risposta dell'API e per eventuali oggetti "details" restituiti; spesso includono il campo o il nome della regola che causa il fallimento. Utilizzare quel dettaglio per indirizzare le correzioni e riprovare.
Quando escalare
Se hai verificato che il processo di approvazione è attivo, i campi del record sono corretti e il payload dell'API corrisponde ai nomi dei campi del modulo ma l'errore persiste, contatta il supporto Zoho con l'ID della richiesta, la richiesta/risposta API completa (oscurando i segreti) e screenshot della configurazione di approvazione. Il supporto può ispezionare la valutazione delle regole lato server e i log oltre la risposta dell'API.
[3]: CRM | Troubleshooting | Knowledge Base (https://help.zoho.com/portal/en/kb/crm/troubleshooting)
[4]: Zoho Learn / esempi della community che mostrano dati non validi ed errori di campi API (https://help.zoho.com/portal/en/community)