> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnexor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Conectar Zoho CRM

> Conecta Zoho CRM con OAuth y configura los datos de lead, atribución, campos del agente y estados que Nexor envía a Zoho.

Zoho CRM tiene entrada y salida independientes. Nexor puede crear o actualizar **Leads**, actualizar **Organizaciones (Accounts)** existentes e importar a una tarea organizaciones vinculadas a un único **Trato** elegible. Conectar la cuenta por sí solo no activa la importación.

> [!WARNING]
>
> No se debe usar una guía antigua de Self Client. La conexión actual parte de un único botón **Conectar con Zoho** y usa la aplicación OAuth administrada por Nexor.

![Página de Zoho CRM desconectada con el botón Conectar con Zoho.](https://mintcdn.com/nexor/7_xWfOhMNwV0KbZa/images/integrations/zoho-connect-staging-2026-09-07.png?fit=max\&auto=format\&n=7_xWfOhMNwV0KbZa\&q=85\&s=9417bf4fb72fb392aa1bb2db26e07a02)

Punto de entrada de OAuth de Zoho en staging el 7 de septiembre de 2026. No había un workspace conectado disponible para capturar.

## Antes de conectar

Se necesita una cuenta de Zoho que pueda autorizar acceso al módulo seleccionado, **Leads** o **Accounts**, y permitir que Nexor lea la configuración de campos y de la organización necesaria para completar la integración. El producto y la API de Nexor no permiten confirmar qué plan exacto de Zoho incluye este acceso.

## Conectar Zoho

**1. Abrir Zoho CRM**

Ir a **Integraciones → Zoho CRM**.

**2. Iniciar OAuth**

Seleccionar **Conectar con Zoho**. No hay que copiar un client ID, client secret ni grant code en Nexor.

**3. Aprobar el acceso en Zoho**

Revisar los permisos en la pantalla de consentimiento de Zoho y aprobar la conexión. Nexor vuelve a la integración de Zoho cuando termina el callback.

**4. Revisar Salidas**

Abrir **Salidas** y confirmar los mapeos de datos y estados antes de depender de la conexión.

## Actualizar organizaciones existentes

En la integración Zoho de una tarea, abre el editor de salida y elige **Organizaciones** como módulo. Este modo usa la misma conexión OAuth y no requiere una Cloud Function. Necesita permiso para buscar y actualizar Accounts y leer sus campos.

1. Elige la variable identificadora y el campo correspondiente de Zoho. Para RUT, selecciona el formato sin puntos y con guion; la K se convierte a mayúscula.
2. Selecciona el campo de etapa de Zoho y las etapas en las que se permite actualizar. Los nombres y opciones se leen de tu cuenta; no basta escribir un nombre parecido.
3. Mapea las variables capturadas a campos existentes. Para dirección con comuna y comuna independiente, captura y mapea ambos valores por separado. Para software de venta, usa una opción exacta del desplegable de Zoho; locales debe contener un número válido para el campo elegido.
4. Si la tarea agenda reuniones, elige la etapa de destino después de la reserva. Nexor exige una reunión guardada y no cancelada del mismo contacto y ejecución de tarea; un cambio de estado de Nexor por sí solo no la acredita.
5. Guarda. La salida a Organizaciones queda pausada. Selecciona un contacto y usa la previsualización para revisar los campos propuestos. Si no hay contactos de esa tarea, todavía no se puede probar con datos de ejecución.
6. Activa la salida cuando hayas revisado la configuración. La pausa global de Zoho también debe estar desactivada. La activación se aplica a eventos futuros y no reenvía históricos.

Nexor nunca crea organizaciones en este modo. Sin identificador, con coincidencias múltiples o con una etapa no permitida, no escribe. Los valores vacíos no borran campos. Un valor numérico o de desplegable inválido bloquea la actualización completa. Antes de escribir, Nexor comprueba que el registro no cambió desde la lectura; después verifica los campos en Zoho.

El cambio de etapa tras la reserva también respeta las etapas permitidas. Si el registro ya pasó a una etapa fuera de esa lista, no se siguen modificando sus datos. Volver a Leads conserva los mapeos anteriores y deja la salida pausada para su revisión.

### Cuando la etapa está en un Trato

Si los datos de la empresa están en Organizaciones y el avance comercial está en **Tratos**, elige **¿Dónde está la etapa? → Trato asociado**. Después selecciona **Stage** y sus opciones reales para las etapas permitidas y la etapa al agendar. El identificador y los siete datos de la empresa siguen apuntando a Organizaciones; no hay que mover esos mapeos a Tratos.

Este modo exige **un único Trato asociado a la organización**. Nexor cuenta todos los Tratos asociados, sin filtrar antes por etapa: si no encuentra ninguno, encuentra varios o no puede completar la lectura, no actualiza ninguno de los dos registros. No elige el más reciente ni crea un Trato. La conexión necesita permisos de lectura y actualización de Tratos, además de Organizaciones.

Nexor comprueba la etapa del Trato antes de actualizar la empresa. Cuando existe una reunión guardada, verifica primero los campos de la organización y después cambia `Stage` del Trato. Son dos escrituras independientes: si la segunda falla, los datos de la empresa pueden haber cambiado, pero Nexor no registra la operación completa como exitosa. Un reintento vuelve a comprobar ambos registros.

La previsualización muestra por separado los campos de la organización, el identificador del Trato y el cambio de etapa propuesto. Guardar la configuración la deja pausada y no escribe registros en Zoho.

A NexorAI puedes pedirle: “En esta tarea, conserva los siete mapeos de Organizaciones. La etapa es Stage del único Trato asociado. Usa Universo y Prospeccion (No Agendado) como etapas permitidas y Prospeccion (Agendado) después de una reunión guardada. Lee las opciones de Zoho, guarda pausado y confirma lo guardado sin usar contactos ni escribir en el CRM”. NexorAI debe revisar los catálogos de ambos módulos y reutilizar la decisión de usar un único Trato cuando ya la confirmaste.

### Configurarlo desde NexorAI

Puedes pedir: “Configura esta tarea para actualizar Organizaciones por RUT solo en Universo y Prospeccion (No Agendado). Mapea razón social, nombre de organización, dirección completa, comuna, software de venta y locales. Al confirmar una reserva, pasa a Prospeccion (Agendado). Guarda pausado y muéstrame la previsualización”.

NexorAI puede consultar los campos y opciones reales, configurar las variables necesarias mediante sus herramientas de variables, guardar los mapeos y previsualizar una ejecución. Si falta acceso, una variable o un contacto de prueba, debe indicarlo. Las revisiones y permisos son los mismos que en la interfaz. Los cambios de grupo requieren revisar todas sus tareas. Activar requiere una instrucción explícita.

Una previsualización es una lectura, no una actualización comprobada. La última ejecución verificada identifica la tarea, ejecución, organización y momento de comprobación. Antes de retirar una Cloud Function anterior, revisa sus disparadores, pausa esa salida con autorización y comprueba una escritura real de la integración nativa para evitar duplicar automatizaciones.

## Importar organizaciones a una tarea

Abre **CRM → Zoho → Entrada de organizaciones** dentro de la tarea. Primero configura su salida a Organizaciones: campo identificador, variables y etapas permitidas en **Deals.Stage** del trato asociado. La entrada reutiliza esos ajustes.

1. Elige de dónde tomar el contacto: el contacto vinculado al trato mediante **Contact\_Name**, la propia organización o **Contacto del trato y luego organización**.
2. Selecciona los campos de teléfono y nombre del catálogo real de esa fuente. Email y apellido son opcionales. Nexor no cambia de fuente si falta el teléfono.
3. **Guarda en pausa**, revisa los ajustes y selecciona **Activar entrada**. La activación puede iniciar contacto con organizaciones existentes y futuras que cumplan las condiciones; es independiente de activar la salida.
4. Revisa el último lote: registros leídos, importados, ya existentes y omitidos, con motivos o un error. Si todavía no hay actividad, no hay una revisión registrada; eso no demuestra una desconexión.

Nexor revisa hasta 200 tratos cada cinco minutos y continúa por las páginas restantes. Exige un único trato asociado, una etapa permitida exacta, un identificador de organización sin ambigüedades y un teléfono válido. El contacto del trato debe pertenecer a esa organización. Los contactos existentes en Nexor no se trasladan ni se reabren. Los valores importados se guardan antes de programar el contacto. La importación no escribe en Zoho. Pausar la entrada detiene nuevas incorporaciones; no pausa contactos que ya están en una tarea.

En NexorAI puedes pedir: «Configura la entrada de organizaciones de esta tarea usando el contacto asociado al trato. Lee los campos reales, reutiliza los mapeos de Organizaciones y las etapas permitidas del trato, y guarda en pausa». El chat usa `get_agent_zoho_intake` y `change_agent_zoho_intake`; necesita una instrucción separada para activar. Debe distinguir la configuración guardada de una importación realizada.

## Qué envía Nexor al módulo Leads

Nexor puede encolar una actualización hacia Zoho después de una creación de lead compatible, un cambio de campo capturado, una actualización de perfil o un cambio de estado en Nexor. Esto no funciona como un trigger general para cada edición de la base de datos.

| Campo de Zoho | Comportamiento |
| - | - |
| `Last_Name` | Siempre se incluye. Nexor usa un valor de respaldo si el lead no tiene apellido. |
| `First_Name` | Se incluye cuando el lead de Nexor tiene nombre y apellido guardados. |
| `Email` y `Phone` | Se incluyen cuando están presentes en el lead de Nexor. `Mobile` es un campo separado. |
| Fuente del lead | Se incluye cuando está presente. |
| Campos de atribución | Se incluyen según los mapeos de **Datos básicos y atribución**. |

Si el lead ya guarda un identificador de Zoho, Nexor actualiza ese registro. De lo contrario, usa el teléfono o el email para el upsert de Zoho cuando alguno está presente. No se debe asumir deduplicación si faltan ambos.

> [!NOTE]
>
> La sincronización actual no escribe el campo **Owner** de Zoho.

## Configurar salidas del módulo Leads

### Datos básicos y atribución

Cuando se crea la conexión, Nexor intenta crear o reutilizar estos campos de texto en Zoho:

* `gclid`
* `fbclid`
* `ctwa_clid`
* `utm_source`
* `utm_medium`
* `utm_campaign`
* `utm_term`
* `utm_content`

La pantalla de mapeo también ofrece `landing_url`, `page_url`, `source_url` y `referrer`. Nexor no aprovisiona automáticamente esos cuatro campos, por lo que se debe elegir un campo compatible que ya exista en Zoho.

Al enviar, Nexor busca cada valor de atribución configurado primero en el contexto de anuncios actual del lead y luego en el nivel superior de su metadata. Una atribución válida más reciente de WhatsApp puede reemplazar un valor anterior, por lo que esta salida no garantiza atribución de primer contacto.

### Datos capturados por los agentes

Se puede mapear un campo recopilado por un Agente de Nexor hacia un campo disponible en Zoho. Una configuración admite hasta 100 mapeos, con un destino de Zoho por cada campo de origen.

`First_Name`, `Last_Name`, `Email` y `Phone` se toman automáticamente del perfil del lead. No mapees variables capturadas a esos destinos. `Lead_Source`, `Lead_Status` e `id` tampoco están disponibles como destinos de campos personalizados. Configura los mapeos de estado en **Estados**. Una variable de teléfono capturada puede mapearse a `Mobile` cuando ese campo esté disponible en el catálogo de Zoho.

Para un picklist de Zoho, Nexor solo envía valores incluidos en las opciones guardadas del campo. Un valor inválido se omite sin bloquear el resto de la actualización del lead.

### Guardar mapeos de Leads desde Nexor AI

Pide a Nexor AI que cambie la salida de la tarea indicada y conserve sus mapeos de atribución existentes. Compartir la conexión de Zoho no obliga a cambiar todas las tareas. Guardar los mapeos no activa una tarea pausada ni demuestra que se actualizó un registro en Zoho.

Para clientes MCP, `change_agent_zoho_flow` con `action=configure` y `section=fields` requiere tanto `field_map` como `agent_fields`. Lee primero el flujo actual y conserva todos los mapeos que deben mantenerse. Las colecciones vacías eliminan esa parte de los mapeos de la tarea. No incluyas `target_module` ni ajustes de estado en ese cambio. Guarda los estados por separado con una revisión actualizada. `section=all` corresponde únicamente a `action=inherit`.

El guardado crea mapeos propios de la tarea, incluidos los de atribución que se hayan copiado. Los cambios posteriores a los valores de la cuenta no los reemplazan. Restaura los ajustes compartidos de campos con `action=inherit` y `section=fields` cuando ese sea el cambio deseado.

Si falla el guardado, revisa la solicitud rechazada y vuelve a leer la configuración de la tarea. No reintentes como un cambio para toda la cuenta. Un conflicto de revisión requiere revisar los ajustes actuales antes de reintentar.

### Estados

Se debe mapear cada estado de Nexor que necesite actualizar Zoho hacia una opción actual de `Lead_Status`. Un estado de Nexor sin mapeo deja `Lead_Status` sin cambios.

## Desconectar Zoho

Abrir el menú de la conexión, seleccionar **Desconectar** y confirmar. La desconexión detiene las sincronizaciones futuras, pero no elimina los datos históricos de leads.

## Cobertura de capturas

El punto de entrada de OAuth desconectado se verificó en staging el 7 de septiembre de 2026. No se pudieron capturar la pantalla de consentimiento de Zoho ni las pantallas conectadas de **Salidas**, mapeos, estados y desconexión porque no había una conexión de Zoho autorizada con datos de demostración seguros. Esas verificaciones visuales quedan pendientes y no se reemplazan con pantallas de ejemplo.

Con **Contacto del trato y luego organización**, configura también los campos de teléfono y nombre de la organización, y opcionalmente correo y apellido. Nexor usa todos los datos de una sola fuente. Recurre a la organización si falta el contacto, su vínculo o un teléfono válido. Un contacto explícitamente vinculado a otra organización o un error de acceso a Zoho bloquea la importación. Si ninguna fuente tiene teléfono válido, se omite la organización. No cambia de número por falta de respuesta. La actividad muestra cuántos candidatos usaron los datos de la organización.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.