Las plantillas de correo de Zoho CRM fallan al cargarse o los correos no se envían cuando se llaman desde la API cuando la plantilla está ausente, mal formada o el contexto de llamada carece de los ámbitos o datos de campo correctos. Este error generalmente aparece como una carga útil de plantilla vacía, HTTP 200 sin contenido, o errores de API que hacen referencia a entradas o permisos incorrectos.
Qué significa — explicación concreta ligada a la superficie de la API de Zoho [2][3][6]
La función de Plantillas de Correo del CRM almacena plantillas HTML o de arrastrar y soltar que la interfaz de usuario y la API del CRM referencian al enviar mensajes. Cuando una llamada a la API para enviar o recuperar una plantilla devuelve un cuerpo vacío, un error o no adjunta la plantilla, está sucediendo una de estas cosas: el registro de la plantilla no se encuentra o no está publicado, el HTML de la plantilla contiene elementos o campos de combinación no compatibles, o el llamador no presenta los ámbitos OAuth o las entradas a nivel de registro correctos requeridos por la API de envío o la función sendmail de Deluge [2][3][6].
Causas comunes
- La plantilla sigue siendo un borrador, no está publicada o está almacenada en una carpeta/organización diferente a la que el llamador de la API puede acceder [2][3].
- La plantilla utiliza campos de combinación o componentes que hacen referencia a campos del CRM ausentes o HTML no compatible, por lo que la API devuelve contenido vacío o elimina el cuerpo [2][3].
- El token OAuth carece de los ámbitos correctos del CRM (acceso a envío de correo / plantillas) o el token pertenece a un usuario sin permiso para ver esa plantilla [6][5].
- Deluge o Flow pasan entradas con tipos incorrectos u omiten campos requeridos (por ejemplo, campos booleanos/de contacto), lo que hace que la llamada de envío falle a pesar de que la recuperación de la plantilla parece normal [4][6].
- Desajuste del servicio o del punto final regional: llamar al punto final incorrecto del centro de datos de Zoho puede devolver 200 con detalles vacíos para objetos almacenados en otra región [1].
Cómo solucionarlo
- Confirma que la plantilla está publicada y es visible: abre CRM > Configuración > Plantillas > Plantillas de Correo y verifica que la plantilla esté publicada y en la carpeta esperada [2][3].
- Prueba la recuperación de la plantilla con el punto final de la API y el token correctos: llama a GET https://www.zohoapis.com/crm/v2/settings/templates o al punto final de plantilla específico del módulo para tu región y confirma que el JSON incluye el cuerpo de la plantilla. Si tienes una cuenta regional, llama al dominio correspondiente (zoho.eu, zoho.in) [1].
- Valida los campos de combinación y el HTML: elimina o reemplaza las etiquetas no compatibles y asegúrate de que cada campo de combinación coincida con un nombre de campo existente en el CRM; luego guarda y publica la plantilla nuevamente [2][3].
- Verifica los ámbitos OAuth y los permisos del usuario: asegúrate de que el token OAuth tenga los ámbitos
ZohoCRM.modules.*ysend mailrequeridos por tu código o función Deluge, y que el usuario del token pueda ver/enviar esa plantilla [6][5]. Reautoriza si faltan ámbitos. - Verifica los tipos de datos y las entradas requeridas en tu llamada: para los puntos finales de envío
sendmailde Deluge o de la API, pasa los IDs de registro y campos requeridos en los tipos esperados (booleanos comotrue/false, no "1" o cadena vacía) y maneja los nulos antes de llamar [4][6]. - Vuelve a intentarlo desde el punto final regional correcto si tu organización se encuentra fuera del centro de datos global; confirma que el ID de la organización y el dominio coincidan con tu token. Si ves HTTP 200 pero campos vacíos, es probable que haya un desajuste regional [1].
Cuándo escalar
Escala a Soporte de Zoho si confirmas que la plantilla está publicada, tu token tiene los ámbitos correctos y el punto final regional es correcto, pero la API todavía devuelve contenido vacío o errores del servidor; incluye las cabeceras de la solicitud/respuesta de la API, el ID de la plantilla y el ID de la cuenta de usuario para que el Soporte pueda rastrear la solicitud.