Beam Help
Solicitar ayuda

How-to · Zoho CRM

Cómo recuperar proveedores en Zoho

Accede a registros de proveedores e información de suministradores a través de la API de Zoho.

Recuperar proveedores en Zoho CRM requiere una conexión autenticada válida y un token de acceso correctamente renovado antes de realizar cualquier llamada a la API. Esta guía explica cómo nuestra capa de integración gestiona ese proceso de principio a fin.


Por qué esto es importante


Cuando necesitas extraer registros de proveedores de Zoho CRM — para informes, sincronización con sistemas externos o auditoría de datos de suministradores — tu aplicación debe primero establecer y mantener una sesión OAuth activa. Los tokens caducan y, sin lógica de renovación automática, las llamadas de recuperación de proveedores fallarán a mitad de la solicitud con errores 401. Entender cómo funciona el ciclo de vida de la conexión y del token te ayuda a construir pipelines de datos fiables e ininterrumpidos.


> Nota: Beam Help es soporte experto independiente para Zoho — no somos el soporte oficial de Zoho.


---


Paso a paso


Paso 1. Verifica que existe una conexión almacenada para el usuario.


Antes de que pueda producirse cualquier recuperación de datos, el sistema busca las credenciales almacenadas del usuario en la tabla zohoconnections usando su userid. Si no se encuentra ningún registro, el proceso se detiene de inmediato y devuelve None — lo que significa que no se pueden obtener datos de proveedores hasta que el usuario se autentique. [2]


Paso 2. Comprueba si el token de acceso necesita renovarse.


La capa de conexión compara la marca de tiempo actual con el valor almacenado en tokenexpiresat, aplicando un margen de renovación anticipada de 120 segundos para reducir la posibilidad de que el token caduque a mitad de una solicitud. Si el token está dentro de ese margen, llama a ZohoOAuth.refreshtokens() usando el refreshtoken almacenado y, a continuación, escribe el nuevo access_token y la fecha de expiración actualizada en la base de datos antes de continuar. [2]


Paso 3. Instancia el cliente de API correcto.


Una vez confirmada una conexión válida, se crea un ZohoCrmClient usando el apidomain almacenado, el accesstoken actual y un callback token_refresher. Este callback se invoca automáticamente si el token caduca durante una operación de larga duración — obtiene un token nuevo y actualiza la base de datos para que las llamadas posteriores permanezcan autenticadas. [^1, ^4]


Paso 4. Confirma que la conexión está activa antes de obtener registros.


Una comprobación de conectividad ligera — como llamar a getcurrentuser() en la instancia de ZohoCrmApi — confirma que las credenciales funcionan. La respuesta debe incluir un array users; si en su lugar aparece una clave error, la conexión debe restablecerse antes de intentar recuperar registros de proveedores. [4]


Paso 5. Llama a la herramienta adecuada para recuperar registros de proveedores.


Con una instancia de ZohoCrmApi confirmada y autenticada, invoca la herramienta getrecords (o equivalente) apuntando al módulo Vendors. En la capa de integración, las llamadas a herramientas se despachan mediante executetoolwithrepair, que acepta la instancia api, el apptype (establecido en "crm"), el nombre de la tool y un diccionario params. El indicador allow_repair=True habilita la corrección automática de parámetros si la llamada inicial falla. [^3, ^5]


Paso 6. Gestiona el resultado y construye los enlaces relevantes.


Una vez que la herramienta devuelve datos, el resultado puede usarse para construir enlaces directos a Zoho CRM utilizando metadatos como dc (centro de datos), crmorgid y los parámetros de la herramienta. Estos valores se extraen del registro de conexión almacenado y se pasan a un constructor de enlaces junto con el resultado bruto de la herramienta. [3]


---


Errores comunes


  • apidomain ausente o en blanco: Si la conexión almacenada tiene un apidomain vacío, el ZohoCrmClient apuntará al endpoint incorrecto y todas las llamadas fallarán. Valida siempre este campo tras completar el flujo OAuth. [4]

  • La renovación del token no devuelve ningún accesstoken: Si ZohoOAuth.refreshtokens() responde sin una clave accesstoken, la renovación se omite silenciosamente en algunas rutas de código. Asegúrate de que el refreshtoken de tu aplicación OAuth no haya caducado ni sido revocado — los refresh tokens de Zoho pueden invalidarse si no se usan durante un período prolongado. [^2, ^6]

  • Parámetro apptype incorrecto: Pasar "desk" en lugar de "crm" enruta la solicitud a ZohoDeskApi en vez de a ZohoCrmApi, que no tendrá un módulo Vendors y devolverá resultados inesperados. Establece siempre explícitamente apptype="crm" cuando apuntes a registros de proveedores de CRM. [1]

  • crmorgid ausente en entornos sandbox: Las ejecuciones de prueba validan que haya un crmorgid presente en el registro de conexión. Si este campo está en blanco, las pruebas de API en modo sandbox se negarán a continuar. Confirma que el ID de organización se capturó correctamente durante el handshake OAuth inicial. [8]

---


Qué verificar


  • Validez del token: Confirma que tokenexpiresat en zohoconnections es una marca de tiempo futura y que el refreshtoken está presente y no está vacío antes de realizar cualquier llamada de recuperación de proveedores. [2]
  • Exactitud del nombre del módulo: Verifica que el nombre del módulo pasado en los parámetros de get_records coincida exactamente con el nombre de API utilizado en tu configuración de Zoho CRM — los nombres de módulos personalizados distinguen entre mayúsculas y minúsculas. [5]
  • Corrección del dominio de API: Asegúrate de que el api_domain almacenado para el usuario coincide con el centro de datos donde está alojada su organización de Zoho CRM (p. ej., zohoapis.com, zohoapis.eu). [^4, ^6]

Sources cited

  1. [1] server.py: get_zoho_api
  2. [2] server.py: get_zoho_connection
  3. [3] server.py: chat_stream
  4. [4] run_direct_tests.py
  5. [5] server.py: chat_plan_stream
  6. [6] zoho_oauth.py
  7. [7] run_api_tests.py
Cómo recuperar proveedores en Zoho | Beam Help — Beam Help