snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
---
title: Agentes de IA
description: Integra capacidades de IA directamente en tus flujos de trabajo de automatización.
---
## Resumen
Integra capacidades de IA directamente en tus flujos de trabajo de automatización para el procesamiento inteligente de datos y la toma de decisiones.
## Capacidades
| Función | Descripción |
| ---------------------------- | ---------------------------------------------------------- |
| **Acciones de IA** | Añade pasos impulsados por IA a cualquier flujo de trabajo |
| **Enriquecimiento de Datos** | Mejora automáticamente los registros con datos externos |
| **Clasificación** | Clasifica registros según el análisis de contenido |
| **Generación de resúmenes** | Genera resúmenes a partir de campos de texto |
| **Prompts personalizados** | Define exactamente cómo la IA procesa tus datos |
## Casos de uso
* **Puntuación de clientes potenciales**: Puntúa y prioriza automáticamente los clientes potenciales entrantes
* **Limpieza de datos**: Estandariza los nombres de empresas y la información de contacto
* **Borradores de correo electrónico**: Genera correos de seguimiento basados en notas de reuniones
* **Enrutamiento de registros**: Asigna los registros al miembro adecuado del equipo según el contenido
## Relacionado
* [Descripción general de Workflows](/l/es/user-guide/workflows/overview) — conceptos básicos de automatización
* [Permisos de IA](/l/es/user-guide/ai/capabilities/permissions-access-control) — control de acceso para agentes de IA

View File

@@ -0,0 +1,37 @@
---
title: Chatbot de IA
description: Un asistente inteligente que te ayuda a interactuar con tus datos de CRM mediante lenguaje natural.
---
## Resumen
Haga preguntas en lenguaje natural y recupere el asistente y explique sus datos CRM para usted.
## Capacidades
| Función | Descripción |
| --------------------------------- | ------------------------------------------------------------------------------ |
| **Consultas en lenguaje natural** | Haz preguntas en inglés sencillo en lugar de crear filtros |
| **Acceso total a los datos** | Consulta registros, relaciones y métricas en todo tu espacio de trabajo |
| **Contexto de la página** | Haz referencia a "esta empresa" o "esta oportunidad" según tu vista actual |
| **Conversacional** | Las preguntas de seguimiento mantienen el contexto de las consultas anteriores |
## Interacciones de ejemplo
### Búsqueda de registros
* "Muéstrame todas las oportunidades de más de $50,000"
* "Encuentra contactos a los que no he enviado correos en 2 semanas"
* "Enumera las empresas del sector sanitario"
### Obtención de información
* "¿Cuál es el valor total de mi embudo?"
* "¿Cuántos negocios se cerraron el mes pasado?"
* "¿En qué etapa hay más oportunidades atascadas?"
### Uso del contexto de la página
* "Resume mis interacciones con esta persona" (en una página de contacto)
* "¿Qué oportunidades están vinculadas a esta empresa?" (en una página de empresa)
* "¿Cuándo se actualizó por última vez este negocio?" (en una página de oportunidad)

View File

@@ -0,0 +1,137 @@
---
title: Servidor MCP
description: Conecta asistentes de IA a tu espacio de trabajo de Twenty mediante el Model Context Protocol.
---
Twenty expone un servidor [MCP](https://modelcontextprotocol.io/) para que los asistentes de IA — Claude Desktop, Claude Code, Cursor, ChatGPT y otros — puedan leer y escribir tus datos de CRM mediante lenguaje natural.
Usa tu **URL del espacio de trabajo** (la URL que utilizas para acceder a Twenty) como el punto de acceso MCP. En Twenty Cloud, la URL de tu espacio de trabajo puede ser `https://{mycompany}.twenty.com` o un dominio personalizado. El servidor está disponible en:
| Entorno | Punto de acceso MCP |
| ------------------- | ------------------------------------------------------------------------------- |
| **Nube** | `https://{your-workspace-url}/mcp` (p. ej., `https://mycompany.twenty.com/mcp`) |
| **Autoalojamiento** | `https://{your-domain}/mcp` |
## Métodos de autenticación
Tienes dos formas de autenticar tu cliente MCP: **OAuth** (recomendado) o **API Key**.
### Opción A — OAuth (recomendado)
Con OAuth, tu cliente MCP abre una ventana del navegador para que inicies sesión. No se guardan secretos en archivos de configuración y los tokens se actualizan automáticamente.
<Note>
OAuth requiere un cliente MCP que sea compatible con la [especificación de autorización de MCP](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization). Claude Desktop, Claude Code, Cursor y ChatGPT lo admiten.
</Note>
Agrega esto a la configuración de tu cliente MCP, reemplazando `{your-workspace-url}` por el host de tu espacio de trabajo (p. ej., `mycompany.twenty.com`):
```json
{
"mcpServers": {
"twenty": {
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp"
}
}
}
```
Eso es todo: no se necesita clave de API. Cuando el cliente se conecte por primera vez, hará lo siguiente:
1. Descubrir los metadatos de OAuth de Twenty a través de `/.well-known/oauth-protected-resource` y `/.well-known/oauth-authorization-server`
2. Registrarse como cliente OAuth mediante registro dinámico de clientes (RFC 7591)
3. Abrir tu navegador para autorizar el acceso
4. Recibir tokens y conectarse al servidor MCP
Las conexiones posteriores reutilizan los tokens almacenados y los actualizan automáticamente.
### Opción B — API Key
Si tu cliente MCP no es compatible con OAuth o prefieres credenciales estáticas, pasa una clave de API en el encabezado `Authorization`:
```json
{
"mcpServers": {
"twenty": {
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
```
<Warning>
Tu clave de API concede acceso a los datos del espacio de trabajo. Manténla fuera del control de versiones y de dotfiles compartidos.
</Warning>
Para crear una clave de API, ve a **Settings → MCP & APIs → API → + Create key**. Consulta [APIs](/l/es/developers/extend/api#create-an-api-key) para más detalles.
## Inicio rápido
### 1. Copia la configuración
Ve a **Settings → MCP & APIs → MCP** en Twenty. Elige tu método de autenticación (OAuth o API Key), copia el fragmento JSON (ya usará la URL de tu espacio de trabajo) y pégalo en el archivo de configuración de tu cliente MCP.
| Cliente | Ubicación del archivo de configuración |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o `%APPDATA%\Claude\claude_desktop_config.json` (Windows) |
| **Claude Code** | `~/.claude.json` (usuario) o `.mcp.json` (proyecto) |
| **Cursor** | `.cursor/mcp.json` en tu proyecto, o `~/.cursor/mcp.json` de forma global |
| **ChatGPT** | Activa Developer Mode en **Settings → Apps & Connectors → Advanced settings**, luego usa **Create** en **Settings → Apps & Connectors** para añadir el servidor MCP |
### 2. Conectar
Reinicia tu cliente MCP (o recarga la configuración). Si usas OAuth, se te redirigirá a Twenty para autorizar el acceso. Si usas una clave de API, la conexión es inmediata.
### 3. Empieza a usarlo
Pídele a tu asistente de IA que interactúe con tu CRM:
* *"Muéstrame las 5 empresas creadas más recientemente"*
* *"Crea una nueva persona llamada Jane Doe en Acme Corp"*
* *"Encuentra todas las oportunidades abiertas con un valor superior a $10k"*
## Herramientas disponibles
Una vez conectado, el servidor MCP expone herramientas que reflejan la API de Twenty. El flujo de trabajo recomendado es:
1. **`learn_tools`** — obtener el esquema de entrada para herramientas específicas
2. **`execute_tool`** — ejecutar una herramienta
No necesitas recordar los nombres de las herramientas. Pregúntale a tu asistente de IA qué puede hacer y llamará a `learn_tools` automáticamente.
## Permisos
Las conexiones MCP heredan los permisos del usuario autenticado (OAuth) o del rol asignado a la clave de API. Para restringir lo que puede hacer el servidor MCP:
* **OAuth**: Se aplica el rol del espacio de trabajo del usuario.
* **API Key**: Asigna un rol a la clave de API en **Settings → Members → Roles**. Consulta [Permisos](/l/es/user-guide/permissions-access/capabilities/permissions).
## Configuración autohospedada
Para instancias autohospedadas, reemplaza `{your-workspace-url}` por la URL de tu servidor. Asegúrate de que `SERVER_URL` en tu entorno coincida con la URL pública de tu instancia de Twenty — se utiliza para generar los metadatos de descubrimiento de OAuth.
```bash
SERVER_URL=https://twenty.yourcompany.com
```
El punto de acceso MCP, los puntos de acceso de OAuth y los metadatos de descubrimiento se derivan de este valor.
## Solución de Problemas
**Errores "Unauthorized" o 401**
* OAuth: vuelve a autorizar limpiando los tokens almacenados en tu cliente MCP y reconectando.
* API Key: verifica que la clave sea válida y no haya caducado. Vuelve a generarla si es necesario.
**El flujo de OAuth no abre un navegador**
* Asegúrate de que tu cliente MCP sea compatible con MCP Authorization. Si no lo es, recurre al método de clave de API.
**Tiempo de espera de la conexión**
* Confirma que la URL del punto de acceso MCP sea accesible desde tu equipo. Para instancias autohospedadas, comprueba que el servidor esté en ejecución y que `SERVER_URL` esté configurado correctamente.

View File

@@ -0,0 +1,35 @@
---
title: Permisos y control de acceso
description: Controla a qué pueden acceder y qué pueden modificar los agentes de IA en tu espacio de trabajo.
---
## Resumen
Los agentes de IA respetan tu estructura de permisos existente. Esto es especialmente importante para los equipos que desean controlar exactamente a qué pueden acceder o qué pueden modificar los procesos de IA automatizados en su espacio de trabajo.
## Asignar un rol a un agente de IA
1. Ve a **Ajustes → Miembros → Roles**
2. Haz clic en el rol que deseas asignar
3. Abre la pestaña **Asignación**
4. En **Agentes de IA**, haz clic en **+ Asignar a agente de IA**
5. Selecciona el agente de IA de la lista
6. Confirma la asignación
## ¿Por qué asignar roles a los agentes de IA?
| Beneficio | Descripción |
| ----------------- | --------------------------------------------------------------- |
| **Seguridad** | Limita a qué datos pueden acceder o modificar los agentes de IA |
| **Cumplimiento** | Garantiza que la IA solo procese los datos que necesita |
| **Control** | Evita acciones no deseadas de las automatizaciones de IA |
| **Auditabilidad** | Haz un seguimiento de qué acciones realizó cada agente |
<Note>
Para los agentes de IA que se ejecutan dentro de flujos de trabajo, la asignación de roles garantiza que el agente no pueda acceder ni modificar datos fuera de su ámbito previsto—incluso si el flujo de trabajo tiene permisos más amplios.
</Note>
## Relacionado
* [Permisos](/l/es/user-guide/permissions-access/capabilities/permissions) — información detallada sobre la creación y gestión de roles
* [Agentes de IA](/l/es/user-guide/ai/capabilities/ai-agents) — capacidades de IA en flujos de trabajo

View File

@@ -0,0 +1,31 @@
---
title: Preguntas frecuentes sobre IA
description: Preguntas frecuentes sobre las funciones de IA en Twenty.
---
<AccordionGroup>
<Accordion title="¿Qué capacidades de IA están disponibles?">
Las dos capacidades principales de la IA son:
1. **Chatbot de IA**: Un asistente con conocimiento del contexto que puede acceder a tus datos de Twenty y ayudarte con consultas
2. **Agentes de IA en flujos de trabajo**: Automatización inteligente que puede procesar datos, tomar decisiones y ejecutar tareas dentro de tus flujos de trabajo
</Accordion>
<Accordion title="¿Tienen los agentes de IA acceso a todos mis datos?">
Los agentes de IA operan bajo el sistema de permisos. Puedes asignar roles específicos a los agentes de IA en **Configuración → Miembros → Roles**, lo que te da control total sobre a qué datos pueden acceder y qué acciones pueden realizar.
</Accordion>
<Accordion title="¿Cómo funcionan los créditos de IA?">
Las acciones de IA consumen créditos de flujos de trabajo según la complejidad de la tarea y el modelo de IA utilizado.
</Accordion>
<Accordion title="¿Puedo usar mis propios modelos de IA?">
En la nube, solo puedes usar modelos de IA proporcionados por Twenty. En tu instancia autohospedada, puedes usar tus propios modelos de IA después de obtener una licencia de Organización.
</Accordion>
<Accordion title="No veo un rol que asigné a un agente de IA, ¿dónde está?">
De forma predeterminada, la lista de roles se filtra para mostrar los roles asignables a los miembros del espacio de trabajo. Si un rol es asignable sólo a agentes de IA, usted necesita cambiar el filtro para incluir roles de agente de AI.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,58 @@
---
title: IA
description: Funciones impulsadas por IA en Twenty.
---
<Frame>
<img src="/images/user-guide/workflows/robot.png" alt="IA" />
</Frame>
## Funciones
Actualmente, Twenty ofrece:
### 1. Chatbot de IA
Un asistente conversacional que entiende tu contexto y tiene acceso a todos tus datos de Twenty.
**Capacidades clave:**
* **Acceso completo a los datos**: Consulta cualquier registro, relación o métrica en tu espacio de trabajo
* **Conocimiento del contexto de la página**: Haz referencia a "esta empresa" o "esta oportunidad" según dónde te encuentres en Twenty
* **Lenguaje natural**: Haz preguntas y obtén respuestas sin navegar por menús
**Ejemplos de indicaciones:**
* "¿Qué oportunidades cierran este mes?"
* "¿Qué negocios han estado en Negociación durante más de 30 días?"
* "Resume mis interacciones con esta persona"
### 2. Agentes de IA en flujos de trabajo
Amplía tus flujos de trabajo con acciones impulsadas por IA y agentes autónomos.
**Capacidades clave:**
* **Acciones de IA**: Usa la IA para enriquecer datos, clasificar registros, generar resúmenes y más
* **Agentes autónomos**: Permite que los agentes ejecuten tareas de varios pasos dentro de un flujo de trabajo
* **Indicaciones personalizadas**: Define exactamente cómo la IA debe procesar tus datos
**Casos de uso:**
* Clasifica automáticamente los leads entrantes
* Enriquece datos de la empresa a partir de fuentes públicas
* Genera borradores de correos de seguimiento basados en notas de reuniones
* Puntúa oportunidades según los patrones de interacción
## Permisos y control de acceso
Los agentes de IA se gestionan mediante el sistema de permisos existente:
1. Ve a **Ajustes → Miembros → Roles**
2. Configura a qué datos puede acceder cada agente de IA
3. Establece permisos de lectura y escritura por objeto
Esto garantiza que los agentes de IA respeten tus políticas de gobernanza de datos y solo accedan a lo que necesitan.
* Sigue nuestro [GitHub](https://github.com/twentyhq/twenty) para actualizaciones sobre el desarrollo
* Únete a nuestro [Discord](https://discord.gg/UfGNZJfAG6) para compartir comentarios y solicitudes de funciones

View File

@@ -0,0 +1,74 @@
---
title: Créditos
description: Un saldo sencillo que impulsa tus flujos de trabajo, agentes de IA y chat de IA, y que define cuánto vale un crédito, hasta dónde llega y cómo administrarlo.
---
## ¿Qué son los créditos?
Los créditos son un saldo único que impulsa todo lo que ejecutamos en tu nombre y que tiene un costo real: **automatizaciones de flujos de trabajo**, **agentes de IA** y el **chat de IA**. En lugar de lidiar con cuotas separadas para "ejecuciones de automatización" y "tokens de IA", tienes un único saldo sencillo que debes vigilar.
**1 crédito = $1 de uso.** Un crédito es simplemente un dólar de trabajo, por lo que tu saldo es fácil de entender: no hay unidades abstractas que convertir.
## ¿Hasta dónde llega un crédito?
El costo escala con el trabajo. La automatización diaria y los mensajes de IA rápidos cuestan una fracción diminuta de un crédito; las tareas grandes de agentes de IA con múltiples pasos cuestan más. A grandes rasgos, así se ve:
| Qué haces | Cuesta aproximadamente | Qué significa |
| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------- | ---------------------------------- |
| Ejecutar un paso estándar de flujo de trabajo (buscar, crear o actualizar registros) o disparar una función lógica de una aplicación | $0.0001 | **10.000 ejecuciones por crédito** |
| Llamar a una API externa o ejecutar un nodo de código | Una pequeña fracción de un crédito | Miles por crédito |
| Enviar un mensaje de chat de IA rápido o un paso de IA sencillo | Una fracción de un centavo | Cientos por crédito |
| Ejecutar una tarea grande de agente de IA (p. ej., "configurar 10 objetos del espacio de trabajo") | Puede llegar a **~$1 o más** | Unos pocos por crédito |
| Ejecutar una búsqueda web con IA | Un costo fijo por búsqueda | Cientos de búsquedas por crédito |
<Note>
Para la mayoría de los equipos, las automatizaciones estándar son prácticamente gratuitas: solo notarás una reducción apreciable en tu saldo cuando dependas de las funciones de IA o ejecutes nodos de código exigentes. Eso es intencional: los créditos incluidos están pensados para que puedas crear sin estar pendiente de un medidor.
</Note>
<Note>
No todas las aplicaciones cobran por sus ejecuciones. Grabadora de llamadas y Último Contacto reaccionan a todos los eventos de correo electrónico y calendario importados en su espacio de trabajo, por lo que su función lógica es gratuita. Aun así se te cobrará por el trabajo medido que realizan, como los minutos de llamadas grabadas.
</Note>
## Cómo se mide el uso de IA
Cuando una acción llama a un modelo de IA, medimos exactamente los tokens usados y los valoramos según **las tarifas publicadas por el proveedor del modelo**, luego convertimos ese monto en dólares directamente en créditos; de este modo, lo que gastas refleja el costo real del trabajo, no una tarifa interna con recargo. Un mensaje de chat corto cuesta una fracción de un centavo. Una gran tarea de agente — por ejemplo, configurar 10 objetos de espacio — hace muchas llamadas de modelo sobre un contexto creciente. para que pueda sumar hasta un dólar o más. Se te factura por lo que realmente usas, hasta el nivel de token.
El costo varía según el modelo: un modelo ligero es drásticamente más barato por mensaje que un modelo de razonamiento de gama alta. Puedes ver el desglose por acción —incluido qué modelo se usó— en **Configuración → Facturación**.
## Qué incluye
Cada suscripción incluye créditos, y la cantidad depende de tu **ciclo de facturación**, no de tu plan:
| Ciclo de facturación | Créditos incluidos | Uso equivalente |
| -------------------- | ------------------ | -------------------- |
| Mensual | 5 / mes | ~$5 de uso cada mes |
| Anual | 50 / año | ~$50 de uso cada año |
Estos créditos están diseñados para cubrir cómodamente la automatización diaria. Cinco créditos cubren decenas de miles de pasos de automatización estándar o cientos de mensajes de IA rápidos, aunque un puñado de grandes, las tareas de agentes de múltiples pasos pueden usarlas más rápido. Puedes recargar en cualquier momento (ver más abajo).
## Acumulación de créditos
Los créditos no utilizados se acumulan automáticamente para el siguiente período de facturación.
* **Cap**: Rollover se limita a la asignación completa de un período, por lo que nunca te llevarás más de lo que proporciona tu ciclo de facturación por período.
* **Visibilidad**: Cuando tengas créditos acumulados, aparecerán como una línea independiente de **Créditos acumulados** en **Configuración → Facturación**, junto con tu saldo de **Total disponible**.
## Monitoreo de uso
Lleva un control de tu saldo y de en qué se está utilizando:
1. Ir a **Configuración → Facturación**
2. Consulta tus **créditos restantes** y el **uso del período actual**
3. Profundiza en el desglose para ver qué flujos de trabajo y acciones de IA están consumiendo créditos y qué modelos usaron las acciones de IA
Revisar esto con regularidad facilita detectar pronto un flujo de trabajo muy pesado y decidir si optimizarlo o recargar créditos.
## ¿Necesitas más créditos?
Si te quedas sin créditos —o quieres un colchón antes de una gran campaña de automatización— puedes comprar paquetes de créditos adicionales en cualquier momento:
1. Ir a **Configuración → Facturación**
2. Haz clic en el botón **Incrementar**
3. Seleccione la cantidad que necesita y acepte los cambios
Los créditos adquiridos se agregan de inmediato a tu saldo disponible.

View File

@@ -0,0 +1,100 @@
---
title: Planes de precios
description: Obtén información sobre los planes de precios de Twenty y cómo cambiar entre ellos.
---
## Resumen
Twenty ofrece precios flexibles para adaptarse a equipos de todos los tamaños, tanto si prefieres alojamiento en la nube como autoalojamiento.
## Planes en la nube
### Pro (Nube)
Para equipos listos para escalar:
* Todas las funciones principales de CRM
* Sincronización de correo electrónico y calendario
* Flujos de trabajo y automatizaciones
* Soporte estándar
<Note>
Las funciones Premium (SSO, permisos a nivel de registro, datos de uso de IA y más) no están incluidas en el plan Pro.
</Note>
### Organización (Nube)
Para equipos más grandes con necesidades avanzadas:
* Todo lo de Pro
* **Funciones Premium**: integración con SSO, permisos a nivel de registro, datos de uso de IA y más
* Soporte prioritario
## Planes de autoalojamiento
### Gratis (Autoalojado)
Aloja Twenty en tu propia infraestructura sin costo:
* Incluye todas las funciones de Pro
* Soporte de la comunidad a través de Discord
* Control total sobre tus datos
### Organización (Autoalojado)
Para equipos que necesitan funciones premium mientras se autoalojan:
* Todas las funciones de Pro
* **Funciones Premium**: integración con SSO, permisos a nivel de registro, datos de uso de IA y más
* Soporte del equipo de Twenty
* No es obligatorio publicar el código personalizado como código abierto antes de distribuirlo
## Funciones premium
Las funciones premium solo están disponibles en los planes de Organización (Nube o Autoalojado):
* **Integración de SSO**: inicio de sesión único con tu proveedor de identidad
* **Permisos a nivel de fila**: control de acceso granular a nivel de registro
* **Datos de uso de IA**: Realice un seguimiento del consumo de IA en su espacio de trabajo
* **Registros de auditoría**: comprueba qué ha estado haciendo cada miembro del espacio de trabajo
* **Campañas de correo electrónico**: planifica qué correos electrónicos se deben enviar (disponible pronto)
* **Espacios de trabajo ilimitados**: Crea tantos espacios de trabajo como quieras (solo para instalaciones autoalojadas)
* **Código fuente privado**: No es obligatorio publicar los cambios en un repositorio público (solo para instalaciones autoalojadas)
## Cambiar de plan
### Actualizar a Organización
1. Ir a **Ajustes → Facturación → Planes**
2. Haz clic en **Cambiar a Organización**
3. Confirma tu actualización
### Reducir a Pro
1. Ir a **Ajustes → Facturación → Planes**
2. Haz clic en **Cambiar a Pro**
3. Confirma tu cambio a un plan inferior
### Cambiar a facturación anual
1. Ir a **Ajustes → Facturación**
2. Haz clic en **Cambiar a facturación anual**
3. Ahorra con la facturación anual
### Cambiar a facturación mensual
1. Ir a **Ajustes → Facturación**
2. Haz clic en **Cambiar a facturación mensual**
3. Ahorra con la facturación mensual
## Obtener una clave Enterprise para Organization (Self-Hosted)
Para usar el plan Organization (Self-Hosted), necesita obtener una clave Enterprise:
1. Vaya a **Configuración → Panel de Administración → Enterprise**
<img src="/images/user-guide/billing/enterprise-key.png" alt="Clave Enterprise" />
2. Haga clic en **Obtener clave Enterprise**
3. Cuando sea redirigido a Stripe, introduzca sus datos de pago y confirme
4. Cuando se muestre su clave Enterprise, péguela en la página de configuración de Enterprise y active la licencia de Organization

View File

@@ -0,0 +1,105 @@
---
title: Preguntas frecuentes sobre facturación
description: Preguntas frecuentes sobre los precios y la facturación de Twenty.
---
## Precios
<AccordionGroup>
<Accordion title="¿Puedo usar Twenty gratis mientras lo alojo por mi cuenta?">
Sí, puedes usar Twenty gratis mientras lo alojas por tu cuenta. Obtendrás acceso a todo lo incluido en el plan Pro (Cloud), excepto el apoyo de nuestro equipo central. El soporte está disponible a través de nuestra comunidad en Discord.
Si quieres alojar por tu cuenta y necesitas las funciones Premium (SSO, permisos a nivel de registro y más), puedes elegir la licencia de pago de Organization (Self-Hosted). Esto también incluye soporte del equipo de Twenty y elimina el requisito de publicar el código personalizado como código abierto antes de distribuirlo.
</Accordion>
<Accordion title="¿Cuáles son las funciones Premium?">
Las funciones Premium solo están disponibles en los planes Organization (nube o Self-Hosted):
* **Integración de SSO**: inicio de sesión único con tu proveedor de identidad
* **Permisos a nivel de registro**: control de acceso granular a nivel de registro
* **Datos de uso de IA**: Realice un seguimiento del consumo de IA en su espacio de trabajo
* **Registros de auditoría**: comprueba qué ha estado haciendo cada miembro del espacio de trabajo
* **Campañas de correo electrónico**: Planifica qué correos electrónicos se deben enviar (disponible pronto)
* **Espacios de trabajo ilimitados**: Crea tantos espacios de trabajo como quieras (solo para instalaciones autoalojadas)
* **Código fuente privado**: No es necesario publicar cambios en un repositorio disponible públicamente (sólo alojado)
</Accordion>
<Accordion title="¿Son los planes de la nube y de la organización autosuficiente lo mismo?">
Ofrecen las mismas funciones Premium. Sin embargo, una suscripción en la nube no puede usarse para implementaciones autoalojadas. La versión autoalojada requiere una clave Enterprise.
</Accordion>
<Accordion title="¿Ofrecen licencias gratuitas para usuarios de solo lectura?">
No ofrecemos asientos gratuitos. El precio es por usuario y cada usuario necesita una licencia para acceder a Twenty.
</Accordion>
<Accordion title="¿Dónde puedo cambiar mi suscripción al plan de Organización?">
Puedes hacerlo en `Configuración → Facturación → Planes`. Luego haz clic en `Cambiar a Organización`.
</Accordion>
<Accordion title="¿Dónde puedo cambiar mi suscripción al plan Pro?">
Puedes hacerlo en `Configuración → Facturación → Planes`. Luego haz clic en `Cambiar a Pro`.
</Accordion>
<Accordion title="¿Dónde puedo cambiar mi suscripción a anual?">
Puedes hacerlo en `Configuración → Facturación`. Luego haz clic en `Cambiar a Anual`.
</Accordion>
<Accordion title="¿Dónde puedo cambiar mi suscripción a mensual?">
Puedes hacerlo en `Configuración → Facturación`. Luego haz clic en `Cambiar a Mensual`.
</Accordion>
<Accordion title="¿Dónde puedo ver mi uso de créditos?">
Lo encontrarás en `Configuración → Facturación`.
</Accordion>
<Accordion title="¿Cuántos créditos de flujo de trabajo tenemos?">
Los créditos se basan en tu ciclo de facturación, no en tu plan:
* **Suscripciones mensuales**: 5 créditos por mes
* **Suscripciones anuales**: 50 créditos por año
</Accordion>
<Accordion title="¿Cómo funciona el consumo de créditos de flujo de trabajo?">
Cada acción de flujo de trabajo consume créditos según su complejidad:
* **Operaciones internas básicas** (como buscar, actualizar o crear registros) consumen muy pocos créditos
* Las **operaciones más complejas** como nodos de código y solicitudes a servicios externos consumen más créditos.
* Los prompts de IA también consumen más créditos según el uso
* Las **aplicaciones** también consumen más créditos de forma similar a los nodos de código
Los créditos se deducen en tiempo real cuando se ejecutan los flujos de trabajo o las apps. Puedes monitorear tu uso en **Configuración → Facturación** para seguir el consumo y los créditos restantes.
</Accordion>
<Accordion title="¿Puedo comprar más créditos de flujo de trabajo?">
Puedes comprar créditos adicionales en `Configuración → Facturación`.
</Accordion>
<Accordion title="¿Puedo comprar más créditos de flujo de trabajo solo por 1 mes?">
Sí, ve a `Ajustes → Facturación`, haz clic en el botón `Increase`, elige cuántos créditos quieres, y confirma. Se aplicarán durante el período de facturación actual. Luego haga clic en el botón 'Incrementar' de nuevo, cambie el valor de vuelta al original, y confirmar — el descenso se aplicará a partir del próximo período de facturación.
</Accordion>
</AccordionGroup>
## Facturación
<AccordionGroup>
<Accordion title="¿Dónde puedo gestionar los detalles de Facturación?">
Puedes hacerlo en `Configuración → Facturación`.
</Accordion>
<Accordion title="¿Dónde puedo actualizar mi método de pago?">
Puedes hacerlo en `Configuración → Facturación`. Luego haz clic en `Ver detalles de facturación`. Allí podrás agregar un nuevo método de pago.
</Accordion>
<Accordion title="¿Dónde puedo actualizar mi información de facturación?">
Puedes hacerlo en `Configuración → Facturación`. Luego haz clic en `Ver detalles de facturación`. Allí podrás editar la información de facturación.
</Accordion>
<Accordion title="¿Dónde puedo acceder a mis facturas?">
Puedes hacerlo en `Configuración → Facturación`. Luego haz clic en `Ver detalles de facturación`. Verás todas tus facturas al final de la pantalla.
</Accordion>
<Accordion title="¿Por qué mis plazas son diferentes del número de usuarios en mi espacio de trabajo?">
El recuento de plazas del espacio de trabajo se sincroniza con el sistema de pagos cada 6 horas; las facturas se ajustan en función de la diferencia.
</Accordion>
<Accordion title="¿Por qué he recibido una factura por un nuevo miembro del espacio de trabajo?">
Cuando un nuevo miembro del área de trabajo es añadido al área de trabajo, se envía una factura para cubrir la diferencia. Cuando se elimina un miembro del espacio de trabajo, el cambio se aplica en la siguiente factura mensual/anual estándar.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,39 @@
---
title: Facturación
description: Comprende los precios de Twenty y gestiona tu suscripción.
---
Twenty ofrece planes de precios flexibles para adaptarse a las necesidades de tu equipo. Gestiona tu suscripción, supervisa los créditos de flujos de trabajo y accede a las facturas, todo desde **Settings → Billing**.
## Qué incluye esta sección
<CardGroup cols={2}>
<Card title="Planes de precios" icon="tags" href="/l/es/user-guide/billing/capabilities/pricing-plans">
Obtén información sobre los planes de precios de Twenty y lo que incluyen.
</Card>
<Card title="Preguntas frecuentes" icon="circle-question" href="/l/es/user-guide/billing/how-tos/billing-faq">
Preguntas frecuentes sobre precios y facturación.
</Card>
</CardGroup>
## De un vistazo
| Plan | Características clave |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Gratis (autoalojado)** | Todas las funciones de Pro, soporte de la comunidad |
| **Pro (nube)** | Todo excepto las funciones Premium (SSO, permisos a nivel de fila y más), soporte estándar |
| **Organización (nube)** | Todo lo de Pro + las funciones Premium (SSO, permisos a nivel de fila y más), soporte prioritario |
| **Organización (autoalojado)** | Todo lo de Pro + las funciones Premium (SSO, permisos a nivel de fila y más), soporte del equipo de Twenty, no es necesario publicar tu código personalizado como código abierto antes de distribuirlo |
## Respuestas rápidas
**¿Dónde gestiono la facturación?**
Ve a **Settings → Billing** para ver tu plan, actualizar los métodos de pago y acceder a las facturas.
**¿Puedo usar Twenty gratis?**
¡Sí! Aloja Twenty por tu cuenta y obtén todas las funciones de Pro sin costo.
**¿Cómo hago la actualización?**
Ve a **Settings → Billing** y haz clic en **Cambiar a Organización** o **Cambiar a anual**.
Para más preguntas, consulta las [Preguntas frecuentes sobre facturación](/l/es/user-guide/billing/how-tos/billing-faq).

View File

@@ -0,0 +1,43 @@
---
title: Calendario
description: Comprender las funciones de integración del calendario en Twenty.
---
**Nota**: Para conectar su calendario y configurar los ajustes de sincronización, visite [Configuración de Correo Electrónico y Calendario](/l/es/user-guide/calendar-emails/overview).
## Cómo Funciona la Integración del Calendario
Twenty sincroniza automáticamente los eventos de su calendario y los vincula a los registros de CRM pertinentes, ofreciéndole una vista completa del historial de reuniones con contactos y empresas.
## Pestaña de Calendario
Junto a la pestaña de Correos Electrónicos en los registros, encontrará una pestaña `Calendario` que contiene el historial de reuniones programadas con el registro.
### Disponible para
* **Personas**: Vea todas las reuniones programadas con un contacto específico
* **Empresas**: Vea todas las reuniones relacionadas con una empresa y sus empleados
* **Oportunidades**: Acceda al historial de reuniones relacionadas con la empresa conectada a la oportunidad
### Visualización del Historial de Reuniones
1. **Navegue hacia un Registro**: Vaya a cualquier registro de Persona, Empresa u Oportunidad
2. **Seleccione la Pestaña de Calendario**: Haga clic en la pestaña `Calendario` junto a la pestaña de Correos Electrónicos
3. **Explore el Historial de Reuniones**: Vea todas las reuniones programadas y sus detalles
4. **Acceda al Contexto de la Reunión**: Vea los participantes, horarios e información relacionada
## Configuración de visibilidad
Los datos del calendario siguen la misma configuración de visibilidad que los correos electrónicos, lo que garantiza controles de privacidad coherentes en ambos canales de comunicación.
## Qué Se Sincroniza
* **Reuniones Externas**: Todas las reuniones con contactos fuera de su organización
* **Vinculación Automática**: Las reuniones se conectan a los registros existentes de Personas y Empresas según las direcciones de correo electrónico de los asistentes
* **Detalles de la Reunión**: Asunto, hora, duración y participantes
* **Actualizaciones**: Los nuevos eventos del calendario se sincronizan automáticamente
## Qué No Se Sincroniza
* **Reuniones Internas**: Las reuniones solo con colegas (mismo dominio) permanecen privadas
* **Eventos Privados**: Eventos marcados como privados en su calendario

View File

@@ -0,0 +1,102 @@
---
title: Buzón
description: Comprender las funciones de integración de correo electrónico en Twenty.
---
**Nota**: Para conectar sus cuentas de correo electrónico y configurar los ajustes de sincronización, visite [Configuración de Correo Electrónico y Calendario](/l/es/user-guide/calendar-emails/overview).
## Cómo Funciona la Integración del Correo Electrónico
Twenty vincula automáticamente los correos electrónicos de sus buzones conectados a los registros CRM relevantes, manteniendo todo el historial de comunicación en un solo lugar.
### Objetos donde se pueden encontrar correos electrónicos
Las conversaciones de correo electrónico aparecen en tres objetos principales:
* **Personas**: Vea todos los correos electrónicos intercambiados con un contacto específico
* **Empresas**: Vea todos los correos electrónicos relacionados con una empresa y sus empleados
* **Oportunidades**: Acceda a los hilos de correo electrónico relacionados con la empresa vinculada a la oportunidad. Aún no se muestran los hilos de correo electrónico de personas individuales en la oportunidad.
### Visualización de Conversaciones de Correo Electrónico
1. **Navegue hacia un Registro**: Vaya a cualquier registro de Persona, Empresa u Oportunidad
2. **Seleccione la Pestaña de Correos Electrónicos**: Haga clic en la pestaña `Correos Electrónicos` para ver los correos sincronizados
3. **Abra un Hilo de Correo Electrónico**: Haga clic en cualquier correo electrónico para abrir y leer la conversación completa
4. **Explorar el Historial**: Desplácese por el historial completo de correos electrónicos con ese contacto
<img src="/images/user-guide/emails/show-inbox.png" style={{width:'100%'}} />
## Lo Que Verás
### Vista de Hilo de Correo Electrónico
Cuando abres un hilo de correo electrónico, puedes:
* **Leer Conversaciones Completas**: Vea el intercambio completo de correos electrónicos
* **Ver Participantes**: Vea a todas las personas involucradas en el hilo de correo electrónico
* **Verificar Tiempos**: Sepa exactamente cuándo se envió cada correo electrónico
* **Acceder al Contexto**: Comprenda todo el historial de comunicación
### Visibilidad del Correo Electrónico
Dependiendo de las configuraciones de su buzón, puede ver:
* **Contenido Completo**: Texto completo del correo electrónico y detalles
* **Asunto + Metadata**: Línea de asunto, remitente, destinatario y hora
* **Solo Metadata**: Información básica sin contenido de correo electrónico
## Comportamiento de Sincronización de Correos Electrónicos
### Tasa de sincronización
Twenty importa correos electrónicos a aproximadamente **400 mensajes por minuto**. Actualmente, esta tasa está limitada por la limitación de tasa de la API de Gmail (y se aplica de manera similar a otros proveedores).
Como referencia:
* 1,000 correos electrónicos → ~2.5 minutos
* 10,000 correos electrónicos → ~25 minutos
* 50,000 correos electrónicos → ~2 horas
### Qué Se Sincroniza
* **Correos Externos**: Todos los correos con contactos fuera de su organización
* **Vinculación Automática**: Los correos se conectan a los registros de Personas y Empresas existentes
* **Direcciones Múltiples**: Los correos de cualquier dirección se vinculan al mismo registro de contacto
* **Actualizaciones**: Los nuevos correos aparecen inmediatamente
### Qué No Se Sincroniza
* **Correos electrónicos internos**: De forma predeterminada, los correos entre colegas (mismo dominio) permanecen privados (configurado en Ajustes → General → Seguridad)
* **Correos Grupales**: No se incluyen las listas de distribución y correos grupales
* **Carpetas Excluidas**: Carpetas que ha elegido no sincronizar (configuradas en Configuración → Cuentas → Correo Electrónico)
### Correos internos
Elija si los correos electrónicos internos se sincronizan en Twenty:
1. Vaya a **Ajustes → General → Seguridad**
2. Active o desactive **Sincronizar correos electrónicos internos**
### Sincronización selectiva de carpetas
Controle qué carpetas de correo electrónico se sincronizan con Twenty:
1. Ve a **Ajustes → Cuentas** y selecciona tu cuenta de correo conectada
2. Configura las carpetas en la sección Correo
3. Elija carpetas específicas para incluir o excluir (Bandeja de entrada, Enviados, Archivo, carpetas personalizadas)
## Resolución de Problemas de Sincronización de Correos Electrónicos
### Problemas Comunes de Sincronización
* **Retrasos en la sincronización**: Los correos aparecen inmediatamente, pero las importaciones iniciales tardan más
* **Correos Faltantes**: Compruebe si:
* Las carpetas están excluidas en la configuración del Carpeta de Mensajes
* La creación automática de contactos está desactivada (los correos necesitan registros existentes de Twenty)
* El correo es de colegas (mismo dominio) o listas grupales
* El buzón aún está completando la sincronización inicial
### Limitaciones del Correo Electrónico
* **Carpetas del Sistema**: Algunas carpetas de correo no están disponibles para sincronización
* **Alias**: Solo se pueden conectar buzones verdaderos (no alias de correo electrónico)

View File

@@ -0,0 +1,25 @@
---
title: ¿Puedo programar reuniones desde Twenty?
description: Información sobre la programación de reuniones directamente desde Twenty.
---
## Estado actual
La integración de calendario de Twenty está diseñada para **sincronizar y mostrar** tus eventos de calendario existentes.
## Programar reuniones mediante flujos de trabajo
Aunque no es posible programar reuniones manualmente, puede programarlas en Veinte usando flujos de trabajo.
1. Crear un nuevo flujo de trabajo
2. Selecciona cualquier desencadenador según tus necesidades
3. Agrega el nodo **Crear evento de calendario**
4. Configura todos los datos necesarios
5. Active el flujo de trabajo
## Lo que puedes hacer
* **Ver el historial de reuniones** en los registros de Personas, Empresas y Oportunidades
* **Ver las próximas reuniones** con contactos en tu CRM
* **Hacer seguimiento del contexto de las reuniones** junto con las comunicaciones por correo electrónico
* **Crear contactos automáticamente** a partir de los participantes de la reunión

View File

@@ -0,0 +1,53 @@
---
title: ¿Puedo enviar correos electrónicos desde Twenty?
description: Información sobre el envío de correos electrónicos directamente desde Twenty.
---
## Estado actual
La integración de correo electrónico de Twenty está diseñada para **sincronizar y mostrar** tu historial de correo electrónico, así como redactar y enviar correos electrónicos.
Cuando veas un hilo de correo en una página de registro y hagas clic en **Responder**, podrás redactar y enviar un correo electrónico directamente.
## Cómo enviar un mensaje desde Twenty
Prerrequisito: una cuenta de correo conectada con la capacidad de enviar correos electrónicos
1. Abre el menú de comandos con el acceso directo **Ctrl+K** o **Cmd+K**
2. Haga clic en la opción "Redactar email"
3. Elija destinatarios, agregue tema, cuerpo y archivos adjuntos a su correo electrónico
4. Haga clic en el botón "Enviar" para enviar el correo electrónico
## Lo que puedes hacer hoy
* **Ver el historial de correos electrónicos** en los registros de Personas, Empresas y Oportunidades
* **Leer hilos completos de correo electrónico** con contactos en tu CRM
* **Hacer seguimiento del contexto de la comunicación** junto a los eventos del calendario
* **Crear contactos automáticamente** a partir de interacciones por correo electrónico
* **Responder mediante redirección** — haz clic en Responder para ir a tu buzón
## Envío de correos electrónicos mediante Flujos de trabajo
**Puedes enviar correos electrónicos automáticamente usando flujos de trabajo**. Esto es útil para:
* Seguimientos automatizados
* Notificaciones a los contactos
* Comunicaciones activadas por cambios en los registros
Los correos electrónicos enviados mediante flujos de trabajo se envían a través de tu cuenta de correo conectada.
→ Más información sobre la [acción Enviar correo electrónico](/l/es/user-guide/workflows/capabilities/workflow-actions#send-email)
## Secuencias de correo electrónico y boletines
Para las secuencias de correo electrónico y los boletines, recomendamos usar flujos de trabajo para conectar Twenty con una herramienta dedicada de marketing por correo electrónico.
<Warning>
No se deben enviar correos masivos directamente desde tu buzón para proteger la reputación de tu dominio. Usa una herramienta dedicada para comunicaciones masivas.
</Warning>
→ Consulta [Cómo enviar correos electrónicos desde flujos de trabajo](/l/es/user-guide/workflows/capabilities/send-emails-from-workflows) para obtener instrucciones de configuración
## Planes futuros
La redacción nativa de correos electrónicos desde Twenty está en nuestra hoja de ruta. Únete a nuestras [discusiones en GitHub](https://github.com/twentyhq/twenty/discussions) para compartir tu caso de uso y ayudar a priorizar esta función.

View File

@@ -0,0 +1,35 @@
---
title: ¿Puedo hacer seguimiento de la actividad de correo electrónico en todos los objetos?
description: Comprender el seguimiento de la actividad de correo electrónico en distintos objetos.
---
## Objetos compatibles
La actividad de correo electrónico está disponible actualmente en **tres objetos estándar**:
| Objeto | Lo que verás |
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
| **Personas** | Todos los correos electrónicos intercambiados con ese contacto específico |
| **Empresas** | Todos los correos electrónicos con cualquier persona de esa empresa (según el dominio de correo electrónico) |
| **Oportunidades** | Correos electrónicos relacionados con la empresa vinculada a la oportunidad |
## ¿Por qué solo estos objetos?
Personas, Empresas y Oportunidades son los objetos de relación centrales en los que el contexto del correo electrónico aporta más valor. Los hilos de correo electrónico se vinculan automáticamente según:
* **Dirección de correo electrónico** → se asocia a registros de Personas
* **Dominio de correo electrónico** → se asocia a registros de Empresas
* **Relación con la empresa** → vinculada a Oportunidades
## Objetos personalizados
**El seguimiento de correo electrónico no está disponible en objetos personalizados** por el momento.
Si necesita contexto de correo electrónico en un objeto personalizado, considere:
* Usar un campo de relación para vincular su objeto personalizado con Personas o Empresas
* Ver el historial de correos electrónicos en el registro vinculado de Personas o Empresas
## Planes futuros
Se está considerando ampliar la visibilidad del correo electrónico a los objetos personalizados. Comparta su caso de uso en nuestras [discusiones en GitHub](https://github.com/twentyhq/twenty/discussions) para ayudar a priorizar esta función.

View File

@@ -0,0 +1,42 @@
---
title: Conectar varios buzones por usuario
description: Conecta varias cuentas de correo electrónico para un único usuario.
---
## Resumen
Twenty admite **un número ilimitado de cuentas de correo electrónico por usuario**. Esto es útil si gestionas varias bandejas de entrada, como:
* Correo laboral personal + bandeja de entrada compartida del equipo
* Varias direcciones de correo electrónico de cara al cliente
* Cuentas de correo electrónico diferentes para distintos roles
## Cómo añadir varios buzones
1. Ve a **Ajustes → Cuentas**
2. Haz clic en **Añadir cuenta**
3. Conecte una cuenta adicional de Google o Microsoft, o cualquier otro proveedor de correo que soporte protocolos IMAP/SMTP
4. Configura los ajustes de sincronización para este buzón
5. Repite para cada buzón que quieras conectar
## Gestión de varias cuentas
Cada buzón conectado tiene sus propios ajustes:
* **Visibilidad del correo**: Elige qué pueden ver los miembros del equipo
* **Creación automática de contactos**: Activar o desactivar por buzón
* **Selección de carpetas**: Elige qué carpetas sincronizar
## Cómo se muestran los correos electrónicos
Los correos de todos tus buzones conectados se sincronizan con Twenty y aparecen en:
* **Registros de personas**: Según la dirección de correo electrónico del contacto
* **Registros de empresas**: Según el dominio del correo electrónico
* **Oportunidades**: Según la empresa vinculada
<Note>Cada correo muestra desde qué buzón se envió o en qué buzón se recibió, para que puedas saber qué cuenta se usó en cada comunicación.</Note>
## Notas importantes
<Warning>Solo se pueden conectar buzones reales. Los alias de correo electrónico que reenvían a otro buzón no se pueden conectar por separado; se sincronizarán a través del buzón principal.</Warning>

View File

@@ -0,0 +1,53 @@
---
title: No veo correos electrónicos en los registros
description: Solución de problemas de correos faltantes en los registros.
---
## Causas comunes
### 1. La sincronización inicial aún está en curso
La sincronización de correo electrónico lleva tiempo, especialmente para buzones grandes. Twenty importa correos electrónicos a aproximadamente **400 mensajes por minuto** (limitado por el límite de tasa de la API de Gmail).
* **Sincronización del calendario**: se completa en minutos
* **Sincronización de correo electrónico**: depende del tamaño del buzón (p. ej., 10,000 correos electrónicos ≈ 25 minutos, 50,000 correos electrónicos ≈ 2 horas)
**Solución**: Espera a que la importación inicial finalice. Puedes estimar el tiempo en función del tamaño de tu buzón.
### 2. El contacto no existe en Twenty
Los correos electrónicos solo aparecen en los registros de Personas existentes. Si el contacto aún no se ha creado:
* Habilita la **creación automática de contactos** en la configuración de tu buzón
* O crea primero manualmente el registro de Persona
**Solución**: Ve a **Configuración → Cuentas**, selecciona tu buzón y habilita la creación automática de contactos.
### 3. Los correos internos están excluidos
Los correos entre colegas (mismo dominio de correo) nunca se sincronizan para mantener la privacidad.
**Solución**: Este es el comportamiento esperado. Solo se sincronizan los correos externos.
### 4. El correo proviene de un grupo o lista de distribución
Los correos de grupo y las listas de distribución están excluidos de la sincronización.
**Solución**: Este es el comportamiento esperado.
### 5. Carpeta no seleccionada para la sincronización
Si estás usando la función Message Folder, es posible que algunas carpetas estén excluidas.
**Solución**: Ve a **Configuración → Cuentas**, selecciona tu buzón y revisa la configuración de sincronización de carpetas.
### 6. Dirección de correo incorrecta en el registro
Es posible que el registro de Persona tenga una dirección de correo diferente a la usada en el correo.
**Solución**: Agrega la dirección de correo correcta al registro de Persona.
## ¿Sigue sin funcionar?
1. Intenta desconectar y volver a conectar tu buzón
2. Contacta al soporte si los problemas persisten

View File

@@ -0,0 +1,58 @@
---
title: Limitar los correos electrónicos importados
description: Controla qué correos electrónicos se importan en Twenty.
---
## Resumen
De forma predeterminada, Twenty sincroniza todos los correos electrónicos externos de tu buzón conectado. Puedes limitar lo que se importa usando la **selección de carpetas** y los **ajustes de visibilidad**.
## Método 1: Selección de carpetas (Recomendado)
Controle qué carpetas de correo electrónico se sincronizan con Twenty:
1. Ir a **Ajustes → Cuentas**
2. Selecciona tu cuenta de correo conectada
3. Elige qué carpetas sincronizar:
| Carpeta | Descripción |
| --------------------------- | ---------------------------------------- |
| **Bandeja de entrada** | Correos entrantes principales |
| **Enviados** | Correos salientes que has enviado |
| **Archivo** | Mensajes archivados |
| **Carpetas personalizadas** | Cualquier carpeta específica que quieras |
4. Excluye las carpetas que no quieras sincronizar (Spam, Papelera, carpetas personales)
<Note>Esto te da un control preciso sobre qué correos aparecen en tu CRM sin sincronizar todo.</Note>
## Método 2: Ajustes de creación automática de contactos
Controla cuándo se crean contactos a partir de correos:
1. Ve a **Ajustes → Cuentas**
2. Selecciona tu buzón conectado
3. Elige una opción:
* **Desactivado**: No se crean contactos, pero los correos siguen sincronizándose con los contactos existentes
* **Enviados y recibidos**: Crea contactos a partir de todos los correos externos
* **Solo enviados**: Crea contactos únicamente a partir de los correos que envías
## Correos electrónicos internos
Los mensajes entre colegas (mismo dominio) se pueden sincronizar en Twenty:
1. Vaya a **Ajustes → General → Seguridad**
2. Active o desactive **Sincronizar correos electrónicos internos**
<Note>De forma predeterminada, esta opción está desactivada.</Note>
## Qué se excluye siempre
Estos correos nunca se sincronizan, independientemente de los ajustes:
* **Correos grupales**: Listas de distribución y mensajes de grupo
* **Spam/Papelera**: Las carpetas del sistema generalmente se excluyen
## Nota importante
<Note>Todavía no proporcionamos una dirección de correo electrónico de CC para la sincronización selectiva. Usa la función de selección de carpetas anterior para lograr el mismo nivel de control.</Note>

View File

@@ -0,0 +1,144 @@
---
title: Calendario y correos electrónicos
description: Conecta tus cuentas de correo electrónico y calendario a Twenty.
---
## Opciones de conexión
### Cuenta de Google (Gmail y Calendario de Google)
1. Ve a **Ajustes → Cuentas**
2. Haz clic en **Añadir cuenta**
3. Seleccionar **Continuar con Google**
4. Autorizar a Twenty para acceder a tu Gmail y Calendario de Google
5. Configura los ajustes de sincronización del correo electrónico (visibilidad, creación automática) → haz clic en **Siguiente**
6. Configura los ajustes de sincronización del calendario (visibilidad, creación automática) → haz clic en **Añadir cuenta**
7. Tus correos y eventos del calendario comenzarán a sincronizarse automáticamente
### Cuenta de Microsoft (Outlook y Calendario de Microsoft)
1. Ve a **Ajustes → Cuentas**
2. Haz clic en **Añadir cuenta**
3. Seleccionar **Continuar con Microsoft**
4. Autorizar a Twenty para acceder a tu Outlook y Calendario de Microsoft
5. Configura los ajustes de sincronización del correo electrónico (visibilidad, creación automática) → haz clic en **Siguiente**
6. Configura los ajustes de sincronización del calendario (visibilidad, creación automática) → haz clic en **Añadir cuenta**
7. Tus correos y eventos del calendario comenzarán a sincronizarse automáticamente
### Configuración de IMAP/SMTP/CalDAV (Otros proveedores)
Para otros proveedores de correo y calendario:
1. Ve a **Ajustes → Cuentas**
2. Configure los ajustes de IMAP para sincronizar el correo entrante y los ajustes de SMTP para enviar correo
3. Configurar los ajustes CalDAV para el calendario
4. Probar la conexión
<Note>
**Autoalojamiento en una red aislada (air-gapped) o interna**: De forma predeterminada, Twenty rechaza las conexiones salientes a direcciones IP privadas/internas (protección SSRF). Si su servidor de correo o calendario se ejecuta en una IP local/privada (por ejemplo, un servidor local en una LAN), las conexiones hacia él se bloquearán. Para permitirlas, configure la siguiente variable de entorno en el servidor:
```
OUTBOUND_HTTP_SAFE_MODE_ENABLED=false
```
Esto desactiva el modo seguro para **todas** las solicitudes salientes (acciones de flujo de trabajo HTTP, webhooks y conexiones IMAP/SMTP/CalDAV), así que solo configúrelo en redes aisladas y de confianza donde la protección SSRF no sea necesaria.
</Note>
### Múltiples Buzones
* **Cuentas Ilimitadas**: Conecta múltiples cuentas de correo por usuario
* **Gestión de Cuentas**: Cambiar entre diferentes buzones
* **Ajustes de Sincronización**: Configura diferentes ajustes por buzón
<Warning>
Solo se pueden conectar verdaderos buzones (por ejemplo, soporte@dominio.com con su propia bandeja de entrada). Los alias de correo electrónico que reenvían a otro buzón no se pueden conectar a Twenty.
</Warning>
## Configuración de Correo
### Visibilidad del Mensaje
Elige diferentes niveles de visibilidad para tus correos:
* **Solo Metadatos**: Comparte solo información básica (remitente, destinatario, fecha, hora)
* **Asunto y Metadatos**: Comparte la línea de asunto junto con los metadatos
* **Todo el Contenido del Correo**: Comparte todo el contenido del correo incluyendo adjuntos
### Creación Automática de Contactos
* **Desactivado**: No se crean contactos automáticamente
* **Para mensajes enviados y recibidos**: Crear contactos para todas las interacciones externas de correo electrónico
* **Solo para mensajes enviados**: Crea contactos solo para los correos que envías
* **Nota**: De forma predeterminada, los correos internos (cuando todos los participantes comparten su dominio) no se sincronizan para proteger la privacidad
<Note>Cuando está habilitado, los contactos se vinculan automáticamente a sus registros de Empresa en función de su dominio de correo electrónico. Si la Empresa aún no existe, Twenty la crea para ti.</Note>
<Note>
**Sincronización de correos internos**: El comportamiento de "correos internos no sincronizados" es el predeterminado, pero se puede desactivar. El interruptor se encuentra en la configuración avanzada:
1. Abra **Ajustes** y active el interruptor **Avanzado** en la parte inferior de la página de configuración
2. Vaya a **General → Seguridad**
3. Active el interruptor **Sincronizar correos internos** para incluir los correos en los que todos los participantes comparten el mismo dominio
Este es un ajuste a nivel de espacio de trabajo (útil para universidades u organizaciones con dominio compartido).
</Note>
### Controla qué correos se sincronizan con la selección de carpetas de mensajes
Controle qué carpetas de correo electrónico se sincronizan con Twenty:
1. Ve a **Ajustes → Cuentas** y selecciona tu cuenta de correo conectada
2. Elige qué carpetas sincronizar:
* **Bandeja de Entrada**: Correos entrantes principales
* **Enviados**: Correos salientes que has enviado
* **Carpetas Personalizadas**: Cualquier carpeta específica que desees incluir
* **Excluir Carpetas**: Omitir carpetas como Spam, Papelera o carpetas personales
Esto te da un control preciso sobre qué correos aparecen en tu CRM sin sincronizar todo.
**Qué se Sincroniza:**
* **Correos Externos**: Todos los correos con contactos externos de carpetas seleccionadas
* **Correos internos**: No se sincronizan de forma predeterminada (los correos del mismo dominio permanecen privados). Active el interruptor **Avanzado** en la parte inferior de **Ajustes** y, luego, active **Sincronizar correos internos** en **General → Seguridad** para incluirlos en todo el espacio de trabajo.
* **Adjuntos**: Se incluyen en la actualización del H1 2026
**Nota**: No proporcionamos una dirección de correo CC para la sincronización selectiva. En su lugar, usa la función de carpeta de mensajes para lograr el mismo nivel de control sobre qué correos sincronizar con Twenty.
## Configuración del Calendario
### Visibilidad del Evento
Elige qué será visible para otros usuarios en tu espacio de trabajo:
* **Todo**: Los detalles de todo el evento serán compartidos con tu equipo
* **Metadata**: Sólo la fecha y los participantes serán compartidos con tu equipo
### Creación Automática de Contactos para Reuniones
* **Sí**: Crea automáticamente contactos para participantes de reuniones que no están en tu CRM
* **No**: Solo vincule reuniones a contactos existentes
<Note>Cuando está habilitado, los contactos se vinculan automáticamente a sus registros de Empresa en función de su dominio de correo electrónico. Si la Empresa aún no existe, Twenty la crea para ti.</Note>
### Controla qué eventos se sincronizan
* **Importación de Reuniones**: Importa automáticamente los eventos del calendario
* **Enlace de Contactos**: Vincula las reuniones a los registros de Personas y Empresas
**Qué se Sincroniza:**
* **Reuniones**: Eventos de calendario con participantes externos
* **Enlace de Contactos**: Eventos vinculados automáticamente a los registros del CRM
* **Eventos de Equipos**: Visibilidad compartida del calendario
## Frecuencia de Sincronización
**Actualizaciones cada 5 minutos**: Tanto el correo como el calendario se sincronizan automáticamente cada 5 minutos después de la importación inicial.
<Note>
**Tiempo de la sincronización inicial**: La sincronización del calendario se completa rápidamente (normalmente en unos minutos), mientras que la sincronización del correo electrónico tarda más en el caso de buzones grandes. Twenty importa correos electrónicos a aproximadamente **400 mensajes por minuto** (limitado por el límite de tasa de la API de Gmail), por lo que un buzón con 10 000 correos electrónicos tarda unos 25 minutos. No te preocupes si ves que los contactos de eventos del calendario aparecen antes que tus contactos de correo electrónico; es un comportamiento normal.
</Note>
## Próximos Pasos
* [Capacidades del buzón](/l/es/user-guide/calendar-emails/capabilities/mailbox)
* [Solucionar problemas de correos electrónicos que faltan](/l/es/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)

View File

@@ -0,0 +1,275 @@
---
title: Configuración del gráfico
description: Configura tus gráficos para mostrar los datos exactamente como los necesitas.
---
import { ChartIcon } from '/snippets/chart-icon.mdx';
## Acceder a la configuración del gráfico
1. Haz clic en el botón **Edit** en la esquina superior derecha de tu panel
<img src="/images/user-guide/dashboard/dashboard-edit.png" alt="Modo de edición" />
2. El panel entra en modo de edición
3. Haz clic en cualquier widget para seleccionarlo
4. El panel de configuración se abre a la derecha
La configuración está organizada en secciones:
* **Datos**: qué datos obtener y cómo filtrarlos
* **Eje X**: cómo agrupar y ordenar categorías (gráficos de barras/líneas)
* **Eje Y**: qué medir y cómo mostrarlo (gráficos de barras/líneas)
* **Estilo**: colores, etiquetas y opciones visuales
<Note>
Algunas configuraciones solo aparecen cuando se configuran otras. Por ejemplo, **Granularidad de fecha** solo aparece cuando seleccionas un campo de fecha.
</Note>
---
## Configuración de datos
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="database" />Origen </span>
Elige de qué objeto extraer datos.
1. Haz clic en **Source**
2. Selecciona un objeto (Oportunidades, Personas, Empresas, etc.)
Todos tus objetos estándar y personalizados están disponibles. Cambiar el origen restablece otras configuraciones, ya que las opciones de campo dependen del objeto seleccionado.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-source.png" alt="Fuente" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="filter" />Filtro </span>
Limita qué registros se incluyen en el gráfico.
1. Haz clic en **Filtrar**
2. Se abre el generador de filtros
3. Haz clic en **+ Add filter**
4. Selecciona un campo, una condición y un valor
5. Agrega más filtros según sea necesario
Los filtros funcionan igual que en las vistas de tabla. Úsalos para enfocarte en segmentos específicos de tus datos.
**Ejemplo**: filtra oportunidades donde Stage sea "Won" para mostrar solo los acuerdos cerrados.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-filters.png" alt="Filtro" />
<Tip>
Para campos de fecha, prueba **Is relative** para crear filtros dinámicos como "Past 7 days" o "This month" que se actualizan automáticamente.
</Tip>
<Tip>
Se admiten filtros avanzados—agrega varias reglas de filtro y combínalas con lógica **And** u **Or**.
</Tip>
---
## Configuración del eje X
Estas configuraciones controlan el eje horizontal de los gráficos de barras y líneas—normalmente cómo se agrupan tus datos en categorías.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="axis-x" />Datos en pantalla </span>
Selecciona el campo por el que agrupar tus datos. Esto determina las categorías que se muestran en el eje X.
**Ejemplo**: selecciona "Stage" para ver los datos agrupados por etapa del pipeline, o "Created date" para ver los datos a lo largo del tiempo.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-x-data-on-display.png" alt="Datos en pantalla" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="calendar" />Granularidad de fecha </span>
Al agrupar por un campo de fecha, elige el período de tiempo para agrupar.
| Opción | Agrupa los datos por | Salida de ejemplo |
| --------------------- | --------------------------- | ----------------------------------------------- |
| **Día** | Cada día del calendario | 1 ene, 2 ene, 3 ene... |
| **Semana** | Semanas del calendario | Semana 1, Semana 2, Semana 3... |
| **Mes** | Meses del calendario | enero, febrero, marzo... |
| **Trimestre** | Trimestres fiscales | Q1, Q2, Q3, Q4 |
| **Año** | Años del calendario | 2023, 2024, 2025 |
| **Día de la semana** | Día de la semana (agregado) | lunes, martes... (todos los lunes combinados) |
| **Mes del año** | Mes (agregado) | enero, febrero... (todos los eneros combinados) |
| **Trimestre del año** | Trimestre (agregado) | Q1, Q2, Q3, Q4 (todos los Q1 combinados) |
Las opciones "de semana/año" agregan a lo largo de todo el tiempo. Usa **Día de la semana** para ver qué día suele obtener más acuerdos. Usa **Mes** para ver tendencias mes a mes.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="arrows-sort" />Ordenar por </span>
Controla el orden de las categorías en el eje X.
* **Posición** – usa el orden definido en la configuración de tu campo Select
* **Alfabético** – de la A a la Z (o cronológico para fechas)
* **Por valor** – ordenado por la métrica (el mayor o el menor primero)
* **Manual** – arrastra para definir tu propio orden
<img src="/images/user-guide/dashboard/dashboard-chart-settings-x-sort.png" alt="Ordenar por" />
**Consejo**: para las etapas del pipeline, usa **Posición** para mostrar las etapas en el orden de tu proceso de ventas (Lead → Qualified → Proposal → Won).
<Note>
Las opciones mostradas dependen de tu tipo de campo. Los campos Select tienen todas las opciones; los campos de fecha y texto muestran menos.
</Note>
<Tip>
Con el ordenamiento **Manual**, arrastra categorías para crear un orden personalizado—perfecto para destacar segmentos específicos o contar una historia con tus datos.
</Tip>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="eye-off" />Omitir valores cero </span>
Oculta categorías que tienen cero o no tienen datos.
* **Activado**: las categorías sin registros se ocultan
* **Desactivado**: se muestran todas las categorías, incluso si están vacías
Úsalo para depurar gráficos con datos escasos.
---
## Configuración del eje Y
Estas configuraciones controlan qué estás midiendo y cómo se muestra.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="axis-y" />Datos en pantalla </span>
Selecciona el campo y la operación para calcular tu métrica.
* **Recuentos** – Contar todo, Contar vacíos, Contar no vacíos, Contar valores únicos
* **Matemáticas** – Suma, Promedio, Mín, Máx (campos numéricos)
* **Porcentajes** – Porcentaje de vacíos, Porcentaje de no vacíos
Los campos booleanos agregan Contar verdadero/falso. Los gráficos agregados con campos de fecha muestran el más antiguo/el más reciente.
**Ejemplo**: selecciona "Amount" con Suma para ver el valor total de acuerdos por categoría, o Contar todo para ver el número de acuerdos.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-data-on-display.png" alt="Datos en pantalla" />
<Note>
Las opciones mostradas dependen de tu campo y del tipo de gráfico. Si no ves una operación esperada, verifica tu tipo de campo.
</Note>
### Proporción
Para campos Select, Multi-select o Boolean, puedes calcular el porcentaje de un valor específico.
1. Selecciona un campo Select, Multi-select o Boolean
2. Activa **Ratio**
3. Elige la opción a medir
**Ejemplo**: muestra los acuerdos "Won" como porcentaje del total de oportunidades. Si tienes 10 Won de un total de 50, el gráfico muestra 20%.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="filters" />Agrupar por </span>
Agrega una segunda dimensión para crear múltiples series (múltiples barras o líneas).
1. Configura primero tu campo del eje X
2. Haz clic en **Group by**
3. Selecciona un segundo campo
**Ejemplo**: agrupa acuerdos por Stage (eje X) Y por Owner (Group by) para ver, lado a lado, el desglose del pipeline de cada persona.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-group-by.png" alt="Agrupar por" />
Cuando Group by está configurado, verás varios colores en tu gráfico y aparece una leyenda.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="calendar" />Granularidad de fecha </span>
Cuando Group by es un campo de fecha, elige el período de tiempo (las mismas opciones que el eje X).
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="arrows-sort" />Ordenar por </span>
Cuando **Group by** está configurado, controla el orden de las series agrupadas (p. ej., qué barra de propietario aparece primero dentro de cada categoría).
Las mismas opciones que el orden del eje X—Posición, Alfabético y Manual—excepto que **el orden basado en valores no está disponible** para el agrupamiento secundario.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="chart-bar-popular" />Acumulado </span>
Muestra totales acumulados en lugar de valores individuales.
* **Desactivado**: cada barra/punto muestra su propio valor
* **Activado**: cada barra/punto muestra la suma de todos los valores anteriores más el suyo
**Ejemplo**: enero = 10, febrero = 15
* Acumulado desactivado: muestra 10 y 15
* Acumulado activado: muestra 10 y 25 (10 + 15)
Usa el acumulado para hacer seguimiento del progreso hacia un objetivo a lo largo del tiempo.
<img src="/images/user-guide/dashboard/dashboard-chart-settings-y-cumulative.png" alt="Acumulado" />
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="math-min" />Rango mínimo / <ChartIcon icon="math-max" />Rango máximo </span>
Establece valores mínimos y máximos fijos para el eje Y.
* Déjalo en blanco para el escalado automático
* Ingresa un número para fijar el límite
**Cuándo usarlo:**
* Establece Min en 0 para comparaciones visuales precisas
* Establece ambos para escalas consistentes en varios gráficos
* Enfócate en un rango de valores específico configurando ambos
---
## Configuración de estilo
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="color-swatch" />Colores </span>
Define la paleta de colores de tu gráfico. Elige entre una variedad de paletas de colores.
<Note>
Al agrupar por un campo Select, el gráfico usa automáticamente los colores definidos para cada opción en la configuración de tu campo.
</Note>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="gizmo" />Nombre del eje </span>
Elige qué etiquetas de eje mostrar: **Ninguna**, **Eje X**, **Eje Y** o **Ambos** (solo gráficos de barras y líneas).
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="stack-2" />Barras apiladas / Líneas apiladas </span>
Cuando Group by está configurado, elige cómo se muestran las múltiples series.
* **Desactivado (Agrupadas)**: las series aparecen una al lado de la otra. Úsalo al comparar valores exactos entre grupos.
* **Activado (Apiladas)**: las series se apilan una encima de otra. Úsalo al mostrar la composición—cómo las partes conforman un todo.
**Ejemplo**: acuerdos por etapa, agrupados por propietario
* Agrupadas: ve los números exactos de cada propietario uno al lado del otro
* Apiladas: ve los acuerdos totales por etapa, con la contribución de cada propietario apilada
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="badge-2k" />Etiquetas de datos </span>
Muestra valores directamente en los elementos del gráfico (barras, puntos, porciones).
* **Activado**: los valores aparecen en el gráfico
* **Desactivado**: no se muestran valores (apariencia más limpia)
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}> <ChartIcon icon="text-caption" />Leyenda </span>
Muestra u oculta la leyenda (solo aparece cuando Group by está configurado).
* **Activado**: la leyenda muestra qué representa cada color
* **Desactivado**: no se muestra la leyenda
<Tip>
**Pasa el cursor** sobre un elemento de la leyenda para resaltar ese grupo. **Haz clic** para ocultarlo temporalmente del gráfico.
</Tip>
---
## Notas específicas del gráfico
### Gráficos de pastel
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="chart-pie" size={16} /></span> **Cada porción representa** – define cómo se agrupan las porciones
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="eye-off" size={16} /></span> **Ocultar categoría vacía** – eliminar porciones con valor cero
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="number-123" size={16} /></span> **Mostrar valor en el centro** – mostrar el valor agregado (suma, promedio, recuento, etc.)
### Gráficos agregados
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="caret-left" size={16} /></span> **Prefijo** – agrega texto antes del número (p. ej., `$`)
* <span style={{ display: 'inline-flex', verticalAlign: 'middle' }}><ChartIcon icon="caret-right" size={16} /></span> **Sufijo** – agrega texto después del número (p. ej., `%`)

View File

@@ -0,0 +1,92 @@
---
title: Tableros
description: Crea y organiza tableros con pestañas para visualizar tus datos de CRM.
---
## Resumen
Los tableros en Twenty se organizan en una jerarquía: **Tableros → Pestañas → Widgets**. Cada tablero puede contener varias pestañas, y cada pestaña contiene widgets (gráficos, números, iFrames).
## Crear un tablero
1. Ve a **Dashboards** en la navegación
2. Haz clic en **+ New Record**
<img src="/images/user-guide/dashboard/dashboard-create-new.png" alt="Crear un nuevo tablero" />
3. Asigna un nombre a tu tablero
4. Empieza a añadir pestañas y widgets
## Trabajar con pestañas
Las pestañas te ayudan a organizar tu tablero en secciones lógicas.
### Crear pestañas
1. En modo edición, haga clic en **+** en la barra de pestañas, y un panel lateral se abrirá a la derecha
2. Asigna un nombre a tu pestaña (p. ej., "Resumen del pipeline", "Rendimiento del equipo")
3. Añade widgets a la pestaña
### Reordenar pestañas
1. En modo de edición, haz clic y mantén presionada la pestaña que quieres mover
2. Arrastra y suelta hasta la nueva posición
3. También puede hacer clic en la pestaña y utilizar el menú de comandos para mover la pestaña a la izquierda o derecha
### Eliminar pestañas
1. En modo de edición, haz clic en la pestaña que deseas eliminar
2. Haz clic en el botón **Eliminar** en el menú de comandos
### Duplicar pestañas
1. Haz clic en la pestaña que deseas duplicar
2. Haz clic en el botón **Duplicate** en el panel lateral
<img src="/images/user-guide/dashboard/dashboard-tabs.png" alt="Pestaña del tablero" />
## Diseño del tablero
### Organizar widgets
* Arrastra y suelta para colocar
* Cambia el tamaño para destacar
* Agrupa los gráficos relacionados
### Duplicar un tablero
1. Selecciona el tablero que deseas duplicar
2. Abre la barra de comandos con **Cmd + K** (o **Ctrl + K** en Windows)
3. Selecciona **Duplicate dashboard**
<img src="/images/user-guide/dashboard/dashboard-duplicate.png" alt="Duplicar un tablero" />
### Mejores prácticas
* **Flujo lógico**: organiza de la vista general al detalle
* **Jerarquía visual**: gráficos más grandes para las métricas clave
* **Estilo coherente**: usa colores y tipografías consistentes
## Visibilidad y acceso
### Visibilidad del tablero
Los tableros son visibles para todos los que tienen acceso a tu espacio de trabajo de Twenty. Por el momento no hay opción de tablero privado.
### Favoritos
Puedes añadir tableros a tus favoritos para un acceso rápido. Esta es una configuración personal—tus favoritos no son visibles para otros usuarios.
Para añadir un tablero a favoritos, abre el tablero y haz clic en el icono de estrella.
### Comportamiento de la zona horaria
Actualmente, los tableros muestran los datos según la zona horaria del usuario que los visualiza. Esto significa que el mismo tablero puede mostrar métricas diferentes para los miembros del equipo en distintas regiones (p. ej., APAC vs. US).
<Note>
**Próximamente**: añadiremos la capacidad de establecer una zona horaria específica para un tablero, de modo que todos los usuarios vean datos coherentes independientemente de su ubicación.
</Note>
<Note>
**Próximamente**: los filtros a nivel de tablero te permitirán aplicar filtros en todos los widgets a la vez, lo que hará más rápida la exploración de tus datos.
</Note>

View File

@@ -0,0 +1,169 @@
---
title: Widgets
description: Explora los tipos de widgets y las opciones de visualización en Twenty.
---
import { ChartIcon } from '/snippets/chart-icon.mdx';
## Widgets disponibles
Twenty ofrece varios tipos de widgets para visualizar tus datos de CRM.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-bar-popular" />Gráficos de barras</span>
Muestra los datos como barras horizontales o verticales.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-bar-chart.png" alt="Gráfico de barras" />
</Frame>
**Ideal para:**
* Comparar valores entre categorías
* Mostrar clasificaciones
* Hacer seguimiento de métricas por período de tiempo
**Ejemplos de uso:**
* Oportunidades por etapa
* Ingresos por representante de ventas
* Contactos agregados por mes
<Note>
**Límites de visualización**: Los gráficos de barras pueden mostrar un máximo de 100 barras y 50 grupos por barra cuando se usa Agrupar por. Si ves la advertencia "Datos no mostrados: máximo de X barras por gráfico", agrega filtros para acotar tus datos o cambia la agrupación (p. ej., agrupar por semana en lugar de por días).
</Note>
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-pie" />Gráficos de pastel</span>
Muestra las proporciones de un todo.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-pie-chart.png" alt="Gráfico de pastel" />
</Frame>
**Ideal para:**
* Mostrar composición o distribución
* Comparar las partes con el todo
* Resaltar los segmentos principales
**Ejemplos de uso:**
* Distribución de oportunidades por origen
* Desglose de contactos por sector
* Composición del embudo por propietario
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="chart-line" />Gráficos de líneas</span>
Muestra las tendencias a lo largo del tiempo.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-line-chart.png" alt="Gráfico de líneas" />
</Frame>
**Ideal para:**
* Hacer seguimiento de los cambios a lo largo del tiempo
* Identificar tendencias
* Comparar múltiples métricas
**Ejemplos de uso:**
* Tendencia mensual del número de oportunidades
* Crecimiento de ingresos por trimestres
* Niveles de actividad a lo largo del tiempo
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="sum" />Gráficos agregados</span>
Muestra valores clave individuales de forma destacada.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-aggregate-chart.png" alt="Gráfico agregado" />
</Frame>
**Ideal para:**
* Resaltar los KPI
* Mostrar totales o promedios
* Comprobaciones rápidas de estado
**Ejemplos de uso:**
* Valor total del embudo
* Número de oportunidades abiertas
* Tasa de conversión
**Opciones avanzadas:**
* **Proporción**: Para campos de tipo Select, calcula proporciones entre valores. Ve a **Datos en pantalla** → selecciona tu campo → activa la opción **Proporción**.
* **Prefijo y sufijo**: Agrega texto personalizado antes o después del número (p. ej., prefijo "$" o sufijo "%") para mejorar la legibilidad.
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="frame" />iFrames</span>
Incorpora herramientas y contenido externos directamente en tu panel.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-table.png" alt="Tabla" />
</Frame>
**Ideal para:**
* Búsqueda de elementos individuales
* Comprobación de valores exactos
* Auditoría o referencia
**Ejemplos de uso:**
* Oportunidades que se cierran este mes
* Nuevos leads esta semana
* Facturas vencidas
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="table" />Tabla</span>
Ve los registros filtrados directamente en tu panel.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-iframe.png" alt="iFrame" />
</Frame>
**Ideal para:**
* Mostrar informes o paneles externos
* Integrar herramientas de ventas de terceros
* Mostrar contenido en tiempo real de otros sistemas
**Ejemplos de uso:**
* Métricas de tu herramienta de soporte
* Métricas de tu herramienta de marcación
* Contenido en tiempo real de tu herramienta de secuencias de ventas
### <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px' }}><ChartIcon icon="align-box-left-top" />Texto enriquecido</span>
Añade texto con formato y contenido directamente a tu panel.
<Frame>
<img src="/images/user-guide/dashboard/dashboard-widget-rich-text.png" alt="Texto enriquecido" />
</Frame>
**Ideal para:**
* Añadir contexto o instrucciones
* Descripciones del panel
* Notas y anotaciones
**Funciones:**
* Formato de texto enriquecido (negrita, cursiva, listas, etc.)
* Carga de imágenes y archivos
* Edición con estilo Markdown
<Note>
**Próximamente**: Los gráficos de indicador aún no están disponibles, pero están en nuestra hoja de ruta.
</Note>
### Duplicar widgets
1. Haz clic en el widget
2. Abre **Opciones**
3. Haz clic en **Duplicar widget**

View File

@@ -0,0 +1,54 @@
---
title: Preguntas frecuentes sobre tableros.
description: Preguntas frecuentes sobre los tableros en Twenty.
---
<AccordionGroup>
<Accordion title="¿Puedo crear tableros privados?">
No. Actualmente, los tableros son visibles para todas las personas con acceso a tu espacio de trabajo de Twenty. Los tableros privados aún no están disponibles.
</Accordion>
<Accordion title="¿Por qué mis métricas se ven diferentes a las de mi colega?">
Actualmente, los tableros muestran los datos según la zona horaria de quien los ve. Si se encuentran en regiones diferentes (p. ej., APAC vs. EE. UU.), es posible que vean cifras ligeramente distintas para el mismo tablero. Estamos trabajando en añadir un ajuste de zona horaria por tablero para garantizar datos coherentes entre equipos.
</Accordion>
<Accordion title="¿Puedo exportar mi tablero?">
La exportación de tableros no está disponible por el momento. Esta función está en nuestra hoja de ruta.
</Accordion>
<Accordion title="¿Puedo compartir tableros con usuarios externos?">
No. Actualmente no se admite compartir tableros con usuarios fuera de tu espacio de trabajo de Twenty (usuarios que no son de Twenty).
</Accordion>
<Accordion title="¿Cómo agrego un tablero a mis favoritos?">
Abre el tablero que quieres marcar como favorito y luego haz clic en el icono de estrella. Los favoritos son personales; no afectarán a otros usuarios.
</Accordion>
<Accordion title="¿Cuál es la diferencia entre pestañas y widgets?">
* **Las pestañas** organizan tu tablero en secciones (como páginas dentro del tablero)
* **Los widgets** son las visualizaciones individuales (gráficas, números, iFrames) dentro de cada pestaña
Estructura: Tablero → Pestañas → Widgets
</Accordion>
<Accordion title="¿Puedo filtrar un tablero completo de una vez?">
Los filtros a nivel de tablero aún no están disponibles, pero esta función está en nuestra hoja de ruta. Por ahora, debes aplicar los filtros a cada widget de forma individual.
</Accordion>
<Accordion title="¿Están disponibles los gráficos de indicadores?">
Aún no. Los gráficos de indicadores están en nuestra hoja de ruta y se agregarán en una versión futura.
</Accordion>
<Accordion title="¿Cómo duplico un tablero?">
1. Asegúrate de estar en modo de visualización (no de edición).
2. Abre la barra de comandos con **Cmd + K** (o **Ctrl + K** en Windows).
3. Selecciona **Duplicar tablero**
</Accordion>
<Accordion title="¿Con qué frecuencia se actualizan los datos del tablero?">
Los widgets se actualizan automáticamente a medida que cambian tus datos del CRM:
* Actualizaciones en tiempo real para la mayoría de las métricas
* Usa el botón de actualizar para una actualización manual si es necesario
* Los datos históricos se conservan para el análisis de tendencias
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,67 @@
---
title: Preguntas frecuentes del Widget
description: Preguntas frecuentes y mensajes de error explicados.
---
<AccordionGroup>
<Accordion title="¿Cómo muestro porcentajes en lugar de recuentos?">
Tres opciones:
* **Porcentaje vacío/no vacío**: En Datos en pantalla, selecciona Porcentaje vacío o Porcentaje no vacío
* **Proporción**: Para campos de Selección o Casilla de verificación, activa Proporción para mostrar una opción específica como porcentaje de todos los registros
* **Sufijo**: Para gráficos agregados, añade `%` como Sufijo en la configuración de estilo
</Accordion>
<Accordion title="¿Cuál es la diferencia entre barras agrupadas y apiladas?">
Al usar **Agrupar por**, puedes mostrar las series de dos maneras:
* **Agrupadas**: Barras una al lado de la otra—ideal para comparar valores exactos
* **Apiladas**: Barras una encima de otra—ideal para mostrar la composición
Activa o desactiva **Apiladas** en la configuración de estilo para cambiar.
</Accordion>
<Accordion title="¿Por qué no puedo ver las opciones Suma o Promedio?">
Las operaciones disponibles dependen del **tipo de campo**:
* **Campos numéricos**: Suma, Promedio, Mínimo, Máximo
* **Campos de fecha**: Más antiguo, Más reciente (solo gráficos agregados)
* **Campos de casilla de verificación**: Contar verdadero, Contar falso
Si no ves una opción, verifica que hayas seleccionado un tipo de campo compatible.
</Accordion>
<Accordion title="¿Por qué algunas configuraciones están atenuadas o faltan?">
Muchas configuraciones solo aparecen cuando se cumplen los requisitos previos:
* **Granularidad de fecha**: Selecciona primero un campo de fecha
* **Agrupar por, Leyenda, Apiladas**: Establece primero el Origen
* **Conmutadores de Leyenda y Apiladas**: Establece primero Agrupar por
Si falta una configuración, configura primero su requisito previo.
</Accordion>
<Accordion title="¿Qué significa 'No data'?">
El gráfico no encontró registros que coincidan con tu configuración.
**Para solucionarlo:** Quita o ajusta los filtros, verifica que seleccionaste el objeto Origen correcto o comprueba que existan registros para tu rango de fechas.
</Accordion>
<Accordion title="¿Qué significa 'Invalid configuration'?">
Falta una configuración obligatoria o es incompatible.
**Para solucionarlo:** Asegúrate de que Origen esté definido, que Datos en pantalla esté configurado y que se hayan seleccionado los campos de agrupación requeridos.
</Accordion>
<Accordion title="¿Qué significa 'Undisplayed data'?">
Tus datos superan los límites de visualización (100 barras, 100 puntos de datos o 100 porciones).
**Para solucionarlo:** Agrega filtros para acotar tus datos o cambia la granularidad de fecha de Día a Semana o Mes.
</Accordion>
<Accordion title="¿Por qué un eje no muestra datos?">
El campo seleccionado no tiene valores para los registros de tu filtro o el tipo de campo no coincide con los datos esperados.
**Para solucionarlo:** Prueba con un campo diferente o verifica que los registros tengan valores para el campo seleccionado.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,75 @@
---
title: Tableros
description: Aprende los conceptos básicos de los informes y los paneles en Twenty.
---
## Comprender los paneles
Los paneles en Twenty ofrecen una forma visual de seguir tus métricas clave de rendimiento y obtener información de tus datos de CRM.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Tableros" />
## Conceptos clave
### Tableros
Un panel es una colección de pestañas que muestran tus datos de CRM de un vistazo. Puedes crear varios paneles para distintos fines:
* Rendimiento de ventas
* Actividad del equipo
* Salud del embudo de ventas
* Métricas personalizadas
### Pestañas
Las pestañas te permiten organizar tu panel en secciones. Cada pestaña contiene uno o más widgets.
### Widgets
Los widgets son visualizaciones individuales que muestran datos específicos. Los tipos incluyen:
* Gráficos de barras
* Gráficos de pastel
* Gráficos de líneas
* Gráficos agregados
* iFrames
* Texto enriquecido
<Note>
**Limitaciones actuales**:
* La exportación de paneles y el uso compartido con usuarios externos (usuarios que no utilizan Twenty) no están disponibles por el momento.
* Los gráficos de indicadores aún no están disponibles.
</Note>
## Primeros pasos
### Crear tu primer panel
1. Ve a la sección **Dashboards**
2. Haz clic en **+ New Dashboard**
3. Asigna un nombre a tu panel
4. Añade pestañas para organizar tu contenido
5. Añade widgets para mostrar tus datos
6. Guardar
### Añadir widgets
1. Abre una pestaña en tu panel
2. Haz clic en **+ Add Widget**
3. Selecciona el tipo de widget
4. Elige la fuente de datos (objeto)
5. Configura los ajustes del widget
6. Guarda y visualiza tu widget
## Mejores prácticas
* **Empieza de forma sencilla**: Comienza con algunas métricas clave y añade más con el tiempo
* **Concéntrate en datos accionables**: Muestra métricas que impulsen decisiones
* **Revisión periódica**: Revisa tus paneles con regularidad para detectar tendencias
* **Compartir con el equipo**: Haz que los paneles sean visibles para los miembros del equipo pertinentes
## Próximos Pasos
* [Widgets y visualizaciones](/l/es/user-guide/dashboards/capabilities/widgets)
* [Referencia de configuración de gráficos](/l/es/user-guide/dashboards/capabilities/chart-settings)
* [Preguntas frecuentes sobre paneles](/l/es/user-guide/dashboards/how-tos/dashboards-faq)

View File

@@ -0,0 +1,76 @@
---
title: Manejo de errores y validación
description: Revisa y corrige los errores de importación directamente en la interfaz antes de confirmar.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Validación previa a la importación
Después de cargar tu archivo y asignar los campos, Twenty valida tus datos **antes** de importar. Esto te permite detectar y corregir errores sin afectar tus datos existentes.
## Cómo Funciona
1. **Carga** tu archivo CSV
2. **Asigna** tus columnas a los campos de Twenty
3. **Revisa** los posibles errores resaltados en amarillo
4. **Corrige los errores** directamente en la interfaz
5. **Confirma** la importación
<VimeoEmbed videoId="1145273857" title="Demostración en video" />
## Visualización de errores
Las filas con problemas se resaltan en **amarillo**. Puedes:
* **Edita la celda directamente** para corregir el error
* **Elimina la fila** para omitirla por completo
Esta edición en línea ahorra tiempo: no necesitas volver a tu hoja de cálculo, corregir los errores y volver a cargar.
## Tipos de errores comunes
### Valores duplicados
**Causa**: Un campo único (correo electrónico, dominio) ya existe en Twenty o aparece dos veces en tu archivo.
**Solución**:
* Edita el valor duplicado en la interfaz de importación
* Elimina una de las filas duplicadas
Consulta [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints) para más detalles sobre cómo se aplica la unicidad.
### Formato no válido
**Causa**: Los datos no coinciden con el formato esperado (p. ej., correo electrónico no válido, formato de fecha incorrecto).
**Solución**: Edita la celda para usar el formato correcto.
Consulta [Asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping) para conocer el formato esperado de cada tipo de campo.
### Faltan campos obligatorios
**Causa**: Un campo obligatorio está vacío.
**Solución**: Introduce un valor en el campo obligatorio o elimina la fila.
### Relación no encontrada
**Causa**: El registro de referencia no existe (p. ej., un dominio de Empresa que no se importó).
**Solución**:
* Importa primero los registros padre
* O corrige el valor de la referencia
Consulta [Importar relaciones](/l/es/user-guide/data-migration/capabilities/import-relations) para conocer el orden correcto de importación y cómo vincular registros.
## Consejos para reducir errores
1. **Descarga la plantilla** para ver el formato esperado antes de importar tu archivo
2. **Limpia tus datos** primero en la hoja de cálculo
3. **Importa los archivos en el orden correcto** para importar relaciones (Empresas → Personas → Oportunidades)
4. **Haz pruebas con lotes pequeños** antes de la importación completa
5. **Verifica duplicados** antes de cargar
6. **Limita cada archivo a 10.000 registros**

View File

@@ -0,0 +1,198 @@
---
title: Asignación de campos
description: Cómo funciona la asignación de campos durante la importación de datos.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Cómo funciona la asignación de campos
Cuando cargas un archivo, Twenty analiza las columnas e intenta hacerlas coincidir con los campos existentes.
### Asignación automática
Twenty intenta hacer coincidir las columnas en función de:
* Nombres de encabezados de columna (coincidencias exactas o similares)
* Detección de tipo de datos (fechas, números, correos electrónicos)
* Patrones de campo comunes
<Note>**Consejo rápido:** Exporta algunas filas del objeto que quieres importar. El archivo exportado tendrá los nombres de columna exactos que Twenty espera, lo que hará que la asignación automática sea fluida durante la importación.</Note>
### Opciones de asignación manual
Para cada columna, puedes:
* **Asignar a un campo**: Selecciona el campo correspondiente de Twenty desde un menú desplegable
* **No asignar**: Omite la columna por completo (los datos no se importarán)
<Note>**Los campos deben existir antes de la importación.** La importación crea registros, no campos. Crea campos personalizados en **Settings → Data Model** antes de importar.</Note>
## Compatibilidad de tipos de campo
Todos los tipos de campo disponibles en el Data Model son compatibles con la importación.
También puedes importar valores de `id` para asignar un ID específico a los nuevos registros o actualizar los existentes.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Requisitos de formato de datos
<Note>**Algunos campos tienen una sintaxis especial.** Recomendamos descargar el archivo de muestra antes de preparar la importación para ver la sintaxis esperada para cada tipo de campo.</Note>
### Campos de dirección
Dirección es un campo anidado con múltiples columnas. Algunos se pueden dejar vacíos.
* **Address / Address 1**: Primera línea de la dirección
* **Address / Address 2**: Segunda línea de la dirección
* **Address / City**: Nombre de la ciudad
* **Address / State**: Estado o provincia
* **Address / Country**: Nombre del país
* **Address / Post Code**: Código postal/ZIP
### Campos de array
Usa el siguiente formato:
```
["value1","value2"]
```
### Campos booleanos
Usa `TRUE` o `FALSE` (mayúsculas), no `true` o `false`
### Campos de moneda
Moneda es un campo anidado con dos columnas que **ambas deben completarse**:
* **Amount / Amount**: El valor numérico (p. ej., `1234.56`)
* **Amount / Currency**: El código de la moneda (p. ej., `USD`, `EUR`)
### Campos de fecha
Formatos admitidos:
* `YYYY-MM-DD` (recomendado)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* Formato ISO 8601
### Campos de dominio
* Se recomienda usar el formato `https://domain.com` para evitar crear duplicados, ya que este es el formato utilizado para las Companies creadas por las sincronizaciones del buzón y del calendario
* Se pueden completar `Domain Label` y `Domain URL`: la mejor práctica es poner `domain.com` en la etiqueta y `https://domain.com` en la URL
* Los dominios deben ser únicos dentro del objeto Companies
* **Los dominios deben ser únicos dentro del archivo a importar**
### Campos de correo electrónico
* Debe tener un formato de correo electrónico válido
* Los correos electrónicos deben ser únicos dentro del objeto People
* **Los correos electrónicos deben ser únicos dentro del archivo a importar**
* Para correos adicionales: usa **Emails / Primary Email** para el correo principal y **Emails / Additional Emails** con este formato:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Campos ID
Es opcional especificar un `id` durante la importación. Twenty lo genera automáticamente si no se proporciona.
Casos de uso para asignar una columna `id`:
* **Establecer un ID específico**: Elige el UUID para los registros recién creados
* **Actualizar registros existentes**: Haz coincidir con los registros existentes para actualizarlos en lugar de crear duplicados. En ese caso, se recomienda no asignar los otros campos únicos: asignar solo un campo único garantiza una importación más fluida.
<Note>Si proporcionas un `id`, debe estar en formato UUID (p. ej., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Campos JSON
Usa un formato JSON válido:
```
{"key":"value","key2":"value2"}
```
### Campos de enlaces
Similar a los campos de dominio:
* Completa ambas columnas de etiqueta y URL: **Links / Link URL** y **Links / Link Label**
* Usa el formato de URL completo: `https://example.com`
* Para enlaces secundarios, usa la columna **Links / Secondary Links** con este formato:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Campos de selección múltiple
Usa los **nombres de la API** (no las etiquetas visibles) con el siguiente formato:
```
["VALUE1","VALUE2"]
```
Consulta [aquí](#finding-api-names-for-select-fields) dónde encontrar los nombres de la API.
<Note>Las nuevas opciones de selección no se crearán automáticamente mediante la importación. Deben agregarse en **Settings → Data Model** antes de importar.</Note>
<Warning>
**Importa sobrescritos; no agrega.**
Si un registro ya tiene seleccionados `VALUE2` y `VALUE3`, y importas ["VALUE1"], el registro solo tendrá `VALUE1` después de la importación. Las selecciones anteriores se reemplazan, no se fusionan.
</Warning>
### Campos numéricos
* Solo números
* Los decimales usan punto: `1234.56`
* Sin separadores de miles
### Campos de teléfono
Teléfono es un campo anidado con múltiples columnas que **deben completarse**
* **Phones / Primary Phone Number**: El número de teléfono (p. ej., `4159095555`)
* **Phones / Primary Phone Country Code**: Código de país (p. ej., `US`)
* **Phones / Primary Phone Calling Code**: Código de marcación (p. ej., `+1`)
### Campos de calificación
Usa el formato de nombre de API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Campos de Relación
Consulta nuestro artículo dedicado: [Importar relaciones entre objetos](/l/es/user-guide/data-migration/capabilities/import-relations)
### Campos de Selección
Usa el nombre de la API de la opción (no la etiqueta visible):
```
VALUE1
```
Consulta [aquí](#finding-api-names-for-select-fields) dónde encontrar los nombres de la API.
<Note>Las nuevas opciones de Select no se crearán automáticamente mediante la importación. Deben agregarse en **Configuración → Modelo de datos** antes de importar.</Note>
### Campos de texto
* No se requiere formato especial
* Los espacios iniciales y finales se eliminan
## Encontrar nombres de la API
Para los campos Select, Multi-Select y Array con opciones predefinidas, debes usar los **nombres de la API**, no las etiquetas visibles.
### Cómo encontrar los nombres de la API
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto y el campo
3. Activa el **modo avanzado** (interruptor en la parte inferior derecha de la página de configuración)
4. Consulta el nombre de la API de cada opción
<VimeoEmbed videoId="1144910809" title="Demostración en video" />

View File

@@ -0,0 +1,48 @@
---
title: Formatos de archivo compatibles
description: Formatos de archivo compatibles para la importación de datos en Twenty.
---
## Formatos compatibles
Twenty admite tres formatos de archivo para la importación:
| Formato | Extensión | Notas |
| -------------------- | --------- | ------------------------------ |
| **CSV** | .csv | Recomendado, el más compatible |
| **Excel** | .xlsx | Formato de Excel moderno |
| **Excel (heredado)** | .xls | Formato de Excel antiguo |
## Requisitos del archivo
| Requisito | Valor |
| ----------------------- | -------------------------------------------------------- |
| **Codificación** | Se recomienda UTF-8 |
| **Límite de registros** | 10.000 registros por archivo |
| **Estructura** | La primera fila debe contener los encabezados de columna |
| **Contenido** | Un tipo de objeto por archivo |
## Mejores prácticas para CSV
* **Delimitador**: Use coma (`,`) o punto y coma (`;`)
* **Calificador de texto**: Use comillas dobles (`"`) para texto que contenga comas
* **Finales de línea**: Windows (CRLF) o Unix (LF), ambos compatibles
* **Valores vacíos**: Deje las celdas vacías; no use "NULL" ni "N/A"
## Mejores prácticas para Excel
Al exportar desde Excel:
* Elimine las fórmulas (exporte solo valores)
* Elimine las filas vacías al final
* Asegúrese de que no haya celdas combinadas
* Use solo la primera hoja
## Conjuntos de datos grandes
Para conjuntos de datos de más de 10.000 registros:
* Divídalos en varios archivos
* O use la [importación mediante API](/l/es/user-guide/data-migration/how-tos/import-data-via-api) para registros ilimitados
<Note>Para migraciones muy grandes (100.000+ registros), la API es significativamente más rápida y más fiable que las importaciones CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: Importar relaciones entre objetos
description: Importar relaciones entre registros mediante CSV.
---
## Resumen
Twenty admite importar relaciones entre objetos durante la importación de CSV. Esto te permite vincular registros (p. ej., adjuntar Personas a Empresas) como parte de tu migración de datos.
<Note>**Actualmente compatible para la importación**: Relaciones de uno a muchos que apuntan a un único tipo de objeto en cada lado (p. ej., Personas → Empresas). Las relaciones que apuntan a varios tipos de objeto aún no son compatibles con la importación/exportación.</Note>
## Cómo funcionan las relaciones en Twenty
### De uno a muchos / de muchos a uno
Twenty admite relaciones estándar en las que un registro se vincula a muchos otros:
* **Una Empresa → Muchas Personas**: Una empresa puede tener múltiples empleados, pero cada persona pertenece a una sola empresa
* **Una Empresa → Muchas Oportunidades**: Una empresa puede tener múltiples acuerdos, pero cada oportunidad pertenece a una sola empresa
### Relaciones que pueden apuntar a varios tipos de objeto
Algunas relaciones pueden conectarse a diferentes tipos de objetos. Esto funciona de dos maneras:
**Patrón 1: Muchos registros que se vinculan cada uno a un registro de diferentes tipos de objeto**
Se pueden adjuntar varias notas o tareas a varios tipos de objetos a la vez:
* **Notas** pueden vincularse simultáneamente a una Persona, una Empresa y una Oportunidad
* **Tareas** pueden vincularse simultáneamente a una Persona, una Empresa y una Oportunidad
Aquí, las Notas/Tareas están en el lado de "muchos". Cada una se vincula a un registro por tipo de objeto.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Patrón 2: Un registro que recibe vínculos de muchos registros de diferentes tipos de objeto**
Un Proyecto puede recibir vínculos de múltiples registros de diferentes tipos de objeto:
* **Un Proyecto** puede tener muchas Personas vinculadas, muchas Empresas vinculadas y muchas Notas adjuntas
Aquí, el Proyecto está en el lado de "uno". Varios registros de diferentes objetos pueden vincularse todos al mismo Proyecto.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Limitación de importación/exportación**: Las relaciones que apuntan a varios tipos de objeto (como Notas → Personas/Empresas/Oportunidades) **aún no son compatibles** en la importación o exportación de CSV.
* **Importación**: Solo se pueden importar relaciones de uno a muchos que apunten a un único tipo de objeto en cada lado
* **Exportación**: Actualmente, las columnas de relaciones que apuntan a varios tipos de objeto se dejan vacías
Esto está en nuestra hoja de ruta.
</Warning>
### Qué no es compatible hoy
**Relaciones de muchos a muchos** aún no están disponibles. Por ejemplo, actualmente no puedes crear una relación en la que:
* Muchas Personas están vinculadas a muchos Proyectos
<Note>Se planifican relaciones muchas a muchas muchas para H2 2026.</Note>
## Vincular registros durante la importación
<Note>**Recordatorio**: Solo se pueden importar relaciones de uno a muchos que apunten a un único tipo de objeto (p. ej., Personas → Empresas). Las relaciones que apuntan a varios tipos de objeto (p. ej., Notas → Personas/Empresas/Oportunidades) aún no son compatibles.</Note>
### Paso 1: Identificar los lados "Uno" y "Muchos"
Primero, determina qué objeto está en el lado de "uno" y cuál en el lado de "muchos" de la relación.
**Ejemplo**:
* **Empresa** es el lado de "uno" (una empresa tiene muchos empleados)
* **Personas** es el lado de "muchos" (cada persona pertenece a una empresa)
### Paso 2: Asegúrate de que existan los registros del lado de "uno"
Antes de importar el lado de "muchos", los registros del lado de "uno" ya deben existir en Twenty.
* Importa o crea primero los registros del lado de "uno" (p. ej., Empresas)
* Valida su identificador único. Este puede ser:
* El `id` (UUID de Twenty)
* Un campo definido como único (p. ej., `domain` para Empresas, o un ID externo de tu sistema anterior)
<Warning>La importación fallará si se hace referencia a un registro que no existe.</Warning>
### Paso 3: Prepara tu archivo CSV
Agrega una columna en tu archivo CSV del lado de "muchos" que haga referencia al registro del lado de "uno".
**Ejemplo**: Para un archivo CSV de Personas vinculado a Empresas:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Importante**:
* El valor debe **coincidir exactamente** con el campo único en el registro de Empresa
* Para dominios, usa la **URL del dominio** (p. ej., `https://acme.com`), no la etiqueta de dominio
* Asigna solo **un** identificador único por relación: esto conduce a una importación más fluida
### Paso 4: Asegúrate de que el campo de relación exista
Antes de subir tu archivo, asegúrate de que exista el campo de relación entre tus objetos.
Si no existe:
1. Ve a **Configuración → Modelo de datos**
2. Selecciona tu objeto (p. ej., Personas)
3. Crea un campo de relación que apunte al objeto de destino (p. ej., Empresa)
### Paso 5: Carga y asigna la relación
1. Carga tu archivo CSV mediante la interfaz de importación
2. En el paso de asignación de campos, encuentra tu columna de relación (p. ej., `companyDomain`)
3. Asígnala al campo de relación (p. ej., Empresa)
4. Twenty vinculará automáticamente cada registro con el padre correspondiente
### Campos únicos disponibles para relaciones
| Objeto | Campos únicos disponibles |
| ------------------------------------------- | --------------------------------------------------- |
| **Empresas** | `id`, `domain`, cualquier campo único personalizado |
| **Personas** | `id`, `email`, cualquier campo único personalizado |
| **Miembros del espacio de trabajo** | `id`, `email` (no el nombre) |
| **Otros objetos estándar y personalizados** | `id`, cualquier campo marcado como único |
<Note>**Vinculación a Miembros del espacio de trabajo**: Cuando la relación apunta a Miembros del espacio de trabajo (tu equipo que inicia sesión en Twenty), haz referencia a su **dirección de correo electrónico**, no a su nombre.</Note>
<Note>Recomendamos usar `domain` para Empresas y `email` para Personas, ya que son legibles para humanos y fáciles de mantener en hojas de cálculo.</Note>
<Note>**Recordatorio**: Los registros eliminados de forma lógica (visibles en Menú de comandos → Ver registros eliminados) cuentan para los criterios de unicidad. Si importas un registro con el mismo valor único que un registro eliminado, el registro eliminado se restaurará. Consulta [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints) para más detalles.</Note>
## Regla de orden de importación
<Warning>
**¡Importa siempre primero el lado de "uno"!**
1. **Empresas** primero (sin dependencias)
2. **Personas** en segundo lugar (vinculadas a Empresas)
3. **Oportunidades** en tercer lugar (vinculadas a Empresas/Personas)
4. **Objetos personalizados** según sus dependencias
El registro padre debe existir antes de que puedas hacer referencia a él.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: Restricciones de unicidad
description: Cómo Twenty garantiza la unicidad de los datos durante la importación.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Resumen
Twenty aplica unicidad en ciertos campos para evitar registros duplicados y garantizar la integridad de los datos. Comprender estas restricciones es esencial para realizar importaciones exitosas.
## Campos únicos predeterminados
| Objeto | Campos únicos |
| -------------------------- | ----------------------------------- |
| **Personas** | `id`, `email` |
| **Empresas** | `id`, `domain` |
| **Objetos personalizados** | solo `id` (de forma predeterminada) |
<Note>El campo `id` es el identificador interno de Twenty, generado automáticamente para cada registro. Utiliza el formato UUID (p. ej., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## Campos únicos personalizados
Puedes definir campos únicos adicionales en **Configuración → Modelo de datos**:
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto
3. Haz clic en un campo
4. Activa **Único** en la configuración del campo
### Casos de uso de campos únicos personalizados
* **ID externos**: Almacenar ID de otros sistemas (Salesforce ID, HubSpot ID)
* **Identificadores empresariales**: Números de empleado, códigos de cliente
* **Información de contacto alternativa**: Perfil de LinkedIn, número de teléfono
<Note>El nombre de campo `id` está reservado para el ID interno de Twenty. Usa un nombre diferente como `externalId` o `legacyId` para los identificadores externos.</Note>
## Comportamiento de la importación
### Creación de nuevos registros
Si el valor de un campo único no existe, se crea un nuevo registro.
### Actualización de registros existentes
Si el valor de un campo único coincide con un registro existente, ese registro se **actualiza** con los nuevos datos.
<Warning>Para **actualizar registros existentes**, se recomienda **hacer coincidir solo un campo único**.</Warning>
### Registros eliminados lógicamente
<Warning>
**Los registros eliminados de forma lógica cuentan para la unicidad.**
Los registros eliminados de forma lógica (visibles en Menú de comandos → Ver registros eliminados) se incluyen en las verificaciones de unicidad. Si importas un registro con el mismo valor único que un registro eliminado, el registro eliminado se **restaurará** con los nuevos datos.
</Warning>
## Detección de duplicados durante la importación
Durante la fase de validación:
* Los duplicados dentro de tu archivo se resaltan en amarillo
* Puedes editar o eliminar filas duplicadas desde la interfaz antes de iniciar la importación
<VimeoEmbed videoId="1145246326" title="Demostración en video" />
## Mejores prácticas
1. **Elimina los duplicados** de tu archivo antes de importar
2. **Comprueba si existen registros** en Twenty antes de importar
3. **Usa ID externos** al migrar desde otros sistemas
4. **Incluye campos únicos** si quieres actualizar registros existentes

View File

@@ -0,0 +1,32 @@
---
title: Exportar FAQ
description: Preguntas frecuentes sobre la exportación de datos.
---
<AccordionGroup>
<Accordion title="¿Podemos exportar todos los datos del espacio de trabajo antes de la cancelación, incluyendo objetos personalizados, campos personalizados, relaciones, notas, tareas, oportunidades, accesos, flujos de trabajo, permisos e historial de auditorías?">
Los datos del espacio de trabajo pueden ser exportados antes de la cancelación con algunas excepciones: los paneles, los flujos de trabajo y los permisos deben ser transferidos manualmente; los registros de auditoría no pueden ser transferidos.
</Accordion>
<Accordion title="¿Qué elementos no se pueden exportar o migrar actualmente?">
La mayoría de los elementos pueden ser exportados o migrados con algunas excepciones:
* flujos de trabajo, paneles de control y todos los ajustes (teclas API, webhooks, registros de auditoría, configuración de usuario, etc.) debe migrarse manualmente
* objetos y campos creados por la aplicación se pueden migrar instalando dicha aplicación en un espacio de trabajo diferente. No deberían migrarse manualmente
* algunos registros, como versiones de flujo de trabajo y ejecuciones de flujo de trabajo, no son transferibles en absoluto y se espera que se pierdan
* algunos objetos como mensajes y objetos relacionados con el calendario no deberían ser exportados ya que son creados cuando una cuenta está conectada y sincronizada periódicamente. Serán sincronizados de nuevo una vez que conectes tu cuenta (siempre y cuando tengas acceso a dicha cuenta) si es una cuenta de un miembro del equipo que abandonó su empresa, entonces esos mensajes deben ser exportados, de lo contrario se perderán)
</Accordion>
<Accordion title="¿Hay una nube oficial para el procedimiento de migración autoalojada o un servicio de migración asistida?">
Hasta ahora, no existe ningún procedimiento oficial de migración en la nube. La idea general es:
* primero, instalar aplicaciones para introducir objetos y campos de aplicación
* replicar objetos personalizados y campos añadidos por los usuarios
* usar un script con claves API o herramientas de IA para migrar todos los datos de un espacio de trabajo a otro
* todos los objetos no transferibles deben migrarse manualmente
Por favor, tenga en cuenta algunas cosas:
* puede enviar hasta 50 solicitudes por minuto en el plan Pro o 100 solicitudes por minuto en el plan de la organización antes de alcanzar un límite mínimo
* cada solicitud de API puede tener hasta 200 registros
* algunos datos en campos como Creado por, Actividades de cronología y Actualizadas por el sistema se perderán durante la importación y sobrescritos por el sistema
</Accordion>
<Accordion title="¿Los archivos exportados se proporcionan en formatos abiertos y documentados?">
Los archivos exportados en la interfaz de usuario están en formato Excel, y todas las peticiones API se pueden guardar en formato JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
title: Exporta tus datos
description: Guía completa paso a paso para exportar datos desde Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Resumen
Exporta los datos de tu espacio de trabajo a CSV para copias de seguridad, informes o migración.
**Casos de uso:**
* **Copias de seguridad periódicas** — mantén copias de tus datos
* **Informes externos** — analiza los datos en Excel, Google Sheets o herramientas de BI
* **Migración** — mueve datos a otro sistema
* **Actualizaciones masivas** — exporta, edita y vuelve a importar para actualizar registros
## Lo que necesitas saber
### Límites de exportación
* **Máximo 20.000 registros** por exportación
* Solo se exportan las **columnas visibles**
* Solo se exportan los **registros filtrados** (según tu vista actual)
<Note>Para exportaciones más grandes (más de 20.000 registros), usa filtros para exportar por lotes o usa la [API](/l/es/developers/extend/api).</Note>
### Permisos
Necesitas el permiso **"Export CSV"** para exportar datos. Contacta con el administrador de tu espacio de trabajo si no tienes esta opción.
## Paso 1: Navega al objeto
Ve al objeto que quieres exportar:
* **Personas** — para contactos
* **Empresas** — para organizaciones
* **Oportunidades** — para negocios
* **Objetos personalizados** — cualquier objeto que hayas creado
## Paso 2: Configura tu vista
**Importante:** La exportación solo incluye lo que es visible en tu vista actual.
### Agregar/Quitar columnas
1. Haz clic en **Opciones → Campos** (o en el **+** al final de las columnas)
2. Marca los campos que quieres exportar
3. Desmarca los campos que no necesitas
### Filtrar registros (opcional)
Si solo necesitas un subconjunto de datos:
1. Haz clic en **Filtrar**
2. Añade condiciones de filtro (p. ej., "Created date > January 1, 2024")
3. Solo se exportarán los registros coincidentes
### Ordenar registros (opcional)
1. Haz clic en el encabezado de una columna para ordenar
2. La exportación seguirá tu orden de clasificación
<Note>**Crea una vista de exportación dedicada.** Guarda una vista configurada específicamente para exportaciones, así no tendrás que reconfigurar cada vez.</Note>
## Paso 3: Exporta los datos
1. Haz clic en el icono **⋮** en la parte superior derecha de la tabla
2. Selecciona **Exportar vista**
3. Elige dónde guardar el archivo CSV
4. Espera a que la descarga finalice
## Qué se exporta
| Incluido | No incluido |
| ------------------------------------------------ | ----------------------------------- |
| Todas las columnas visibles | Columnas ocultas |
| Registros que coinciden con los filtros actuales | Registros excluidos por los filtros |
| Valores de campos personalizados | Campos que no están en la vista |
| ID de registro | Archivos adjuntos |
| ID de relación | Imágenes |
### Campos de Relación
Los ID de relación solo se exportan en el **lado "muchos"** de una relación:
* **La exportación de Personas** incluye una columna `companyId` (relación Personas → Empresa)
* **La exportación de Empresas** NO incluye `peopleIds` (Empresas es el lado "uno")
Esto significa que puedes usar la exportación de Personas para volver a importar y mantener el vínculo con Empresa, pero necesitarás volver a importar Personas después de Empresas para recrear las relaciones.
## Exportación para fines específicos
### Para copias de seguridad
1. Crea una vista con **todos los campos** visibles
2. Elimina todos los filtros para incluir todos los registros
3. Exporta cada tipo de objeto por separado
4. Guarda las exportaciones en un lugar seguro
5. Configura un recordatorio recurrente (semanal/mensual)
### Para informes externos
1. Incluye solo los campos que necesitas para el análisis
2. Aplica filtros para concentrarte en los datos relevantes
3. Considera ordenar por el campo que analizarás
### Para actualizaciones masivas
1. Exporta los registros que quieres actualizar
2. Incluye el identificador único (`email`, `domain` o `id`)
3. Edita el archivo exportado
4. Vuelve a importar para actualizar registros
Consulta: [Cómo actualizar registros existentes](/l/es/user-guide/data-migration/how-tos/update-existing-records-via-import)
### Para migración
Si estás exportando para migrar a otro sistema:
1. **Exporta cada objeto por separado** — Personas, Empresas, Oportunidades, etc.
2. **Incluye los campos de ID** — ayudan a mantener las relaciones
3. **Documenta las asignaciones de campos** — anota cómo los campos de Twenty se asignan a tu sistema de destino
## Gestión de conjuntos de datos grandes (más de 20.000 registros)
El límite de exportación es de 20.000 registros. Para conjuntos de datos más grandes:
### Opción 1: Exportar por lotes
1. Añade un filtro (p. ej., rangos de "Created date")
2. Exporta el primer lote
3. Cambia el filtro
4. Exporta el siguiente lote
5. Combina los archivos en tu hoja de cálculo
**Filtros de ejemplo para dividir en lotes:**
* Por rango de fechas (enero, febrero, marzo...)
* Por propietario (miembro del equipo A, miembro del equipo B...)
* Por estado (Activo, Inactivo...)
### Opción 2: Usar la API
La API no tiene límite de registros:
1. Obtén tu clave de API en **Ajustes → Desarrolladores**
2. Usa la API de GraphQL para consultar registros
3. Procesa los resultados en tu aplicación
Consulta: [Documentación de la API](/l/es/developers/extend/api)
## Consejos y mejores prácticas
### Crea vistas de exportación
Guarda vistas configuradas específicamente para exportaciones:
1. Configura columnas y filtros
2. Haz clic en **Opciones de vista** → **Guardar como nueva vista**
3. Ponle el nombre "Exportación - [Propósito]"
### Protege tus exportaciones
Los archivos exportados pueden contener datos sensibles:
* Guárdalos en ubicaciones seguras
* Elimina las exportaciones antiguas cuando ya no sean necesarias
* Ten cuidado al compartir archivos de exportación
### Verifica antes de exportar
<Check>Las columnas correctas están visibles</Check>
<Check>Los filtros están configurados correctamente (o eliminados para exportación completa)</Check>
<Check>Tienes permiso de exportación</Check>
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Por qué faltan algunas columnas en mi exportación?">
Solo se exportan las columnas visibles. Añade las columnas que necesitas desde **Opciones → Campos** antes de exportar.
</Accordion>
<Accordion title="¿Por qué mi exportación no tiene todos los registros?">
Revisa tus filtros. La exportación solo incluye los registros que coinciden con los filtros de tu vista actual. Elimina los filtros para exportar todos los registros.
</Accordion>
<Accordion title="¿Puedo exportar más de 20.000 registros?">
No en una sola exportación. Usa filtros para exportar por lotes o usa la API para conjuntos de datos más grandes.
</Accordion>
<Accordion title="¿En qué formato está el archivo de exportación?">
CSV (valores separados por comas). Se abre en Excel, Google Sheets o cualquier aplicación de hoja de cálculo.
</Accordion>
<Accordion title="¿Se incluyen los ID de relación?">
Sí, pero solo en el lado "muchos" de las relaciones. Por ejemplo, una exportación de Personas incluye `companyId`, pero una exportación de Empresas no incluye ID de personas.
</Accordion>
<Accordion title="¿Puedo automatizar las exportaciones?">
No directamente a través de la interfaz de usuario. Usa la API para crear flujos de trabajo de exportación automatizados.
</Accordion>
</AccordionGroup>
## Próximos Pasos
* [Cómo actualizar registros existentes](/l/es/user-guide/data-migration/how-tos/update-existing-records-via-import) — edita y vuelve a importar tu exportación
* [Cómo importar datos mediante la API](/l/es/user-guide/data-migration/how-tos/import-data-via-api) — para conjuntos de datos grandes
* [Documentación de la API](/l/es/developers/extend/api) — crea flujos de trabajo de exportación personalizados

View File

@@ -0,0 +1,430 @@
---
title: Solucionar errores de importación
description: Guía completa de solución de problemas para resolver errores de importación de CSV.
---
## Resumen
¿No funciona la importación? Esta guía te ayuda a identificar y solucionar los errores de importación más comunes paso a paso.
## Cómo funciona la validación de la importación
Después de cargar tu archivo y asignar las columnas, Twenty valida tus datos:
1. **Se ejecuta la validación** — Twenty verifica cada fila en busca de errores
2. **Los errores se resaltan** — las filas problemáticas aparecen en **amarillo**
3. **Puedes corregir en el mismo lugar** — edita las celdas directamente en la interfaz de importación
4. **O elimina filas** — omite por completo los registros problemáticos
<Note>**Corrige los errores en la interfaz.** No necesitas volver a tu hoja de cálculo. Edita las celdas directamente durante la importación para ahorrar tiempo.</Note>
## Solución de problemas paso a paso
### Paso 1: Identificar el tipo de error
Haz clic en una fila resaltada para ver el mensaje de error específico. Tipos de errores comunes:
| Mensaje de error | Qué significa |
| ----------------------------------------------------------------------------- | -------------------------------------------------------------- |
| Valores duplicados resaltados en amarillo | El valor ya existe en Twenty o aparece dos veces en tu archivo |
| `{field} is not a valid {type}` (pasa el cursor sobre la celda amarilla) | Los datos no coinciden con el formato esperado |
| Campo obligatorio resaltado | El campo obligatorio está vacío |
| `Can't connect to {object}. No unique record found...` (la importación falla) | El registro referenciado no existe |
| `Too many records. Up to 10000 allowed` (carga bloqueada) | El archivo tiene más de 10.000 registros |
### Paso 2: Corregir el error
Sigue las instrucciones específicas a continuación para cada tipo de error.
---
## Error: Valor duplicado
### Lo Que Verás
Las filas con valores duplicados se **resaltan en amarillo** en la interfaz de importación antes de que comience la importación.
### Qué significa
Un campo único (correo electrónico, dominio) ya sea:
* Ya existe en Twenty
* Aparece dos veces en tu archivo
### Cómo solucionarlo
**Opción 1: editar el valor duplicado**
1. Haz clic en la celda con el error
2. Cambia a un valor único
3. Continúa con la importación
**Opción 2: eliminar la fila duplicada**
1. Haz clic en la X junto a la fila
2. La fila se omitirá durante la importación
**Opción 3: deja que Twenty actualice el registro existente**
1. Asegúrate de que tu archivo incluya un identificador único (`email`, `domain` o `id`)
2. Asigna el campo de identificador único
3. Twenty actualizará el registro existente en lugar de crear un duplicado
<Note>
**También puedes actualizar campos únicos.**
* Si mantienes el `id` pero cambias el `email` → se actualizará el correo electrónico
* Si mantienes el `email` pero cambias el `id` → se actualizará el id
Siempre que uno de los identificadores únicos coincida, Twenty actualiza el registro.
</Note>
### Cómo evitar este error
Antes de importar:
1. Ordena tu hoja de cálculo por el campo único
2. Elimina las filas duplicadas
3. Comprueba si los registros ya existen en Twenty
<Warning>
**Los registros eliminados lógicamente cuentan para la unicidad.**
Consulta el Menú de comandos → Ver registros eliminados. Los registros allí aún aplican la unicidad. Elimínalos permanentemente o restáuralos y actualízalos.
</Warning>
Para más detalles: [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Formato no válido
### Lo Que Verás
El valor de la celda está resaltado en amarillo. Pasa el cursor sobre él para ver el mensaje de error:
```
{field name} is not a valid {field type}
```
### Qué significa
Los datos no coinciden con el formato esperado para ese tipo de campo.
### Cómo solucionarlo — por tipo de campo
#### Correo electrónico
**Problema:** Formato de correo electrónico no válido
**Solución:** Usa el formato `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### Dominio
**Problema:** Un formato inconsistente puede causar duplicados
**Solución:** Usa el formato `https://domain.com` (recomendado)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<Note>Todos los formatos son válidos, pero se recomienda `https://domain.com` porque coincide con el formato utilizado por la sincronización de correo/calendario. Usar otros formatos puede crear empresas duplicadas.</Note>
#### Fecha
**Problema:** Formato de fecha no reconocido
**Solución:** Usa el formato `YYYY-MM-DD` de forma consistente en todo el archivo
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### Teléfono
**Problema:** Faltan columnas obligatorias
**Solución:** Incluye todas las columnas de teléfono
| Columna | Ejemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### Booleano
**Problema:** Valor booleano incorrecto
**Solución:** Usa `TRUE` o `FALSE` en mayúsculas
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### Selección / Selección múltiple
**Problema:** El valor no coincide con las opciones existentes
**Solución:** Usa **nombres de API**, no etiquetas visibles
Cómo encontrar los nombres de la API:
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto y el campo
3. Activa el **modo avanzado** (interruptor en la esquina inferior derecha)
4. Usa el nombre de la API (p. ej., `OPTION_1`, no "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### Moneda
**Problema:** Falta el monto o el código de moneda
**Solución:** Rellena ambas columnas
| Columna | Ejemplo |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Número
**Problema:** Caracteres no numéricos
**Solución:** Solo números, punto para decimales
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
Para la referencia completa de formatos: [Referencia de asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Falta un campo obligatorio
### Lo Que Verás
La fila está resaltada en amarillo con la celda del campo obligatorio marcada.
### Qué significa
En esta fila, un campo obligatorio está vacío.
### Cómo solucionarlo
**Opción 1: ingresar un valor**
1. Haz clic en la celda vacía
2. Ingresa un valor
3. Continúa con la importación
**Opción 2: eliminar la fila**
1. Si no tienes los datos, haz clic en X para omitir la fila
### Cómo evitar este error
Antes de importar, identifica los campos obligatorios:
1. Ve a **Configuración → Modelo de datos**
2. Selecciona tu objeto
3. Comprueba qué campos están marcados como obligatorios
---
## Error: Relación no encontrada
### Lo Que Verás
Este error aparece **después de que comience la importación** — la importación falla con un mensaje como:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
Esto significa que no hay ninguna empresa en Twenty con ese identificador específico.
<Note>A diferencia de otros errores, este no se detecta durante el paso de revisión de datos. La importación comenzará y luego fallará cuando encuentre la relación faltante.</Note>
### Qué significa
Estás intentando vincular a un registro que no existe en Twenty.
### Cómo solucionarlo
**Opción 1: importar primero los registros padre**
1. Cancela la importación actual
2. Importa los registros padre (p. ej., Empresas)
3. Luego importa los registros hijo (p. ej., Personas)
**Opción 2: corrige el valor de la referencia**
1. Verifica el valor de la referencia en tu archivo
2. Asegúrate de que coincida exactamente con un registro existente
3. Verifica el formato: los dominios deben ser `https://domain.com`
**Opción 3: eliminar la relación**
1. Limpia la celda para importar sin la relación
2. Agrega la relación manualmente más tarde
### Cómo evitar este error
1. **Importa en el orden correcto:**
* Empresas primero
* Personas después (con referencias a empresa)
* Oportunidades en tercer lugar
2. **Verifica los valores de referencia:**
* Exporta los registros padre para obtener identificadores exactos
* Usa el formato de dominio `https://domain.com`
* Comprueba posibles errores tipográficos y diferencias entre mayúsculas y minúsculas
<Warning>
**La importación fallará si se hace referencia a un registro inexistente.**
Importa siempre los objetos padre antes que los objetos hijo.
</Warning>
Para más detalles: [Importar relaciones](/l/es/user-guide/data-migration/capabilities/import-relations)
---
## Error: Archivo demasiado grande
### Lo Que Verás
Este error aparece **al cargar tu archivo** — la carga se bloquea por completo:
```
Too many records. Up to 10000 allowed
```
No podrás continuar al paso de revisión de datos hasta que reduzcas el tamaño del archivo.
### Qué significa
Tu archivo tiene más de 10.000 registros.
### Cómo solucionarlo
**Opción 1: dividir en varios archivos**
1. Divide tus datos en archivos de 10.000 registros o menos
2. Importa cada archivo por separado
3. Mantén el orden de importación (Empresas antes que Personas)
**Opción 2: usar importación mediante API**
Para conjuntos de datos muy grandes, usa la API, que no tiene límite de registros.
Consulta: [Cómo importar datos mediante la API](/l/es/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Campo no reconocido
### Qué significa
No se puede asignar una columna de tu archivo porque el campo no existe en Twenty.
### Cómo solucionarlo
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto que estás importando
3. Haz clic en **+ Add field**
4. Crea el campo personalizado con el tipo adecuado
5. Vuelve a cargar tu archivo
<Note>La importación de CSV crea registros, no campos. Todos los campos deben existir antes de importar.</Note>
---
## Error: Relación de usuario vacía
### Qué significa
Estás intentando asignar un registro a un usuario (Propietario, Asignado) pero la relación no se está asignando.
### Causas comunes
1. **El usuario no ha aceptado su invitación** — el usuario aún no existe en Twenty
2. **Uso del ID de usuario del sistema anterior** — Twenty no puede hacer coincidir IDs de otro sistema
3. **Formato de correo electrónico incorrecto** — el correo no coincide con la cuenta del usuario en Twenty
### Cómo solucionarlo
1. Asegúrate de que todos los usuarios hayan **aceptado su invitación** a tu espacio de trabajo de Twenty
2. Usa la **dirección de correo electrónico** del usuario (no su nombre ni el ID del sistema anterior)
3. Usa el mismo correo que utilizaron para unirse a Twenty
<Warning>
**Los usuarios deben aceptar las invitaciones antes de importar.**
Si un usuario no ha aceptado su invitación, los registros que lo referencian tendrán relaciones de usuario vacías.
</Warning>
---
## Lista de verificación previa a la importación
Evita errores comprobando lo siguiente antes de importar:
### Requisitos del archivo
<Check>El archivo está en formato CSV, XLSX o XLS</Check>
<Check>El archivo tiene menos de 10.000 registros</Check>
<Check>El archivo usa codificación UTF-8</Check>
### Calidad de los datos
<Check>No hay correos duplicados (para Personas)</Check>
<Check>No hay dominios duplicados (para Empresas)</Check>
<Check>Todas las fechas usan un formato consistente</Check>
<Check>Todos los dominios usan el formato `https://domain.com`</Check>
### Formatos de campos
<Check>Los campos booleanos usan `TRUE` o `FALSE` (mayúsculas)</Check>
<Check>Los campos de selección usan nombres de API, no etiquetas visibles</Check>
<Check>Los campos de teléfono tienen todas las columnas obligatorias</Check>
<Check>Los campos de moneda tienen tanto Amount como Currency Code</Check>
### Relaciones
<Check>Registros padre importados antes que los registros hijo</Check>
<Check>Las columnas de relación hacen referencia a registros existentes</Check>
<Check>El formato de dominio coincide exactamente con el formato de Twenty</Check>
### Modelo de datos
<Check>Todos los campos personalizados existen en Configuración → Modelo de datos</Check>
<Check>Las opciones de selección existen antes de importar</Check>
---
## ¿Aún tienes problemas?
Si ya intentaste las soluciones anteriores:
1. **Descarga el archivo de ejemplo** — ve el formato exacto que espera Twenty
2. **Exporta los registros existentes** — compara tu archivo con datos correctos
3. **Prueba con un lote pequeño** — intenta primero con 5-10 filas
4. **Consulta los artículos de referencia:**
* [Referencia de asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping)
* [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Importar relaciones](/l/es/user-guide/data-migration/capabilities/import-relations)
* [Manejo de errores](/l/es/user-guide/data-migration/capabilities/error-handling)

View File

@@ -0,0 +1,201 @@
---
title: Importar empresas mediante CSV
description: Guía completa paso a paso para importar empresas en Twenty.
---
## Resumen
Esta guía te llevará paso a paso por el proceso de importar tus empresas en Twenty. **Las empresas deben importarse primero** porque Personas y Oportunidades se vinculan a Empresas.
## Antes de empezar
### Lista de verificación de requisitos previos
<Check>
Tu archivo está en formato CSV, XLSX o XLS
</Check>
<Check>
El archivo tiene menos de 10.000 registros
</Check>
<Check>
No hay dominios duplicados en tu archivo
</Check>
<Check>
Todos los campos personalizados existen en **Settings → Data Model**
</Check>
<Note>
¿Necesitas importar más de 10.000 empresas? Divídelo en varios archivos o usa la [importación por API](/l/es/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Paso 1: Preparar tus datos de empresa
### Campos obligatorios y recomendados
| Campo | ¿Obligatorio? | Formato | Notas |
| ------------------------- | ------------- | -------------------- | ---------------------------------- |
| **Name** | Recomendado | Texto | Nombre para mostrar de la empresa |
| **Dominio** | Recomendado | `https://domain.com` | Identificador único |
| **Dirección** | Opcional | Varias columnas | Consulta más abajo |
| **Empleados** | Opcional | Número | Número de empleados |
| **Campos personalizados** | Opcional | Varía | Debe existir en el modelo de datos |
### Formato de dominio
<Warning>
**Use el formato `https://domain.com` para dominios.**
Esto coincide con el formato utilizado cuando las Empresas se crean automáticamente a partir de la sincronización de correo/calendario, lo que evita duplicados posteriormente.
</Warning>
**Columnas de dominio:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Formato de dirección
Dirección es un campo anidado con varias columnas:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Estructura de CSV de ejemplo
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
Acme Corp,https://acme.com,acme.com,San Francisco,USA,250
Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Consejo profesional:** Haz clic en **Download sample file** durante la importación para ver los nombres de columna exactos que Twenty espera.
</Note>
## Paso 2: Acceder a la función de importación
**Opción 1: Desde la vista de Empresas**
1. Ve a **Empresas** en la barra lateral izquierda
2. Haz clic en el icono **⋮** en la parte superior derecha
3. Selecciona **Import records**
**Opción 2: Usando el menú de comandos**
1. Presiona `Cmd + K` (Mac) o `Ctrl + K` (Windows)
2. Escribe "import"
3. Selecciona **Import records**
4. Elige **Empresas**
## Paso 3: Cargar su archivo
1. Haz clic en **Select file**
2. Elige tu archivo CSV, XLSX o XLS
3. Espera a que Twenty analice tu archivo
## Paso 4: Asignar sus columnas
Twenty intenta automáticamente hacer coincidir sus columnas con los campos. Revisa y ajusta:
1. **Comprueba las asignaciones automáticas** — verifica que sean correctas
2. **Corrige las asignaciones incorrectas** — haz clic en la lista desplegable para seleccionar el campo correcto
3. **Omitir columnas** — selecciona **Do not map** para las columnas que no deseas importar
### Reglas importantes de asignación
* **Dominio**: Asigna a **Domain / Domain URL** (no a Domain Label)
* **Dirección**: Asigna cada parte a su columna específica (City, State, etc.)
* **Campos Select**: los valores deben coincidir con las opciones existentes (o los mapearás en el siguiente paso)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Paso 5: Mapea los valores de campos Select
Si tienes campos Select o Multi-Select:
1. Twenty muestra tus valores junto a las opciones existentes
2. Asocia cada valor de tu archivo con una opción de Twenty
3. O crea opciones nuevas si es necesario
<Note>
Las opciones de Select usan **nombres de API**, no las etiquetas visibles. Ve a **Settings → Data Model** → Activa el **Advanced mode** para ver los nombres de API.
</Note>
## Paso 6: Revisa y corrige errores
Antes de completar la importación, Twenty valida tus datos:
1. Haz clic en **Próximos Pasos**
2. Las filas con errores se resaltan en **amarillo**
3. **Corrige los errores directamente** — haz clic en una celda y edita el valor
4. **Elimina las filas problemáticas** — haz clic en la X para omitir esa fila
### Errores comunes al importar empresas
| Error | Causa | Solución |
| -------------------------------- | ------------------------------- | ----------------------------------------------------- |
| **Dominio duplicado** | El dominio ya existe en Twenty | Elimina del archivo o actualiza el registro existente |
| **Formato de dominio no válido** | Formato incorrecto | Usa `https://domain.com` |
| **Falta un campo obligatorio** | El campo obligatorio está vacío | Rellena el valor o elimina la fila |
## Paso 7: Completa la importación
1. Revisa el resumen de la importación
2. Haz clic en **Confirmar** para importar
3. Espera a que la importación finalice
4. Verifica revisando algunos registros
## Después de importar empresas
Ahora puedes importar registros que se vinculan a Empresas:
1. **[Importar Personas](/l/es/user-guide/data-migration/how-tos/import-contacts-via-csv)** — vincúlalas a Empresas usando el dominio
2. **Importa Oportunidades** — vincúlalas a Empresas
3. **Verifica la importación** — comprueba algunos registros para asegurarte de que los datos sean correctos
## Actualizar empresas existentes
Para actualizar empresas en lugar de crear nuevas:
1. Incluye la columna `domain` o `id` en tu archivo
2. Twenty hace coincidir los registros mediante este identificador único
3. Las empresas existentes se actualizan; las nuevas se crean
Consulta [Cómo actualizar registros existentes](/l/es/user-guide/data-migration/how-tos/update-existing-records-via-import) para más detalles.
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Por qué dos Empresas no pueden tener el mismo dominio?">
El dominio es un identificador único en Twenty. Esto evita empresas duplicadas y garantiza que la sincronización de correo vincule correctamente los correos con la empresa adecuada.
</Accordion>
<Accordion title="¿Qué pasa si tengo empresas sin dominio?">
Puedes dejar el dominio vacío. Sin embargo, recomendamos añadir dominios cuando sea posible para mejorar la calidad de los datos y el enlace automático de correos.
</Accordion>
<Accordion title="¿Puedo importar empresas sin ninguna Persona vinculada?">
¡Sí! Puede importar primero las empresas y, más tarde, importar Personas y vincularlas usando el dominio de la empresa.
</Accordion>
<Accordion title="¿Qué ocurre si importo un dominio que ya existe?">
Si incluye un identificador único (dominio o id) que coincida con una empresa existente, Twenty actualiza esa empresa en lugar de crear un duplicado.
</Accordion>
<Accordion title="¿Cómo soluciono los errores de 'dominio duplicado'?">
Elimine el duplicado de su archivo o incluya el `id` de la empresa para actualizar el registro existente en su lugar.
</Accordion>
</AccordionGroup>
## Solución de Problemas
¿Tiene problemas? Revise:
* [Cómo corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors)
* [Referencia de asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping)
* [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,242 @@
---
title: Importar contactos mediante CSV
description: Guía completa paso a paso para importar personas/contactos en Twenty.
---
## Resumen
Esta guía le llevará paso a paso por el proceso de importar sus contactos (Personas) en Twenty.
## Antes de empezar
### Lista de verificación de requisitos previos
<Check>
Su archivo está en formato CSV, XLSX o XLS
</Check>
<Check>
El archivo tiene menos de 10.000 registros
</Check>
<Check>
No hay direcciones de correo electrónico duplicadas en su archivo
</Check>
<Check>
**Empresas importadas primero** (si va a vincular Personas a Empresas)
</Check>
<Check>
Todos los campos personalizados existen en **Settings → Data Model**
</Check>
<Warning>
**Importe las Empresas antes que las Personas**
Si desea vincular Personas a Empresas, importe primero las Empresas. La Empresa debe existir antes de que pueda hacer referencia a ella.
</Warning>
## Paso 1: Preparar sus datos de contacto
### Campos obligatorios y recomendados
| Campo | ¿Obligatorio? | Formato | Notas |
| ------------------------- | ------------- | ----------------- | ---------------------------------- |
| **Correo Electrónico** | Recomendado | `name@domain.com` | Debe ser único |
| **Nombre** | Recomendado | Texto | |
| **Apellidos** | Recomendado | Texto | |
| **Empresa** | Opcional | Dominio o ID | Vincula a una Empresa existente |
| **Teléfono** | Opcional | Varias columnas | Vea más abajo |
| **Título del puesto** | Opcional | Texto | |
| **Campos personalizados** | Opcional | Varía | Debe existir en el modelo de datos |
### Formato de correo electrónico
* Debe tener un formato de correo electrónico válido: `name@domain.com`
* **Debe ser único** — sin duplicados en su archivo ni en Twenty
* Para correos electrónicos adicionales, use la columna **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Formato de teléfono
Teléfono es un **campo anidado** que requiere varias columnas:
| Columna | Ejemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Vincular con Empresas
Agregue una columna con el identificador único de la Empresa:
| Nombre de la columna | Formato | Ejemplo |
| -------------------- | -------------- | -------------------------------------- |
| `companyDomain` | Formato de URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use el formato de URL del dominio** (`https://acme.com`), no la etiqueta. Esto coincide con cómo se almacenan las Empresas en Twenty.
</Note>
### Estructura de CSV de ejemplo
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
John,Smith,john@acme.com,CEO,https://acme.com,4159095555,US
Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Consejo profesional:** Haga clic en **Download sample file** durante la importación o exporte algunas Personas existentes para ver los nombres de columna exactos que Twenty espera.
</Note>
## Paso 2: Acceder a la función de importación
**Opción 1: Desde la vista de Personas**
1. Vaya a **People** en la barra lateral izquierda
2. Haga clic en el icono **⋮** en la parte superior derecha
3. Seleccione **Import records**
**Opción 2: Usando el menú de comandos**
1. Presione `Cmd + K` (Mac) o `Ctrl + K` (Windows)
2. Escriba "import"
3. Seleccione **Import records**
4. Elija **People**
## Paso 3: Cargar su archivo
1. Haga clic en **Select file**
2. Elija su archivo CSV, XLSX o XLS
3. Espere a que Twenty analice su archivo
## Paso 4: Asignar sus columnas
Twenty intenta automáticamente hacer coincidir sus columnas con los campos. Revise y ajuste:
1. **Compruebe las asignaciones automáticas** — verifique que sean correctas
2. **Corrija las asignaciones incorrectas** — haga clic en la lista desplegable para seleccionar el campo correcto
3. **Omitir columnas** — seleccione **Do not map** para las columnas que no desea importar
### Reglas importantes de asignación
| Tipo de columna | Asignar a | Notas |
| -------------------------------- | ------------------------------ | ----------------------------------------- |
| Referencia de Empresa | Campo de relación **Company** | Use el dominio O el id, no ambos |
| Correo electrónico | **Correo Electrónico** | Dirección de correo electrónico principal |
| Correos electrónicos adicionales | **Emails / Additional Emails** | Formato de matriz |
| Teléfono | Columnas separadas | Número, código de país, código de llamada |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Asignar la relación Company
Al asignar la columna de empresa:
1. Encuentre su columna de referencia de empresa (p. ej., `companyDomain`)
2. Asígnela al campo de relación **Company**
3. Twenty vinculará cada Persona con la Empresa correspondiente
<Warning>
**Asigne solo UN identificador único para las relaciones.**
No mapees ambos `companyId` y `companyDomain`. Elige uno — preferiblemente el dominio, ya que es legible para humanos.
</Warning>
## Paso 5: Mapea los valores de campos Select
Si tienes campos Select o Multi-Select (como Fuente del lead):
1. Twenty muestra tus valores junto a las opciones existentes
2. Asocia cada valor de tu archivo con una opción de Twenty
3. O crea opciones nuevas si es necesario
<Note>
Las opciones de Select usan **nombres de API**, no las etiquetas visibles. Ve a **Settings → Data Model** → Activa el **Advanced mode** para ver los nombres de API.
</Note>
## Paso 6: Revisa y corrige errores
Antes de completar la importación, Twenty valida tus datos:
1. Haz clic en **Próximos Pasos**
2. Las filas con errores se resaltan en **amarillo**
3. **Corrige los errores directamente** — haz clic en una celda y edita el valor
4. **Elimina las filas problemáticas** — haz clic en la X para omitir esa fila
### Errores comunes al importar contactos
| Error | Causa | Solución |
| ------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------ |
| **Correo electrónico duplicado** | El correo electrónico ya existe en Twenty o en el archivo | Elimina el duplicado o actualiza el registro existente |
| **Formato de correo electrónico no válido** | Formato de correo electrónico incorrecto | Corrige a `name@domain.com` |
| **Relación no encontrada** | La Empresa no existe | Importa primero las Empresas o corrige la referencia |
| **Falta un campo obligatorio** | El campo obligatorio está vacío | Rellena el valor o elimina la fila |
## Paso 7: Completa la importación
1. Revisa el resumen de la importación
2. Haz clic en **Confirmar** para importar
3. Espera a que la importación finalice
4. Verifica revisando algunos registros y sus enlaces a la Empresa
## Después de importar contactos
¡Tus contactos ya están en Twenty! Próximos Pasos:
1. **Verifica los enlaces a la Empresa** — abre algunos registros de Personas para confirmar que están vinculados a la Empresa correcta
2. **Importa Oportunidades** — si es necesario, vincúlalas a Personas y Empresas
3. **Configura la sincronización del correo** — conecta tu buzón para ver el historial de correos en los registros de contacto
## Actualizar contactos existentes
Para actualizar contactos en lugar de crear nuevos:
1. Incluye la columna `email` o `id` en tu archivo
2. Twenty hace coincidir los registros mediante este identificador único
3. Los contactos existentes se actualizan; los nuevos se crean
Consulta [Cómo actualizar registros existentes](/l/es/user-guide/data-migration/how-tos/update-existing-records-via-import) para más detalles.
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Por qué dos Personas no pueden tener el mismo correo electrónico?">
El correo electrónico es un identificador único en Twenty. Esto evita contactos duplicados y garantiza que la sincronización de correo vincule correctamente los correos con la persona adecuada.
</Accordion>
<Accordion title="¿Qué pasa si tengo Personas sin correo electrónico?">
Puedes dejar el correo electrónico vacío. Sin embargo, recomendamos añadir correos electrónicos cuando sea posible para mejorar la calidad de los datos y la funcionalidad de sincronización del correo.
</Accordion>
<Accordion title="¿Cómo vinculo Personas con Empresas durante la importación?">
Añade una columna con el dominio de la Empresa (p. ej., `https://acme.com`) o el ID. Durante el mapeo, conecta esta columna al campo de relación de Empresa.
</Accordion>
<Accordion title="¿Qué pasa si la Empresa aún no existe?">
Importa primero las Empresas y luego las Personas. La Empresa debe existir antes de poder hacer referencia a ella.
</Accordion>
<Accordion title="¿Puedo importar el ID de mi CRM anterior?">
¡Sí! Crea un campo personalizado marcado como "unique" en tu modelo de datos para almacenar el ID externo. Nota: el nombre de campo `id` está reservado para el ID interno de Twenty.
</Accordion>
<Accordion title="¿Cómo soluciono los errores de 'relación no encontrada'?">
La Empresa a la que haces referencia no existe. Importa primero la Empresa o verifica que el dominio/ID coincida exactamente con una Empresa existente.
</Accordion>
</AccordionGroup>
## Solución de Problemas
¿Tienes problemas? Consulta:
* [Cómo corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors)
* [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referencia de mapeo de campos](/l/es/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,176 @@
---
title: Importar datos mediante la API
description: Cuándo y cómo usar las API de Twenty para importaciones de datos a gran escala.
---
## Resumen
Twenty ofrece tanto **GraphQL** como **API REST** para la importación programática de datos. Utiliza la API cuando la importación mediante CSV no sea práctica para tu volumen de datos o cuando necesites importaciones automatizadas y recurrentes.
## Cuándo usar la importación mediante API
| Escenario | Método recomendado |
| ---------------------------------- | -------------------------------------- |
| Menos de 10.000 registros | Importación CSV |
| 10.000 - 50.000 registros | Importación CSV (dividida en archivos) |
| **50.000+ registros** | **Importación mediante API** |
| Migración de una sola vez | Cualquiera (según el volumen) |
| **Importaciones recurrentes** | **Importación mediante API** |
| **Sincronización en tiempo real** | **Importación mediante API** |
| **Integración con otros sistemas** | **Importación mediante API** |
<Note>Para conjuntos de datos de cientos de miles, la API es significativamente más rápida y más fiable que múltiples importaciones CSV.</Note>
## Límites de tasa de la API
Twenty aplica límites de tasa para garantizar la estabilidad del sistema:
| Límite | Valor |
| --------------------------------- | ----------------------- |
| **Solicitudes por minuto** | 100 |
| **Registros por llamada en lote** | 60 |
| **Rendimiento máximo** | ~6.000 registros/minuto |
<Warning>
**Planifica tu importación en función de estos límites.**
Para 100.000 registros al rendimiento máximo, espera aproximadamente 17 minutos de tiempo de importación. Añade tiempo de margen para el manejo de errores y los reintentos.
</Warning>
## Primeros pasos
### Paso 1: Obtén tu clave de API
1. Ve a **Configuración → Desarrolladores**
2. Haz clic en **+ Crear clave de API**
3. Dale un nombre descriptivo a tu clave de API
4. Copia la clave de API inmediatamente (no se mostrará de nuevo)
5. Guárdala de forma segura
<Warning>
**Mantén en secreto tu clave de API.**
Cualquiera que tenga tu clave de API puede acceder y modificar los datos de tu espacio de trabajo. Nunca la subas a repositorios de código ni la compartas públicamente.
</Warning>
### Paso 2: Elige tu API
Twenty admite dos tipos de API:
| API | Ideal para | Documentación |
| ----------- | --------------------------------------------------------------------------- | ------------------------------------------------- |
| **GraphQL** | Consultas flexibles, obtención de datos relacionados, operaciones complejas | [Documentación de la API](/l/es/developers/extend/api) |
| **REST** | Operaciones CRUD simples, patrones REST familiares | [Documentación de la API](/l/es/developers/extend/api) |
Ambas APIs admiten:
* Crear, leer, actualizar y eliminar registros
* **Operaciones por lotes** — crear o actualizar hasta 60 registros por llamada
**Para las importaciones, usa operaciones por lotes** para maximizar el rendimiento dentro de los límites de tasa.
### Paso 3: Planifica el orden de importación
Al igual que en las importaciones CSV, **el orden importa** para las relaciones:
1. **Empresas** primero (sin dependencias)
2. **Personas** en segundo lugar (pueden vincularse a Empresas)
3. **Oportunidades** en tercer lugar (pueden vincularse a Empresas y Personas)
4. **Tareas/Notas** (pueden vincularse a cualquiera de las anteriores)
5. **Objetos personalizados** (siguiendo sus dependencias)
## Mejores prácticas
### Agrupa tus solicitudes
* No envíes los registros de uno en uno
* Agrupa hasta **60 registros por llamada a la API**
* Esto maximiza el rendimiento dentro de los límites de tasa
### Gestiona los límites de tasa
* Implementa retardos entre solicitudes (600 ms como mínimo para importaciones sostenidas)
* Usa backoff exponencial cuando alcances los límites
* Supervisa las respuestas 429 (Too Many Requests)
### Valida los datos primero
* Limpia y valida tus datos antes de importar
* Comprueba que los campos obligatorios estén completos
* Verifica que los formatos cumplan los requisitos de Twenty (consulta [Asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping))
### Registra todo
* Registra cada registro importado (incluidos los ID)
* Registra los errores con todo el contexto
* Esto ayuda a depurar problemas y verificar la finalización
### Prueba primero
* Prueba con un lote pequeño (10-20 registros)
* Verifica que los datos aparezcan correctamente en Twenty
* Luego ejecuta la importación completa
### Upsert para evitar duplicados
La API de GraphQL admite **upsert por lotes** — actualizar si el registro existe, crear si no. Esto evita duplicados al volver a ejecutar importaciones.
## Encontrar nombres de objetos y campos
Para ver los objetos y campos disponibles:
1. Ve a **Configuración → API y Webhooks**
2. Explora la **Metadata API**
3. Visualiza todos los objetos estándar y personalizados con sus campos
La documentación muestra todos los objetos estándar y personalizados, sus campos y los tipos de datos esperados.
## Servicios profesionales
Para migraciones complejas mediante API, nuestros socios pueden ayudar:
| Servicio | Qué incluye |
| ----------------------------------- | ---------------------------------------------- |
| **Diseño del modelo de datos** | diseñar tu estructura de datos óptima |
| **Scripts de migración** | escribir y ejecutar los scripts de importación |
| **Transformación de datos** | gestionar asignaciones complejas y limpieza |
| **Validación y control de calidad** | verificar que la migración esté completa |
**Ideal para:**
* Migraciones de más de 100.000 registros
* Transformaciones de datos complejas
* Plazos ajustados
* Equipos sin recursos de desarrollo
Contáctanos en [contact@twenty.com](mailto:contact@twenty.com) o explora nuestros [Servicios de implementación](/l/es/user-guide/getting-started/capabilities/implementation-services).
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Cuál es la diferencia entre GraphQL y REST?">
GraphQL te permite solicitar exactamente los datos que necesitas en una sola consulta y es mejor para operaciones complejas. REST utiliza métodos HTTP estándar (GET, POST, PUT, DELETE) y puede resultarte más familiar si has trabajado con APIs tradicionales.
</Accordion>
<Accordion title="¿Puedo actualizar registros existentes mediante la API?">
¡Sí! Usa mutaciones de actualización (GraphQL) o solicitudes PUT/PATCH (REST) con el `id` del registro.
</Accordion>
<Accordion title="¿Cómo gestiono los duplicados?">
Consulta primero si existen registros utilizando identificadores únicos (email, dominio). Actualiza si existe, crea si no.
</Accordion>
<Accordion title="¿Puedo eliminar registros mediante la API?">
Sí, usa mutaciones de eliminación (GraphQL) o solicitudes DELETE (REST).
</Accordion>
<Accordion title="¿Hay un SDK para Python o Node.js?">
Por el momento no, pero ambas APIs funcionan con cualquier cliente HTTP en cualquier lenguaje.
</Accordion>
</AccordionGroup>
## Documentación de la API
Para conocer todos los detalles de implementación, ejemplos de código y referencia de esquemas:
* [Documentación de la API](/l/es/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: Importar relaciones entre objetos mediante CSV
description: Guía completa paso a paso para vincular registros durante la importación de CSV.
---
## Resumen
Esta guía explica cómo importar relaciones entre objetos—por ejemplo, vincular Personas con Empresas u Oportunidades con Personas.
<Note>**Qué se puede importar:** Solo relaciones de uno a muchos que apunten a un único tipo de objeto. Las relaciones que apuntan a varios tipos de objeto (como Notas vinculadas a Personas Y Empresas) aún no son compatibles con la importación.</Note>
## Comprender las relaciones
### ¿Qué es una relación "de uno a muchos"?
En una relación de uno a muchos:
* **Una** Empresa tiene **muchas** Personas (empleados)
* **Una** Empresa tiene **muchas** Oportunidades
* **Una** Persona tiene **muchas** Tareas
El lado "uno" es el **padre**. El lado "muchos" es el **hijo**.
### Relaciones comunes en Twenty
| Relación | Lado "Uno" (Padre) | Lado "Muchos" (Hijo) |
| ------------------------ | ------------------ | -------------------- |
| Empresas → Personas | Empresa | Personas |
| Empresas → Oportunidades | Empresa | Oportunidades |
| Personas → Tareas | Persona | Tareas |
| Personas → Notas | Persona | Notas |
## Paso 1: Identificar los lados "Uno" y "Muchos"
Antes de importar, determine qué objeto es el padre y cuál es el hijo.
**Pregúntese:** "¿UNO [Objeto A] tiene MUCHOS [Objeto B]?"
* Una Empresa → Muchas Personas ✓ (la Empresa es el padre)
* Una Persona → Muchas Empresas ✗ (Esto es incorrecto: una persona pertenece a una sola empresa)
## Paso 2: Importar primero los registros padre
El padre (lado "uno") debe existir en Twenty antes de poder hacer referencia a él.
**Orden de importación:**
1. **Empresas** primero (sin dependencias)
2. **Personas** en segundo lugar (enlazadas a Empresas)
3. **Oportunidades** en tercer lugar (enlazadas a Empresas y/o Personas)
4. **Tareas/Notas** (enlazadas a cualquiera de las anteriores)
<Warning>
**Si el registro padre no existe, la importación fallará.**
Verifique siempre que las Empresas estén importadas antes de importar Personas con referencias a Empresas.
</Warning>
## Paso 3: Anotar el identificador único del padre
Debe hacer referencia al registro padre mediante un **identificador único**. Opciones disponibles:
| Objeto padre | Identificadores únicos disponibles |
| ----------------------------------- | ------------------------------------------------------------------------- |
| **Empresas** | `id` (UUID), `domain` (recomendado) o cualquier campo único personalizado |
| **Personas** | `id` (UUID), `email` o cualquier campo único personalizado |
| **Miembros del espacio de trabajo** | `id` (UUID), `email` (no el nombre) |
| **Objetos personalizados** | `id` (UUID) o cualquier campo marcado como único |
<Note>**Recomendado:** Use `domain` para Empresas y `email` para Personas. Son legibles para humanos y fáciles de verificar en su hoja de cálculo.</Note>
### Cómo encontrar el identificador
Si necesita el `id`:
1. Exporte los registros padre desde Twenty
2. La exportación incluye la columna `id`
3. Use estos IDs en su archivo de registros hijo
## Paso 4: Verificar que el campo de relación exista
Antes de importar, asegúrese de que exista el campo de relación entre sus objetos.
**Para revisar o crear:**
1. Vaya a **Configuración → Modelo de datos**
2. Seleccione su objeto hijo (p. ej., Personas)
3. Busque un campo de relación que apunte al padre (p. ej., Empresa)
4. Si no existe, créelo:
* Haga clic en **+ Add field**
* Seleccione el tipo **Relation**
* Elija el objeto padre
## Paso 5: Preparar su archivo CSV
Agregue una columna a su archivo CSV de registros hijo que haga referencia al padre utilizando su identificador único.
### Ejemplo: Personas vinculadas a Empresas
**Su CSV de Personas:**
```csv
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
La columna `companyDomain` hace referencia al dominio de la Empresa.
### Requisitos de formato
| Identificador | Formato | Ejemplo |
| ------------------ | --------------------------- | -------------------------------------- |
| Dominio | Formato de URL | `https://acme.com` |
| Correo electrónico | Correo electrónico estándar | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**¡El formato del dominio importa!**
Use `https://domain.com` (no solo `domain.com`). Esto coincide con cómo Twenty almacena los dominios de las Empresas y evita errores de coincidencia.
</Warning>
### Reglas importantes
1. **Se requiere coincidencia exacta** — el valor debe coincidir exactamente con el registro padre
2. **Asigne solo UN identificador único** — no incluya `companyId` Y `companyDomain`
3. **Sensible a mayúsculas/minúsculas** — `Acme.com` ≠ `acme.com`
## Paso 6: Cargar y asignar la relación
1. Vaya al objeto hijo (p. ej., Personas)
2. Haga clic en **⋮** → **Importar registros**
3. Cargue su archivo CSV
4. En el paso de asignación de campos:
* Encuentre su columna de relación (p. ej., `companyDomain`)
* Asígnela al campo de relación **Company**
5. Complete las asignaciones restantes
6. Revise los errores y confirme
Twenty vinculará automáticamente cada registro hijo con el padre correspondiente.
## Paso 7: Verificar la importación
Después de importar:
1. Abra algunos registros hijo (p. ej., Personas)
2. Verifique que el campo de relación muestre el padre correcto (p. ej., Empresa)
3. Abra un registro padre y revise la sección de registros relacionados
## Errores comunes que se deben evitar
| Error | Problema | Solución |
| ----------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------- |
| **Orden de importación incorrecto** | Importar Personas antes que Empresas | Importe siempre primero los padres y luego los hijos |
| **Formato de dominio incorrecto** | Usar `acme.com` en lugar de `https://acme.com` | Use el formato de URL completo con `https://` |
| **Varios campos únicos** | Asignar ambos `companyId` Y `companyDomain` | Asigne solo UN identificador único |
| **Falta el campo de relación** | El campo de relación no existe en el modelo de datos | Créelo en **Configuración → Modelo de datos** antes de importar |
| **Registros inexistentes** | El registro padre no existe en Twenty | Importe primero los registros padre o verifique si hay errores tipográficos |
| **Diferencia de mayúsculas y minúsculas** | `Acme.com` en el archivo pero `acme.com` en Twenty | Asegure una coincidencia exacta de mayúsculas y minúsculas |
## Vincular a miembros del espacio de trabajo
Al vincular a miembros del espacio de trabajo (su equipo):
* Use su **dirección de correo electrónico**, no su nombre
* Ejemplo: `owner@yourcompany.com`, no "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Qué pasa si mi registro padre no tiene dominio ni correo electrónico?">
Tiene dos opciones:
1. Use el `id` de Twenty (exporte los registros padre para obtener sus IDs)
2. Cree un campo único personalizado en su modelo de datos para almacenar un ID externo de su sistema anterior
</Accordion>
<Accordion title="¿Puedo actualizar relaciones en registros existentes?">
¡Sí! Incluya el identificador único del registro hijo (p. ej., `email` para Personas) y el nuevo valor de la relación. La importación actualizará la relación.
</Accordion>
<Accordion title="¿Puedo importar relaciones de muchos a muchos?">
Las relaciones de muchos a muchos aún no son compatibles con la importación. Está previsto para el primer semestre de 2026.
</Accordion>
<Accordion title="¿Puedo vincular a varios tipos de objeto (como Notas a Personas Y Empresas)?">
Las relaciones que apuntan a varios tipos de objeto aún no son compatibles con la importación/exportación. Esto está en nuestra hoja de ruta.
</Accordion>
<Accordion title="¿Qué ocurre si un registro padre no existe?">
La importación mostrará un error para esa fila. Puedes hacerlo de las siguientes maneras:
* Importe el registro padre primero y luego vuelva a importar
* Corrija el valor de la referencia
* Elimine la fila de la importación
</Accordion>
<Accordion title="¿Por qué mi relación no se vincula correctamente?">
Causas comunes:
* Formato incorrecto (use `https://domain.com` para dominios)
* Diferencia de mayúsculas y minúsculas (verifique la ortografía exacta)
* El padre no existe (importe primero los padres)
* Asignar varios identificadores (use solo uno)
</Accordion>
</AccordionGroup>
<Warning>
**Recuerde: los registros eliminados lógicamente cuentan para la unicidad.**
Si recibe errores de "no encontrado" pero el registro parece existir, consulte Menú de comandos → Ver registros eliminados. Es posible que el padre haya sido eliminado lógicamente.
</Warning>
## Solución de Problemas
¿Tiene problemas? Revise:
* [Cómo corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors)
* [Capacidades de importación de relaciones](/l/es/user-guide/data-migration/capabilities/import-relations)
* [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,289 @@
---
title: Migración desde otros CRM
description: Guía paso a paso para migrar tus datos desde cualquier CRM a Twenty.
---
## Resumen
Esta guía te lleva paso a paso para migrar tus datos desde cualquier CRM a Twenty. El proceso implica auditar tus datos, preparar tu espacio de trabajo de Twenty, exportar desde tu sistema actual e importar en Twenty.
<Note>Las vistas, los flujos de trabajo y los permisos deben recrearse manualmente después de la migración. Planifica tiempo para este trabajo de configuración.</Note>
## Paso 1: Audita tus datos actuales
La migración es una oportunidad para un nuevo comienzo. No migres datos innecesarios.
**Qué conservar:**
* Contactos y empresas activos
* Oportunidades y negocios abiertos
* Notas y actividades importantes
* Campos personalizados que realmente usas
**Qué dejar atrás:**
* Contactos obsoletos (sin actividad en 2 o más años)
* Registros duplicados
* Datos de prueba
* Campos personalizados no utilizados
## Paso 2: Mapea tu modelo de datos
Crea un documento de mapeo entre tu CRM actual y Twenty:
| Tu CRM | Twenty |
| --------------------- | ------------------------ |
| Cuenta / Organización | **Empresa** |
| Contacto / Persona | **Personas** |
| Negocio / Oportunidad | **Oportunidad** |
| Actividad | **Tarea** o **Nota** |
| Objeto personalizado | **Objeto personalizado** |
**Para cada campo, documenta:**
* El nombre del campo de origen
* El campo de destino en Twenty
* Cualquier transformación de formato necesaria (fechas, números de teléfono, etc.)
<Note>Mantén este documento de asignación a mano durante la importación—lo consultarás al asignar columnas.</Note>
## Paso 3: Configura tu espacio de trabajo en Twenty
Antes de importar datos, prepara tu espacio de trabajo en Twenty:
### Crea objetos y campos personalizados
1. Ve a **Configuración → Modelo de datos**
2. Crea los objetos personalizados que necesites
3. Añade campos personalizados a los objetos estándar y personalizados
4. Configura los ajustes de los campos (único, obligatorio, opciones de selección, etc.)
<Warning>
**Los campos deben existir antes de la importación.**
La importación de CSV crea registros, no campos. Crea todos los campos personalizados en Configuración → Modelo de datos antes de importar.
</Warning>
### Invita a tu equipo
<Warning>
**Invita a los usuarios ANTES de importar datos.**
Si tus datos incluyen referencias a usuarios (propietario de la cuenta, asignado, etc.), esos usuarios deben existir en Twenty antes de la importación. De lo contrario, esas relaciones no se podrán asignar.
</Warning>
1. Ir a **Ajustes → Miembros**
2. Invita a todos los miembros del equipo
3. **Espera a que todos acepten** su invitación
4. Verifica que todos los usuarios aparezcan en tu lista de miembros
## Paso 4: Exporta desde tu CRM actual
Exporta tus datos desde tu CRM actual:
1. Busca una función de **Exportar** (generalmente en Configuración, Gestión de datos o Administración)
2. Exporta al **formato CSV** cuando sea posible
3. Exporta cada tipo de objeto por separado (Empresas, Contactos, Negocios, etc.)
4. Incluye todos los campos que quieras migrar
**Exporta estos objetos (en este orden como referencia):**
1. Empresas / Cuentas / Organizaciones
2. Contactos / Personas
3. Negocios / Oportunidades
4. Notas y actividades
5. Objetos personalizados
## Paso 5: Limpia y da formato a tus datos
Abre cada CSV exportado en una aplicación de hojas de cálculo y prepáralo para Twenty.
### Elimina duplicados
1. Ordena por el campo único (correo electrónico para Personas, dominio para Empresas)
2. Elimina o combina filas duplicadas
3. Verifica que no existan duplicados ya en Twenty
### Da formato a los campos correctamente
| Tipo de campo | Formato requerido |
| ----------------------- | -------------------------------------------------------- |
| **Dominio** | `https://domain.com` |
| **Correo Electrónico** | `name@domain.com` (debe ser único) |
| **Fecha** | `YYYY-MM-DD` |
| **Teléfono** | Tres columnas: número, código de país, código de llamada |
| **Booleano** | `TRUE` o `FALSE` (mayúsculas) |
| **Campos de selección** | Usa nombres de API, no etiquetas visibles |
<Warning>
**El formato del dominio es fundamental.**
Usa `https://domain.com` (no `domain.com` ni `www.domain.com`). Esto coincide con el formato de Twenty y evita duplicados cuando conectas la sincronización de correo/calendario.
</Warning>
Consulta [Cómo preparar tus archivos CSV](/l/es/user-guide/data-migration/how-tos/prepare-your-csv-files) para conocer los requisitos de formato completos para todos los tipos de campos.
### Añade columnas de relación
Para vincular registros (p. ej., Personas con Empresas), añade una columna con el identificador único del registro padre.
**Ejemplo: CSV de Personas con vínculo a Empresa**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
Consulta [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para obtener instrucciones detalladas sobre cómo vincular registros.
### Actualiza las referencias de usuario
Si tus datos incluyen asignaciones de usuarios (propietario, asignado):
1. Añade una columna con el **correo electrónico del usuario** (no solo su ID del sistema anterior)
2. Usa las mismas direcciones de correo electrónico que los usuarios utilizaron para unirse a tu espacio de trabajo en Twenty
Consulta [Cómo preparar tus archivos CSV](/l/es/user-guide/data-migration/how-tos/prepare-your-csv-files) para obtener la guía de formato completa.
## Paso 6: Importa a Twenty
<Warning>
**¡El orden de importación importa!**
Importa siempre en este orden:
1. **Empresas** primero (sin dependencias)
2. **Personas** en segundo lugar (enlazadas a Empresas)
3. **Oportunidades** en tercer lugar (enlazadas a Empresas/Personas)
4. **Notas y Tareas** (enlazadas a registros)
5. **Objetos personalizados** siguiendo sus dependencias
El registro padre debe existir antes de que puedas hacer referencia a él.
</Warning>
### Importa cada objeto
Para cada archivo CSV, en orden:
1. Navega hasta el objeto en Twenty
2. Haz clic en **⋮ → Importar registros**
3. Sube el archivo CSV
4. Asocia las columnas a los campos:
* Asocia las columnas de correo electrónico de usuario a los campos de relación correspondientes
* Asocia las columnas de relación (como `companyDomain`) a los campos de relación
5. Revisa y corrige cualquier error en la interfaz
6. Confirma la importación
7. Verifica algunos registros antes de continuar con el siguiente archivo
**Guías detalladas:**
* [Cómo importar Empresas](/l/es/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Cómo importar Contactos](/l/es/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Paso 7: Migraciones grandes (50.000+ registros)
Para migraciones grandes:
| Volumen | Enfoque recomendado |
| ------------------------- | ------------------------------- |
| Menos de 10.000 registros | Importación en un único CSV |
| 10.000 - 50.000 registros | Divídelo en varios archivos CSV |
| 50.000+ registros | Usa la API |
**Para importaciones mediante la API:**
* Más rápido y fiable para conjuntos de datos grandes
* Admite operaciones por lotes (hasta 60 registros por llamada)
* Consulta [Cómo importar datos mediante la API](/l/es/user-guide/data-migration/how-tos/import-data-via-api)
## Paso 8: Configuración posterior a la migración
Después de importar los datos, completa la configuración de tu espacio de trabajo:
### Recrea las vistas
* Configura vistas guardadas con filtros, ordenaciones y configuraciones de columnas
* Crea cualquier vista de kanban o calendario que necesites
### Recrear flujos de trabajo
* Vuelve a crear tus automatizaciones en **Configuración → Flujos de trabajo**
* Empieza por los flujos de trabajo más críticos
* Prueba cada uno antes de depender de él
### Configura roles y permisos
* Configura los roles en **Configuración → Miembros → Roles**
* Asigna a los usuarios a los roles adecuados
### Conecta el correo electrónico y el calendario
* Cada usuario conecta su propia cuenta en **Configuración → Cuentas**
* Twenty comenzará a sincronizar los correos electrónicos con los registros de contactos
* Consulta [Correo y calendario](/l/es/user-guide/calendar-emails/overview)
### Capacita a tu equipo
* Recorran juntos la nueva interfaz
* Documenta cualquier proceso específico del equipo
## Problemas Comunes y Soluciones
| Problema | Causa | Solución |
| ---------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **Errores de duplicados** | El correo electrónico/dominio ya existe | Elimina los duplicados del archivo o incluye un identificador único para actualizar los registros existentes |
| **Relación no encontrada** | El registro padre no existe | Importa primero los objetos padre (Empresas antes que Personas) |
| **Campos faltantes** | El campo personalizado no existe | Crea el campo en Configuración → Modelo de datos antes de importar |
| **Errores en campos de selección** | Uso de etiquetas visibles | Usa los nombres de la API (habilita el modo Avanzado en Configuración para encontrarlos) |
| **Relación de usuario vacía** | El usuario no ha aceptado la invitación | Asegúrate de que todos los usuarios acepten las invitaciones antes de importar |
Consulta [Cómo corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors) para obtener pasos detallados de solución de problemas.
## Lista de verificación post-migración
### Integridad de los datos
<Check>Todos los registros importados (compara los recuentos con el sistema de origen)</Check>
<Check>Relaciones funcionando correctamente (Personas vinculadas a Empresas)</Check>
<Check>Asignaciones de usuario correctas (Propietario, Asignado)</Check>
<Check>Campos personalizados completados</Check>
<Check>Sin duplicados inesperados</Check>
### Configuración
<Check>Vistas recreadas</Check>
<Check>Flujos de trabajo recreados y probados</Check>
<Check>Roles y permisos configurados</Check>
<Check>Sincronización de correo/calendario conectada</Check>
### Preparación del equipo
<Check>Equipo capacitado en el nuevo sistema</Check>
<Check>Plan de acceso al CRM antiguo decidido (¿mantenerlo como referencia? ¿Cuándo deshabilitarlo?)</Check>
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Puedo migrar los flujos de trabajo automáticamente?">
Actualmente no. Los flujos de trabajo deben recrearse manualmente en Twenty.
</Accordion>
<Accordion title="¿Qué pasa con los archivos adjuntos?">
Los archivos adjuntos no están incluidos en las exportaciones CSV. Necesitarás volver a subirlos manualmente, migrarlos mediante la API o contactar con nuestro equipo para obtener asistencia.
</Accordion>
<Accordion title="¿Puedo mantener ambos sistemas en funcionamiento durante la migración?">
Sí, recomendamos mantener tu CRM antiguo en funcionamiento hasta que hayas verificado que la migración está completa. Solo ten cuidado de no crear datos nuevos en ambos lugares.
</Accordion>
<Accordion title="¿Cuánto tiempo suele llevar la migración?">
Depende del volumen y la complejidad de los datos. Las migraciones pequeñas (menos de 10.000 registros) pueden realizarse en unas pocas horas. Las migraciones grandes pueden llevar varios días, incluyendo la limpieza de datos y las pruebas.
</Accordion>
</AccordionGroup>
## ¿Necesitas Ayuda?
<Tip>
¿Quieres ayuda con tu migración? [Encuentra un Veinte socio certificado](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) para mover tus datos, tuberías y usuarios de extremo a extremo.
</Tip>

View File

@@ -0,0 +1,173 @@
---
title: Migración de autogestionado a la nube
description: Guía paso a paso para migrar tu instancia autogestionada de Twenty a Twenty Cloud.
---
## Resumen
Esta guía te acompaña en la migración de tus datos desde una instancia autogestionada de Twenty a Twenty Cloud. El proceso implica configurar tu espacio de trabajo en la nube, exportar tus datos y volver a importarlos.
<Note>Las vistas, los flujos de trabajo y los roles deben recrearse manualmente después de la migración. Planifica tiempo para este trabajo de configuración.</Note>
## Paso 1: Crea tu espacio de trabajo en la nube
1. Ve a [app.twenty.com](https://app.twenty.com) y crea un nuevo espacio de trabajo
2. Completa el asistente de configuración inicial
3. Anota la URL de tu nuevo espacio de trabajo
## Paso 2: Recrea tu modelo de datos
Antes de importar datos, recrea tus objetos y campos personalizados:
1. Ve a **Ajustes → Modelo de datos** en tu instancia en la nube
2. Crea objetos personalizados que coincidan con tu configuración autogestionada
3. Añade campos personalizados a los objetos estándar y personalizados
4. Configura los ajustes de los campos (único, obligatorio, etc.)
<Note>Toma capturas de pantalla de tu modelo de datos autogestionado como referencia, o mantén ambas instancias abiertas en paralelo.</Note>
## Paso 3: Invita a todos los usuarios
<Warning>
**Importante: invita a los usuarios ANTES de importar datos.**
Los usuarios deben aceptar sus invitaciones antes de que importes cualquier registro que los referencie (como los campos de propietario de la cuenta). Si los usuarios aún no existen, esas relaciones no se podrán mapear.
</Warning>
1. Ve a **Ajustes → Miembros** en tu instancia en la nube
2. Invita a todos los miembros del equipo que tenían cuentas en la instancia autogestionada
3. **Espera a que todos acepten** su invitación
4. Verifica que todos los usuarios aparezcan en tu lista de Miembros
## Paso 4: Exporta datos desde la instancia autogestionada
Exporta cada objeto desde tu instancia autogestionada:
1. Navega a cada objeto (Empresas, Personas, Oportunidades, etc.)
2. Configura la vista para mostrar **todas las columnas** que quieres migrar
3. Haz clic en **⋮ → Exportar vista**
4. Guarda cada archivo CSV con un nombre claro (p. ej., `companies-export.csv`)
**Exporta en este orden** (como referencia al importar):
1. Empresas
2. Personas
3. Oportunidades
4. Objetos personalizados (siguiendo sus dependencias)
5. Tareas, Notas
## Paso 5: Actualiza las referencias a miembros del espacio de trabajo
Los CSV exportados contienen IDs de usuario de tu instancia autogestionada. Estos ID no coincidirán con tu instancia en la nube, por lo que debes reemplazarlos por correos electrónicos.
**Para cada archivo CSV con referencias a usuarios (propietario, asignado, etc.):**
1. Abre el CSV en una aplicación de hojas de cálculo
2. Añade una nueva columna junto a cada columna de ID de usuario (p. ej., `accountOwnerEmail` junto a `accountOwnerId`)
3. Rellena la **dirección de correo electrónico** de cada usuario
4. Puedes eliminar la columna de ID antigua o dejarla (se omitirá durante la importación)
**Ejemplo:**
Antes:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
Después:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>Usa las mismas direcciones de correo electrónico que los usuarios usaron para aceptar la invitación a su espacio de trabajo en la nube.</Note>
## Paso 6: Planifica el orden de importación
Importa los archivos en el orden correcto para mantener las relaciones:
1. **Empresas** primero (sin dependencias)
2. **Personas** en segundo lugar (enlazadas a Empresas)
3. **Oportunidades** en tercer lugar (enlazadas a Empresas y Personas)
4. **Objetos personalizados** (siguiendo sus dependencias)
5. **Tareas y Notas** al final (enlazadas a otros registros)
Consulta [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para obtener detalles sobre cómo mantener las relaciones.
## Paso 7: Importa a la nube
Para cada archivo CSV, en orden:
1. Navega al objeto en tu instancia en la nube
2. Haz clic en **⋮ → Importar registros**
3. Sube el archivo CSV
4. Asocia las columnas a los campos:
* Asocia las columnas de correo electrónico de usuario a los campos de relación correspondientes
* Asocia las demás columnas como de costumbre
5. Revisa y corrige cualquier error
6. Confirma la importación
7. Verifica algunos registros antes de continuar con el siguiente archivo
## Paso 8: Recrea la configuración
Después de importar los datos, recrea manualmente:
### Vistas
* Recrea las vistas guardadas con filtros, ordenaciones y configuraciones de columnas
* Configura cualquier vista de kanban o calendario
### Flujos de trabajo
* Recrea automatizaciones en **Ajustes → Flujos de trabajo**
* Prueba cada flujo de trabajo antes de depender de él
### Roles y permisos
* Configura los roles en **Configuración → Miembros → Roles**
* Asigna a los usuarios a los roles adecuados
### Integraciones
* Vuelve a conectar la sincronización de correo y calendario para cada usuario
* Reconfigura cualquier integración de API con nuevas claves de API
## Lista de verificación post-migración
<Check>Todos los datos se importaron correctamente</Check>
<Check>Las relaciones entre objetos funcionan correctamente</Check>
<Check>Las asignaciones de usuarios (propietario, asignado) se mapearon correctamente</Check>
<Check>Vistas recreadas</Check>
<Check>Flujos de trabajo recreados y probados</Check>
<Check>Roles y permisos configurados</Check>
<Check>Sincronización de correo/calendario reconectada</Check>
<Check>Integraciones de API actualizadas con nuevas claves</Check>
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Puedo migrar los flujos de trabajo automáticamente?">
Actualmente no. Los flujos de trabajo deben recrearse manualmente en tu instancia en la nube.
</Accordion>
<Accordion title="¿Qué pasa con los archivos adjuntos e imágenes?">
Los archivos adjuntos no están incluidos en las exportaciones CSV. Necesitarás volver a subir los archivos adjuntos manualmente, migrarlos mediante la API o contactar con nuestro equipo para obtener ayuda con migraciones grandes.
</Accordion>
<Accordion title="¿Puedo mantener ambas instancias en funcionamiento durante la migración?">
Sí, recomendamos mantener tu instancia autogestionada en funcionamiento hasta que hayas verificado que la migración a la nube está completa. Solo ten cuidado de no crear datos nuevos en ambos lugares.
</Accordion>
<Accordion title="¿Qué pasa si un usuario aún no ha aceptado su invitación?">
Los registros que hagan referencia a ese usuario fallarán al importar o la relación quedará vacía. Asegúrate de que todos los usuarios acepten las invitaciones antes de importar datos.
</Accordion>
</AccordionGroup>
## ¿Necesitas Ayuda?
<Tip>
¿Estás migrando un espacio de trabajo grande o complejo? [Encuentra un partner certificado de Twenty](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud) para encargarse de la migración de principio a fin. *(O involucra a nuestro equipo: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: Prepara tus archivos CSV
description: Guía completa paso a paso para dar formato a tus datos para importarlos en Twenty.
---
## Resumen
Esta guía te explica cómo preparar tu archivo CSV para una importación exitosa. Sigue estos pasos para evitar errores.
## Paso 1: Comprueba los requisitos del archivo
Antes de empezar, asegúrate de que tu archivo cumpla estos requisitos:
| Requisito | Detalles |
| -------------------- | ----------------------------- |
| **Formato** | CSV, XLSX o XLS |
| **Límite de tamaño** | 10.000 registros por archivo |
| **Codificación** | Se recomienda UTF-8 |
| **Estructura** | Un tipo de objeto por archivo |
<Note>Para conjuntos de datos de más de 10.000 registros, divídelos en varios archivos o usa la [importación por API](/l/es/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Paso 2: Descarga el archivo de ejemplo
**Este es el paso más importante.** El archivo de ejemplo te muestra los nombres de columna y el formato exactos que Twenty espera.
1. Ve a la vista del objeto (Personas, Empresas, etc.)
2. Haz clic en **⋮** → **Importar registros**
3. Haz clic en **Descargar archivo de ejemplo**
4. Utiliza este archivo como plantilla
<Note>**Consejo práctico:** En su lugar, exporta algunos registros existentes. Esto te proporciona ejemplos reales de cómo debe darse formato a los datos, y los nombres de las columnas se asignarán automáticamente durante la importación.</Note>
## Paso 3: Eliminar valores duplicados
Twenty exige unicidad en determinados campos. Los duplicados provocarán errores de importación.
| Objeto | Campos únicos |
| -------------------------- | ------------------------------------------------------------ |
| **Personas** | `id`, `email` |
| **Empresas** | `id`, `domain` |
| **Objetos personalizados** | `id`, además de cualquier campo que hayas marcado como único |
**Antes de importar:**
1. Ordena tu hoja de cálculo por el campo único (correo electrónico o dominio)
2. Elimina o fusiona las filas duplicadas
3. Comprueba si hay duplicados que ya existan en Twenty
<Warning>**Los registros eliminados lógicamente cuentan para la unicidad.** Los registros en Menú de comandos → Ver registros eliminados provocarán errores de duplicados. Elimínalos de forma permanente o restáuralos y actualízalos.</Warning>
## Paso 4: Formatea correctamente cada tipo de campo
Los distintos tipos de campos requieren formatos específicos. Aquí tienes la referencia completa:
### Campos de texto
* No se requiere un formato especial
* Los espacios iniciales y finales se eliminan automáticamente
### Campos de correo electrónico
* Debe tener un formato de correo electrónico válido: `name@domain.com`
* Debe ser único (sin duplicados en el archivo ni en Twenty)
* Para correos electrónicos adicionales, utiliza este formato en la columna **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Campos de dominio
* **Formato recomendado**: `https://domain.com`
* Esto coincide con el formato usado por la sincronización del buzón/calendario (evita duplicados)
* Rellena ambas columnas:
* **Domain / Domain Label**: `domain.com`
* **Domain / Domain URL**: `https://domain.com`
* Debe ser único dentro de tu archivo y en Twenty
### Campos de teléfono
El campo de teléfono es un **campo anidado** que requiere varias columnas:
| Columna | Ejemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Campos de dirección
Dirección es un **campo anidado** con varias columnas (algunas pueden dejarse en blanco):
* **Dirección / Dirección 1**: Línea 1 de la dirección
* **Dirección / Dirección 2**: Línea 2 de la dirección (opcional)
* **Dirección / Ciudad**: Nombre de la ciudad
* **Dirección / Estado**: Estado o provincia
* **Dirección / País**: Nombre del país
* **Dirección / Código postal**: Código postal/ZIP
### Campos de fecha
Usa un formato coherente en todo tu archivo:
* `YYYY-MM-DD` (recomendado): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### Campos numéricos
* Solo números (sin texto)
* Usa punto para decimales: `1234.56`
* Sin separadores de miles (no `1,234.56`)
### Campos de moneda
Moneda es un **campo anidado** que requiere dos columnas que **ambas deben completarse**:
| Columna | Ejemplo |
| --------------------- | --------- |
| **Importe / Importe** | `1234.56` |
| **Importe / Moneda** | `USD` |
### Campos booleanos
Usa mayúsculas: `TRUE` o `FALSE`
<Warning>Las minúsculas `true` o `false` no funcionarán.</Warning>
### Campos de Selección
Usa el **nombre de la API** de la opción, no la etiqueta visible.
**Cómo encontrar los nombres de la API:**
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto y el campo
3. Activa el **modo Avanzado** (conmutador en la parte inferior derecha)
4. Copia el nombre de la API (p. ej., `OPTION_1`, no "Option 1")
<Note>Las nuevas opciones de selección no se crean automáticamente. Agrégalas en **Configuración → Modelo de datos** antes de importar.</Note>
### Campos de selección múltiple
Usa nombres de API en formato de arreglo:
```
["VALUE1","VALUE2"]
```
### Campos de arreglo
Usa el formato de arreglo JSON:
```
["value1","value2"]
```
### Campos de calificación
Usa el formato: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` o `RATING_5`
### Campos de enlaces/URL
Completa ambas columnas:
* **Enlaces / Etiqueta del enlace**: `Twenty`
* **Enlaces / URL del enlace**: `https://twenty.com`
Para enlaces secundarios, usa la columna **Enlaces / Enlaces secundarios**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Campos JSON
Usa un formato JSON válido:
```
{"key":"value","key2":"value2"}
```
### Campos de ID
* **Opcional**: Twenty genera IDs automáticamente si no se proporcionan
* **Formato**: UUID (p. ej., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Caso de uso**: Incluye el ID para actualizar registros existentes en lugar de crear nuevos
## Paso 5: Agrega columnas de relación (si se vinculan registros)
Para vincular registros con otros objetos (p. ej., Personas con Empresas), agrega una columna con el identificador único del registro relacionado.
**Ejemplo**: Vincular Personas con Empresas
Agrega una columna a tu CSV de Personas:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Reglas importantes para las relaciones:**
* El registro padre debe existir previamente en Twenty
* Usa el formato de **URL de dominio** (`https://domain.com`), no la etiqueta
* Mapea solo UN identificador único (no incluyas `companyId` Y `companyDomain`)
* Para los miembros del espacio de trabajo, usa su **email** (no el nombre)
<Warning>
**¡El orden de importación importa!**
Importa el lado "uno" antes del lado "muchos":
1. **Empresas** primero
2. **Personas** después (con referencia a la empresa)
3. **Oportunidades** en tercer lugar
El registro padre debe existir antes de poder referenciarlo.
</Warning>
Consulta [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para obtener instrucciones detalladas.
## Paso 6: Asegúrate de que los campos existan en Twenty
La importación crea **registros**, no **campos**. Todos los campos que quieras importar deben existir ya en tu modelo de datos.
**Antes de importar:**
1. Ve a **Configuración → Modelo de datos**
2. Selecciona tu objeto
3. Crea los campos personalizados que necesites
4. Anota los nombres exactos de los campos (deben coincidir con los encabezados de tus columnas)
## Paso 7: Lista de comprobación final
Antes de subir tu archivo, verifica:
<Check>El archivo está en formato CSV, XLSX o XLS</Check>
<Check>El archivo tiene menos de 10,000 registros</Check>
<Check>La codificación es UTF-8</Check>
<Check>No hay correos electrónicos duplicados (para Personas) ni dominios duplicados (para Empresas)</Check>
<Check>Las fechas usan un formato coherente en todo el archivo</Check>
<Check>Los dominios usan el formato `https://domain.com`</Check>
<Check>Los campos booleanos usan `TRUE` o `FALSE` (en mayúsculas)</Check>
<Check>Los campos de selección usan nombres de API, no etiquetas visibles</Check>
<Check>Todos los campos personalizados existen en Configuración → Modelo de datos</Check>
<Check>Los registros padre importados antes que los registros hijo</Check>
<Check>Las columnas de relación hacen referencia a registros existentes</Check>
## Errores comunes a evitar
| Error | Solución |
| ------------------------------------------------- | ----------------------------------------------- |
| Usar `true` en lugar de `TRUE` | Los valores booleanos deben estar en mayúsculas |
| Usar etiquetas visibles para campos de selección | Busca y usa los nombres de API en Configuración |
| Importar Personas antes que Empresas | Importa siempre primero los objetos padre |
| Falta el código de moneda en los campos de moneda | Completa las columnas de Importe y Moneda |
| Formato de dominio incorrecto | Usa `https://domain.com` de forma coherente |
| Mapear varios campos únicos para las relaciones | Mapea solo UNO (dominio O ID, no ambos) |
## Próximos Pasos
¡Tu archivo está listo! Ahora:
* [Importar empresas](/l/es/user-guide/data-migration/how-tos/import-companies-via-csv) (importa estas primero)
* [Importar contactos](/l/es/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
title: Actualizar registros existentes mediante la importación
description: Guía completa paso a paso para actualizar registros en masa mediante la importación de CSV.
---
## Resumen
¿Necesita actualizar muchos registros a la vez? En lugar de editarlos uno por uno, use la importación de CSV para actualizar en masa los registros existentes.
**Casos de uso:**
* Actualizar cargos para varias personas
* Cambiar información de empresas en masa
* Añadir datos a nuevos campos personalizados
* Corregir errores de datos en muchos registros
## Cómo Funciona
Cuando importa un archivo que contiene un **identificador único** que coincide con un registro existente, Twenty actualiza ese registro en lugar de crear un duplicado.
| Si el identificador único... | Twenty hará... |
| ---------------------------------- | ------------------------------------------------- |
| Coincide con un registro existente | **Actualizar** el registro existente |
| No coincide con ningún registro | **Crear** un nuevo registro |
| Falta en su archivo | **Crear** un nuevo registro (con ID autogenerado) |
<Warning>
**Los campos de selección múltiple se sobrescriben, no se combinan.**
Si un registro tiene `Option A` y `Option B` seleccionadas, y usted importa `["Option C"]`, el registro solo tendrá `Option C` después de la importación. La importación reemplaza todas las selecciones anteriores—no las agrega.
Para conservar los valores existentes, inclúyalos todos en su importación: `["Option A","Option B","Option C"]`
</Warning>
## Paso 1: Exporte sus datos actuales
Primero, exporte los registros que desea actualizar:
1. Navegue al objeto (Personas, Empresas, etc.)
2. **Agregue las columnas que necesita** — haga clic en **Opciones → Campos** para mostrar los campos que desea actualizar
3. **Filtre si es necesario** — limite a solo los registros que desea actualizar
4. Haga clic en **⋮** → **Exportar vista**
5. Guarde el archivo CSV
<Note>**¿Por qué exportar primero?** El archivo exportado tiene el formato correcto, incluye identificadores únicos y se asigna automáticamente durante la importación.</Note>
### Qué se exporta
* Todas las columnas visibles en su vista actual
* Los identificadores únicos del registro (`id`, `email`, `domain`)
* Valores de los campos actuales que puede modificar
## Paso 2: Edite el archivo CSV
Abra el archivo exportado en su aplicación de hoja de cálculo (Excel, Google Sheets, etc.):
1. **Conserve la columna del identificador único** — no elimine `id`, `email` ni `domain`
2. **Actualice los valores** en las columnas que desea cambiar
3. **Elimine las columnas que no necesita actualizar** (opcional, pero más limpio)
4. **No cambie los valores del identificador único** — o Twenty creará nuevos registros
### Ejemplo: Actualizar cargos
**Archivo exportado:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Sales Rep
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Sales Rep
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**Después de sus cambios:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Account Executive
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Senior Account Executive
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Account Executive
```
<Warning>
**No cambie los valores del identificador único.**
Si cambia `john@acme.com` a `john.smith@acme.com`, Twenty creará un registro nuevo en lugar de actualizar el existente.
</Warning>
## Paso 3: Importe el archivo actualizado
1. Navegue al objeto
2. Haga clic en **⋮** → **Importar registros**
3. Cargue su archivo CSV editado
4. **Asegúrese de que el identificador único esté asignado** — verifique que `email`, `domain` o `id` estén asignados correctamente
5. Revise las asignaciones de campos
6. Verifique si hay errores
7. Haga clic en **Confirmar**
Twenty hace coincidir los registros mediante el identificador único y los actualiza con nuevos valores.
## Elegir el identificador único adecuado
| Objeto | Recomendado | Alternativa | Notas |
| -------------------------- | --------------------- | ----------- | --------------------------------------------- |
| **Personas** | `correo Electrónico` | `id` | El correo electrónico es legible para humanos |
| **Empresas** | `dominio` | `id` | El dominio es legible para humanos |
| **Objetos personalizados** | Cualquier campo único | `id` | Use su campo único personalizado |
<Note>**Use solo UN identificador único.** No asigne `email` Y `id`. Esto puede causar confusión y errores.</Note>
### Uso de campos únicos personalizados
Si tiene un campo personalizado marcado como único (como un ID externo de otro sistema):
1. Incluya ese campo en su exportación e importación
2. Asígnelo durante la importación
3. Twenty hará coincidir por ese campo
## Paso 4: Verifique las actualizaciones
Después de la importación:
1. Abra algunos registros actualizados
2. Verifique que los cambios se hayan aplicado
3. Compruebe que no se hayan creado registros duplicados
## ¿Qué pasa con los campos que no están en su archivo?
**Los campos que no se incluyen en su archivo de importación permanecen sin cambios.**
| Su archivo incluye... | Resultado |
| ---------------------------- | ----------------------------------------------------------------- |
| `email`, `jobTitle` | Solo se actualiza `jobTitle`; los demás campos permanecen iguales |
| `email`, `jobTitle`, `phone` | Se actualizan `jobTitle` y `phone` |
Esto significa que solo necesita incluir los campos que desea cambiar (más el identificador único).
## Combinar actualizaciones y nuevos registros
Puede actualizar registros existentes Y crear otros nuevos en la misma importación:
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Errores comunes que se deben evitar
| Error | Problema | Resultado | Solución |
| ----------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------- |
| **Cambiar el identificador único** | Se cambió `john@acme.com` a `john.smith@acme.com` | Crea un nuevo registro en lugar de actualizar | Mantenga sin cambios los identificadores únicos |
| **Varios campos únicos** | Asignar ambos `email` Y `id` | Posibles conflictos de coincidencia | Asigne solo UN identificador único |
| **Sin identificador único** | El archivo solo tiene `firstName`, `lastName`, `jobTitle` | Todas las filas crean nuevos registros | Incluya siempre `email`, `domain` o `id` |
| **Diferencia de mayúsculas y minúsculas** | El archivo tiene `John@acme.com`, pero Twenty tiene `john@acme.com` | Crea un nuevo registro | Exporte desde Twenty para obtener los valores exactos |
## Preguntas frecuentes
<AccordionGroup>
<Accordion title="¿Qué pasa si algunos registros aún no existen?">
Los registros con identificadores únicos que no coincidan con registros existentes se crearán como nuevos registros. Esto le permite actualizar y crear en la misma importación.
</Accordion>
<Accordion title="¿Puedo borrar/vaciar el valor de un campo?">
Sí, deje la celda vacía en su CSV. La importación borrará el valor de ese campo en el registro existente.
</Accordion>
<Accordion title="¿Qué ocurre con los campos que no incluyo en la importación?">
Los campos que no estén en su archivo de importación permanecen sin cambios en los registros existentes. Solo se actualizan los campos que incluya.
</Accordion>
<Accordion title="¿Puedo actualizar campos de relación (como Empresa)?">
¡Sí! Incluya el identificador único de la relación (p. ej., `companyDomain`) y asígnelo al campo de relación. Se actualizará la relación.
</Accordion>
<Accordion title="¿Cómo sé qué registros se actualizarán y cuáles se crearán?">
Durante el paso de revisión de la importación, Twenty le muestra cuántos registros se actualizarán frente a cuántos se crearán según las coincidencias del identificador único.
</Accordion>
<Accordion title="¿Puedo deshacer una actualización masiva?">
No hay deshacer automático. Le recomendamos exportar sus datos como copia de seguridad antes de realizar actualizaciones masivas.
</Accordion>
</AccordionGroup>
## Mejores prácticas
1. **Exporte primero** — comience siempre desde una exportación para asegurar el formato correcto
2. **Haga una copia de seguridad antes de actualizar** — exporte sus datos antes de realizar cambios masivos
3. **Pruebe con unos pocos registros** — intente actualizar primero 5–10 registros antes de hacer un lote grande
4. **Use identificadores legibles para humanos** — `email` y `domain` son más fáciles de verificar que `id`
5. **Incluya solo las columnas necesarias** — menos columnas significa menos posibilidades de errores
## Solución de Problemas
¿Tiene problemas? Revise:
* [Cómo corregir errores de importación](/l/es/user-guide/data-migration/how-tos/fix-import-errors)
* [Restricciones de unicidad](/l/es/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referencia de asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,83 @@
---
title: Migración de datos
description: Importe y exporte sus datos de CRM mediante archivos CSV o la API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Métodos de importación
Twenty admite dos métodos principales para importar datos:
| Método | Ideal para | Límite de volumen |
| ---------------------------- | ------------------------------------------------ | ---------------------------- |
| **Importación CSV** | Migraciones estándar, actualizaciones periódicas | 10.000 registros por archivo |
| **Importación mediante API** | Migraciones a gran escala, automatización | Ilimitado |
<Note>Para conjuntos de datos muy grandes (cientos de miles de registros), use la API. Nuestros [socios de implementación](/l/es/user-guide/getting-started/capabilities/implementation-services) pueden ayudar a ejecutar estos scripts si es necesario.</Note>
## Conceptos básicos de la importación CSV
Puede importar datos de cualquier objeto mediante archivos CSV, XLSX o XLS. Cada archivo debe contener **solo un tipo de objeto** (por ejemplo, solo registros de Personas).
<Note>**Los campos deben existir antes de la importación.** Cargar un CSV crea registros, pero no crea campos. Si necesita campos personalizados, créelos primero en **Configuración → Modelo de datos**.</Note>
### Pasos
1. Vaya al objeto en el que desea importar datos
2. Haga clic en el icono **⋮** en la esquina superior derecha (este es el Menú de comandos) y haga clic en **Importar registros**
3. Descargue el archivo de plantilla para asegurarse de que sus datos estén en el formato esperado
4. Cargue su archivo CSV con el formato correcto
5. Asigne sus columnas a los campos de Twenty
6. Revise los errores (resaltados en amarillo) y corríjalos, editando directamente en la interfaz de usuario
7. Confirme la importación
### Importar relaciones entre objetos
Puedes importar relaciones entre objetos usando la función de importación CSV. Debe hacer referencia al objeto relacionado utilizando un campo único de ese objeto: el `id`, el `email` para Personas y Miembros del espacio de trabajo, el `domain` para empresas, cualquier otro campo establecido como único en el modelo de datos para cualquier otro objeto.
<Note>**Los registros eliminados cuentan para la unicidad.** Los registros eliminados lógicamente (visibles en Menú de comandos → Ver registros eliminados) se incluyen en las comprobaciones de unicidad. Si importa un registro con el mismo valor único que un registro eliminado, el registro eliminado se restaurará.</Note>
<Warning>
**¡Importa el orden de importación!**
Al importar objetos relacionados, cargue los archivos en este orden:
1. **Empresas** primero (el lado "uno" de las relaciones)
2. **Personas** en segundo lugar (vinculadas a Empresas mediante companyId)
3. **Oportunidades** en tercer lugar (vinculadas a Empresas/Personas)
4. **Objetos personalizados** con relaciones al final
¿Por qué? El lado "uno" de una relación de uno a muchos debe existir antes de que pueda hacer referencia a él. Por ejemplo, el registro de Empresa debe existir antes de importar una Persona con el ID de esa empresa.
</Warning>
Consulte [este artículo](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para ver una guía paso a paso sobre cómo proceder.
## Exportar Datos
Exporte los datos de su espacio de trabajo para copias de seguridad, informes o migración.
### Pasos
1. Vaya al objeto que desea exportar
2. Configure la vista con las columnas que necesita
3. Haga clic en **⋮** → **Exportar vista**
4. Guarde el archivo CSV
<Note>**Solo se exportan las columnas visibles.** El archivo CSV contendrá únicamente las columnas que se muestran en su vista actual. Agregue u oculte columnas antes de exportar para controlar qué datos se incluyen.</Note>
<Note>**Límites de exportación**: hasta 20.000 registros por exportación.</Note>
## Permisos
La importación y exportación de datos requieren permisos específicos:
* **Importación**: requiere el permiso "Importar CSV"
* **Exportación**: requiere el permiso "Exportar CSV"
Póngase en contacto con el administrador de su espacio de trabajo si no tiene estos permisos.
## Próximos Pasos
* [Prepare sus archivos CSV](/l/es/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Importe relaciones entre objetos](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Importe mediante API para conjuntos de datos grandes](/l/es/user-guide/data-migration/how-tos/import-data-via-api)

View File

@@ -0,0 +1,122 @@
---
title: Campos
description: Comprenda el papel de los campos y cómo gestionarlos.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Acerca de los Campos
Los campos son como columnas en una hoja de cálculo. Almacenan diferentes tipos de datos como texto, números o fechas. Los campos pueden ser estándar (integrados) o personalizados (los que usted crea).
### Campos Estándar
Los campos estándar vienen integrados con Twenty para cubrir necesidades empresariales comunes.
Por ejemplo, `Nombre` y `Apellido` son campos estándar en el objeto `Personas`. Almacenan datos de texto para nombres individuales.
No puede eliminar campos estándar, pero puede desactivarlos si no los necesita.
También puede personalizar las opciones de los campos estándar de tipo `SELECT`, por ejemplo, las opciones para la `Etapa` en Oportunidades.
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### Campos Personalizados
Se pueden añadir campos personalizados a cualquier objeto. Puede almacenar texto, números, fechas, selecciones desplegables y más. Utilice campos personalizados para rastrear información específica de su negocio.
Por ejemplo, un campo personalizado para SpaceX podría ser `Estado Activo del Cohete`, indicando si un cohete está operativo.
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## Tipos de campo
Twenty admite varios tipos de campo:
| Tipo | Descripción | Ejemplo |
| ------------------ | --------------------------------------------------------------------- | ------------------------------- |
| Dirección | Dirección estructurada con calle, ciudad, estado, país, código postal | Dirección de la oficina |
| Array | Lista de valores de texto | Etiquetas |
| Booleano | Casilla de verificación verdadero/falso | Activo |
| Moneda | Valor monetario con código de moneda | Importe del acuerdo (USD) |
| Fecha | Valores de fecha | Fecha de cierre |
| Fecha y hora | Fecha con hora | Hora de la reunión |
| Dominio | Dominio del sitio web (usado para Empresas) | acme.com |
| Correo electrónico | Direcciones de correo electrónico (con principal + adicionales) | Correo electrónico del contacto |
| JSON | Datos JSON estructurados | Metadatos personalizados |
| Enlaces | URLs con etiquetas (principal + secundaria) | Sitio web, LinkedIn |
| Texto largo | Texto multilínea | Descripción, notas |
| Selección múltiple | Varias opciones de una lista predefinida | Etiquetas, categorías |
| Número | Valores numéricos (enteros o decimales) | Cantidad, puntuación |
| Teléfono | Números de teléfono con código de país | Teléfono del trabajo |
| Valoración | Valoración por estrellas (1-5) | Prioridad, puntuación |
| Relación | Enlaces a registros en otros objetos | Empresa → Personas |
| Selección | Una sola opción de una lista predefinida | Etapa, estado |
| Texto | Una sola línea de texto | Nombre, título |
## Crear un Campo Personalizado
Para agregar un campo personalizado a cualquier objeto, siga estos pasos:
1. Vaya a `Configuración` en la barra lateral izquierda.
2. Vaya a `Modelo de Datos`, luego seleccione el objeto que desea personalizar.
3. Proceda haciendo clic en `+ Nuevo Campo`.
4. Elija un nombre de campo y tipo que se adapten a sus requisitos. Considere agregar una descripción de campo para una mejor comprensión.
Su nuevo campo creado ahora está disponible dentro de los campos de la aplicación. Para mostrarlo en una vista específica, haga clic en el menú de opciones, luego seleccione `Campos`.
<VimeoEmbed videoId="927628219" title="Demostración en video" />
**Forma rápida:** Haga clic en el botón **+** en la esquina superior derecha de cualquier tabla de objetos, luego seleccione `Personalizar campos`. Esto lo lleva directamente a la configuración del Modelo de Datos.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## Desactivar un campo
Puede desactivar un campo para ocultarlo de la aplicación sin perder sus datos. Piense en ello como ocultar el campo en lugar de eliminarlo.
Así es como puede hacerlo:
1. Encuentre el campo que desea desactivar en la configuración de su objeto.
2. Haga clic en los tres puntos `⋮` junto al campo para abrir el menú.
3. Seleccione `Desactivar` en el menú desplegable.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
¿Qué ocurre cuando desactiva un campo?
1. **En la aplicación:** El campo desaparece y no puede añadir nuevos valores.
2. **Relaciones existentes:** Si es un campo de relación, las conexiones existentes permanecen, pero no puede crear nuevas.
3. **Acceso API:** Aún puede acceder al campo y sus datos a través de la API.
Puede reactivar los Campos Estándar y Personalizados o tener la opción de eliminarlos permanentemente.
## Hacer Campos Únicos
Haga un campo único para asegurar que registros distintos no puedan tener el mismo valor. Por ejemplo, las direcciones de correo electrónico son únicas para cada persona.
Si recibe un error al establecer la unicidad, verifique los valores duplicados en sus datos (incluso registros eliminados).
## Índices (avanzado)
Los índices de base de datos se gestionan automáticamente; crear índices propios rara vez es necesario y es fácil equivocarse. Con el modo avanzado activado, cada objeto tiene una sección de **Índices** en `Settings → Data Model → <object>` para los casos en los que sabes que necesitas uno.
## Mejores Prácticas de Configuración de Campos
### Convenciones y Limitaciones de Nombres
* **Los nombres singulares y plurales deben ser distintos**: Nuestra API GraphQL necesita nombres distintos para mutaciones
* **Nombres de campos protegidos**: algunos nombres están reservados para uso del sistema (p. ej., `Type`, `Application`)
### Campos de Moneda y Teléfono
* **Moneda predeterminada:** se puede configurar a través del modelo de datos
* **Códigos de país predeterminados:** se pueden configurar para campos de teléfono a través del modelo de datos
### Campos de Selección
* **Se puede seleccionar una opción predeterminada** para cada campo de Selección
### Campos de Texto del Registro
* **Cada objeto tiene un campo principal de visualización**: Este campo aparece en la columna más a la izquierda y representa el registro cuando se vincula a otros objetos. Debe ser un campo de texto. Por ejemplo, las Personas utilizan `Nombre` como el campo principal, por lo que cuando vincula una persona a una empresa, verá su nombre en la vista de la empresa.

View File

@@ -0,0 +1,92 @@
---
title: Objetos
description: Conozca los objetos estándar y personalizados en Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Objetos estándar
Objetos estándar son entidades predefinidas en tu espacio de trabajo para ayudarte a comenzar. Forman parte de un modelo de datos compartido accesible para todos los usuarios de Twenty. Puedes usarlos tal cual, personalizarlos o desactivarlos.
<img src="/images/user-guide/objects/standard-objects.png" style={{width:'100%'}} />
### Personas
El objeto `Personas` almacena tus contactos. Incluye detalles de contacto y el historial de interacciones, para que puedas ver todas tus interacciones con clientes en un solo lugar.
### Empresas
El objeto `Empresas` almacena las cuentas de tu negocio. Incluye detalles como industria, tamaño y ubicación. Las empresas se conectan tanto a los objetos `Personas` como `Oportunidades`.
### Oportunidades
El objeto `Oportunidades` almacena datos relacionados con acuerdos. Hace un seguimiento de la progresión de las ventas potenciales, desde la prospección hasta el cierre, registrando etapas, importes del acuerdo, cuenta asociada y fecha de cierre prevista. Puedes ver tu canal de ventas en un diseño kanban.
### Notas
El objeto `Notes` almacena notas de formato libre que se pueden adjuntar a Personas, Empresas, Oportunidades y otros registros. Utilice las notas para capturar resúmenes de reuniones, detalles importantes o cualquier información contextual.
### Tareas
El objeto `Tasks` almacena tareas pendientes y elementos de acción. Las tareas se pueden vincular a Personas, Empresas, Oportunidades y otros registros. Realice un seguimiento de las fechas de vencimiento, los responsables y el estado de finalización para mantenerse al día con sus seguimientos.
## Objetos personalizados
Los objetos personalizados te permiten almacenar información que es única para tu organización y que los objetos estándar no pueden manejar. Por ejemplo, si eres SpaceX, puedes querer crear un objeto personalizado para Cohetes y Lanzamientos.
<img src="/images/user-guide/objects/custom-objects.png" style={{width:'100%'}} />
### Creando un nuevo objeto personalizado
Para crear un nuevo objeto personalizado:
1. Ve a Configuración en la barra lateral a la izquierda.
2. En Espacio de Trabajo, vaya al Modelo de Datos. Aquí podrá ver una visión general de todos sus objetos estándar y personalizados existentes (tanto activos como desactivados).
<VimeoEmbed videoId="926288174" title="Demostración en video" />
3. Haz clic en `+ Nuevo objeto` en la parte superior. Ingresa el nombre (tanto singular como plural), elige un ícono y añade una descripción para tu objeto personalizado y presiona Guardar (en la parte superior derecha). Usando Listado como un ejemplo de objeto personalizado, el singular sería "listado" y el plural sería "listados" junto con una descripción como "Listados que los anfitriones crearon para mostrar sus propiedades."
4. Su objeto personalizado ya se creó y aparecerá en su barra lateral. Puede empezar a añadir registros de inmediato.
## Gestión de objetos
### Desactivación de objetos
Si no necesita un objeto estándar o personalizado:
1. Vaya a Configuración → Modelo de datos
2. Encuentra el objeto que quieres desactivar y haz clic en él
3. Ir a la pestaña **Configuración** del objeto
4. Haz clic en el botón 'Desactivar'
5. El objeto se ocultará de su espacio de trabajo, pero los datos se conservarán
### Reactivación de objetos
Para recuperar un objeto desactivado:
1. Vaya a Configuración → Modelo de datos
2. Habilitar filtro 'Desactivado'
3. Busca objetos desactivados (tienen 'desactivados' junto a su nombre)
4. Haz clic en 'Deshacer' y luego en 'Activar' para reactivarlo
5. El objeto y todos sus datos se restaurarán
## Mejores prácticas
### Cuándo crear objetos personalizados
* **Entidades empresariales únicas**: Elementos específicos de su sector o proceso
* **Relaciones complejas**: Cuando necesita realizar un seguimiento de las conexiones entre varias entidades
* **Datos escalables**: Cuando puede haber muchas instancias de algo
### Cuándo usar campos en su lugar
* **Atributos simples**: Propiedades que describen objetos existentes
* **Categorías o etiquetas**: Formas de clasificar registros existentes
* **Valores únicos**: Información que no necesita su propio ciclo de vida
### Nomenclatura de objetos
* **Utilice nombres claros y descriptivos**: Haga evidente qué representa el objeto
* **Siga las convenciones**: Utilice el singular para el nombre del objeto y el plural para la colección
* **Tenga en cuenta a su equipo**: Elija nombres que todos comprendan

View File

@@ -0,0 +1,94 @@
---
title: Campos de Relación
description: Conecte registros entre distintos objetos mediante campos de relación.
---
## Tipos de relaciones
### Uno a muchos
Un registro en el Objeto A puede vincularse a muchos registros en el Objeto B.
**Ejemplo:** Una Empresa puede tener muchas Personas (empleados).
### Muchos a uno
Muchos registros en el Objeto A pueden vincularse a un registro en el Objeto B.
**Ejemplo:** Muchas Personas pueden pertenecer a una Empresa.
### Relaciones que pueden apuntar a varios tipos de objeto
Algunos objetos pueden vincularse a varios tipos de objeto en un lado de la relación.
**Ejemplo:** Una Nota puede adjuntarse simultáneamente a una Persona Y a una Empresa Y a una Oportunidad. La Nota está en el lado de "muchos", conectándose a varios lados de "uno".
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
De manera similar, un Proyecto (en el lado de "uno") podría recibir vínculos de varias Personas, varias Empresas y varias Notas.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Limitación de importación/exportación**: Las relaciones que apuntan a varios tipos de objeto aún no son compatibles con la importación/exportación de CSV. Esto está en nuestra hoja de ruta.
</Warning>
### Muchos a muchos
Muchos registros en el Objeto A pueden vincularse a muchos registros en el Objeto B.
**Ejemplo:** Muchas Personas pueden vincularse a muchos Proyectos, y viceversa.
Las relaciones de muchos a muchos usan un patrón de **objeto de unión**: un objeto intermedio que conecta ambos lados. Con la función de relaciones de unión, Twenty muestra directamente los registros finales vinculados, ocultando el objeto intermedio de la UI.
<Warning>
**Característica Beta**: Las relaciones de unión deben estar habilitadas en **Ajustes → Comunidad → Características** antes de usar.
</Warning>
Consulta [Cómo crear relaciones de muchos a muchos](/l/es/user-guide/data-model/how-tos/create-many-to-many-relations) para obtener una guía completa paso a paso.
## Creación de un campo de relación
1. Vaya a **Configuración → Modelo de datos**
2. Seleccione el objeto en el que desea agregar la relación
3. Haga clic **+ Nuevo campo**
4. Seleccione **Relation** como tipo de campo
5. Elija el(los) objeto(s) de destino con los que relacionar
6. Configure los ajustes de la relación:
* **Nombre del campo en el objeto de origen**: El nombre del campo de relación en el objeto que está editando
* **Nombre del campo en el objeto de destino**: El nombre del campo de relación que aparecerá en el objeto de destino
* Tipo de relación (uno a muchos, muchos a uno)
7. Haga clic en **Guardar**
## Relaciones estándar
Twenty incluye relaciones predefinidas entre objetos estándar:
| Desde el objeto | Al objeto | Tipo de relación |
| --------------- | --------- | ---------------- |
| Personas | Empresas | Muchos a uno |
| Oportunidades | Empresas | Muchos a uno |
| Oportunidades | Personas | Muchos a uno |
## Mejores prácticas
### Planificación de relaciones
* **Mapee su modelo de datos**: Planifique las relaciones antes de crearlas
* **Considere la dirección**: Piense en a qué objeto "pertenece" la relación
* **Evite las dependencias circulares**: Mantenga su modelo de datos limpio
### Asignar nombres a las relaciones
* **Use nombres claros**: Deje claro qué representa la relación
* **Sea coherente**: Use patrones de nomenclatura similares en todas las relaciones
* **Considere ambos lados**: Asigne nombres adecuados a ambos lados de la relación
### Rendimiento
* **No cree relaciones en exceso**: Demasiadas relaciones pueden ralentizar su espacio de trabajo
## Limitaciones
* **Eliminar relaciones** elimina el vínculo pero no los registros relacionados
* **Las relaciones circulares** deben evitarse para mantener la integridad de los datos

View File

@@ -0,0 +1,72 @@
---
title: Crear campos personalizados
description: Guía paso a paso para agregar campos personalizados a cualquier objeto.
---
Los campos personalizados le permiten capturar información específica de su negocio. Agréguelos a cualquier objeto—estándar o personalizado.
## Pasos
1. Vaya a **Configuración → Modelo de datos**
2. Seleccione el objeto al que desea agregar un campo
3. Haga clic en **+ Nuevo campo**
4. Elija un **tipo de campo** (consulte [Campos](/l/es/user-guide/data-model/capabilities/fields) para ver todos los tipos)
5. Introduzca el **nombre del campo** y una descripción opcional
6. Configure los ajustes específicos del campo (consulte más abajo)
7. Haga clic en **Guardar**
**Método rápido:** Haga clic en **+** al final de los encabezados de columna en cualquier vista de tabla → **Personalizar campos**.
## Mostrar el campo en las vistas
Los campos nuevos no son visibles automáticamente. Para mostrarlo:
1. Abra la vista de tabla del objeto
2. Haz clic en **Opciones → Campos**
3. Haga clic en el **icono de ojo** junto a su campo para mostrarlo
4. Arrastra para reordenar
## Opciones de configuración
### Para Selección / Selección múltiple
1. Haga clic en **+ Add option** para crear opciones
2. Defina una **opción predeterminada** si lo desea
3. Arrastre para reordenar las opciones
<Note>
**Utilice los nombres de la API para las importaciones.** Habilite el **modo Avanzado** en Configuración para ver los nombres de la API. Consulte [Referencia de asignación de campos](/l/es/user-guide/data-migration/capabilities/field-mapping).
</Note>
### Para campos de moneda
Establezca la **moneda predeterminada** (USD, EUR, etc.) para los nuevos registros.
### Para campos de teléfono
Establezca el **código de país predeterminado** para rellenar previamente los nuevos números de teléfono.
### Hacer que un campo sea único
Active **Unique** para evitar valores duplicados entre los registros.
<Note>
Si existen duplicados (incluidos en los registros eliminados), recibirá un error. Primero, elimine los duplicados.
</Note>
### Configuración de valores predeterminados
Para los campos de Selección, puede elegir qué opción se preselecciona para los nuevos registros. Para los campos de Casilla de verificación, establezca si está marcada o desmarcada de forma predeterminada.
## Desactivar un campo
1. Vaya a **Configuración → Modelo de datos**
2. Busque el campo
3. Haz clic en **⋮ → Desactivar**
Los datos se conservan. Puede reactivar o eliminar de forma permanente más tarde.
## Relacionado
* [Campos](/l/es/user-guide/data-model/capabilities/fields) — todos los tipos de campos explicados
* [Preguntas frecuentes sobre el modelo de datos](/l/es/user-guide/data-model/how-tos/data-model-faq) — preguntas comunes

View File

@@ -0,0 +1,51 @@
---
title: Crear objetos personalizados
description: Guía paso a paso para crear objetos personalizados en Twenty.
---
Los objetos personalizados le permiten almacenar información exclusiva de su empresa que los objetos estándar no cubren. Por ejemplo: Proyectos, Productos, Tickets o Listados.
<Note>
**¿No está seguro de si necesita un objeto o un campo?** Consulte [Comprender su modelo de datos](/l/es/user-guide/data-model/overview) para obtener orientación.
</Note>
## Pasos
1. Vaya a **Configuración → Modelo de datos**
2. Haga clic en **+ Añadir objeto**
3. Complete:
* **Nombre en singular** (p. ej., "Listing")
* **Nombre en plural** (p. ej., "Listings")
* **Ícono**
* **Descripción** (opcional)
4. Haga clic en **Guardar**
Su objeto aparece de inmediato en la barra lateral.
## Siguiente: Agregar campos
Los objetos nuevos comienzan con campos básicos. Agregue campos personalizados para capturar los datos que necesita:
1. En **Configuración → Modelo de datos**, seleccione su objeto
2. Haga clic en **+ Nuevo campo**
3. Elija un tipo de campo, configúrelo y guarde
Consulte [Cómo crear campos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-fields) para obtener detalles sobre los tipos de campos y su configuración.
## Conectar con otros objetos
Para vincular su objeto con Personas, Empresas u otros objetos, cree un campo de relación. Consulte [Cómo crear campos de relación](/l/es/user-guide/data-model/how-tos/create-relation-fields).
## Desactivar un objeto
Si ya no necesita un objeto:
1. Ve a **Ajustes → Modelo de datos → objeto de tu elección → Configuración**
2. Haga clic en el botón **Desactivar**
El objeto se oculta, pero los datos se conservan. Puede reactivarlo o eliminarlo de forma permanente más tarde.
## Relacionado
* [Objetos](/l/es/user-guide/data-model/capabilities/objects) — objetos estándar frente a personalizados
* [Preguntas frecuentes sobre el modelo de datos](/l/es/user-guide/data-model/how-tos/data-model-faq) — preguntas comunes

View File

@@ -0,0 +1,175 @@
---
title: Crear relaciones de muchos a muchos
description: Conecta registros en los que muchos elementos en ambos lados pueden vincularse entre sí mediante objetos de unión.
---
Las relaciones de muchos a muchos te permiten conectar varios registros en ambos lados. Por ejemplo: muchas personas pueden trabajar en muchos proyectos, y cada proyecto puede tener muchas personas.
<Warning>
**Función beta**: Las relaciones de unión están actualmente en beta. Actívalas en **Settings → Community → Features** antes de seguir esta guía.
</Warning>
<Note>
Esta función también requiere que **Advanced mode** esté activado (interruptor en la esquina inferior izquierda de Settings).
</Note>
## Cuándo usar relaciones de muchos a muchos
Usa relaciones de muchos a muchos cuando ambos lados de una relación pueden tener varias conexiones:
| Relación | Ejemplo |
| ----------------- | ---------------------------------------------------------------------------------------- |
| People ↔ Projects | Una persona trabaja en varios proyectos; un proyecto tiene varios miembros del equipo |
| Companies ↔ Tags | Una empresa puede tener varias etiquetas; una etiqueta puede aplicarse a varias empresas |
| Products ↔ Orders | Un producto puede estar en varios pedidos; un pedido contiene varios productos |
## Cómo Funciona
Twenty utiliza un patrón de **objeto de unión** para las relaciones de muchos a muchos. Un objeto de unión se sitúa entre dos objetos y contiene las conexiones:
```
People ←→ Project Assignments ←→ Projects
```
El objeto **Project Assignments** (unión) tiene:
* Una relación con People (muchos a uno)
* Una relación con Projects (muchos a uno)
Cuando activas el interruptor de relación de unión, Twenty muestra los registros vinculados directamente en lugar de mostrar los registros intermedios de unión.
## Prerrequisitos
1. **Habilita Junction Relations en Beta Features**: Ve a **Settings → Community → Features** y habilita **Junction Relations**
2. **Activa Advanced mode**: Activa **Advanced mode** en la parte inferior izquierda de la barra lateral de Settings
3. Planifica tu modelo de datos:
* ¿Qué dos objetos estás conectando?
* ¿Cómo debería llamarse el objeto de unión?
## Paso 1: Crear el objeto de unión
Primero, crea el objeto intermedio que contendrá las conexiones.
1. Vaya a **Configuración → Modelo de datos**
2. Haga clic en **+ Añadir objeto**
3. Asígnale un nombre descriptivo (p. ej., "Project Assignment", "Team Member", "Product Order")
4. Activa "Omitir la creación de un campo Nombre"
<img src="/images/user-guide/fields/new-pivot-object.png" alt="Nuevo objeto de unión" />
5. Haga clic en **Guardar**
<Tip>
**Convención de nombres**: Usa un nombre que describa la relación, como "Project Assignment" o "Team Membership". Esto hace que el modelo de datos sea más fácil de entender.
</Tip>
## Paso 2: Crea relaciones entre los objetos y el objeto de unión
Agrega campos de relación desde cada uno de tus dos objetos al objeto de unión.
### Primera relación (Objeto A → Unión)
1. Selecciona tu primer objeto en **Settings → Data Model**
2. Haz clic en **+ Add Relation**
3. Selecciona el objeto de unión (p. ej., "Project Assignments")
4. Configura el tipo de relación como **One-To-Many** (una persona puede vincularse a muchas asignaciones)
5. Nombra los campos:
* Campo en People: p. ej., "Project Assignments"
* Campo en unión: p. ej., "Person"
6. Haga clic en **Guardar**
### Segunda relación (Objeto B → Unión)
1. Selecciona tu segundo objeto en **Settings → Data Model**
2. Haz clic en **+ Add Relation**
3. Selecciona el objeto de unión (p. ej., "Project Assignments")
4. Configura el tipo de relación como **One-To-Many** (un proyecto puede vincularse a muchas asignaciones)
5. Activa **"This is a relation to a Junction Object"**
<img src="/images/user-guide/fields/junction-relation-toggle.png" style={{width:'100%'}} />
6. Nombra los campos:
* Campo en unión: p. ej., "Project"
* Campo en Projects: p. ej., "Team Members"
7. Haga clic en **Guardar**
## Paso 3: Configurar la visualización de la relación de unión
Ahora configura los objetos de origen para mostrar los registros vinculados directamente, omitiendo el objeto de unión intermedio.
1. Vaya a **Configuración → Modelo de datos**
2. Selecciona el primer objeto (p. ej., "People")
3. Encuentra el campo de relación que apunta al objeto de unión (p. ej., "Project Assignments")
4. Haz clic para editar el campo
5. Activa **"This is a relation to a Junction Object"**
6. Selecciona la **Target relation** (p. ej., "Project" — el campo en la unión que apunta al otro lado)
7. Haga clic en **Guardar**
## Resultado
Después de la configuración:
* En un registro de **Person**, el campo "Project Assignments" muestra **Projects** directamente (no registros de asignación)
* En un registro de **Project**, el campo "Team Members" muestra **People** directamente
El objeto de unión sigue existiendo y almacena las conexiones, pero la interfaz presenta una vista de muchos a muchos más limpia.
## Ejemplo: People ↔ Projects
Aquí tienes una guía completa paso a paso:
### Crear el objeto de unión
* Nombre: **Project Assignment**
* Descripción: "Vincula a las personas con los proyectos en los que trabajan"
### Agregar relaciones
1. **People → Project Assignment**
* Tipo: One-to-Many
* Campo en People: "Project Assignments"
* Campo en Assignment: "Person"
2. **Projects → Project Assignment**
* Tipo: One-to-Many
* Campo en Projects: "Team Members"
* Campo en Assignment: "Project"
### Configurar la visualización de la unión
1. En el objeto **People**:
* Edita el campo "Project Assignments"
* Activa el interruptor de unión
* Destino: "Project"
2. En el objeto **Projects**:
* Edita el campo "Team Members"
* Activa el interruptor de unión
* Destino: "Person"
### Úsalo
* Abre un registro de Person → Ve sus Projects directamente
* Abre un registro de Project → Ve los miembros del equipo directamente
* Crea nuevas conexiones desde cualquiera de los dos lados
## Agregar datos adicionales a las conexiones
Como el objeto de unión es un objeto real, puedes agregar campos personalizados para almacenar información sobre la relación:
* **Rol**: "Desarrollador", "Diseñador", "Gerente"
* **Fecha de inicio**: Cuando la persona se unió al proyecto
* **Horas asignadas**: Horas semanales en este proyecto
Para acceder a estos datos, navega directamente al objeto de unión o consúltalo mediante la API.
## Limitaciones
* **Importación/Exportación CSV**: No se admite importar relaciones de muchos a muchos directamente. En su lugar, importa registros al objeto de unión.
* **Filtros**: Filtrar por relaciones de muchos a muchos puede tener opciones limitadas.
## Relacionado
* [Campos de relación](/l/es/user-guide/data-model/capabilities/relation-fields) — tipos de relaciones explicados
* [Crear objetos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-objects) — cómo crear objetos
* [Crear campos de relación](/l/es/user-guide/data-model/how-tos/create-relation-fields) — configuración básica de relaciones

View File

@@ -0,0 +1,70 @@
---
title: Crear campos de relación
description: Guía paso a paso para conectar objetos con campos de relación.
---
Los campos de relación conectan registros de distintos objetos—por ejemplo, vinculando Personas con Empresas.
<Note>
**Los nombres de relación no se pueden cambiar después de la creación** (afectan a la API). Planifica bien los nombres.
</Note>
## Antes de empezar
Decide:
* ¿Qué objetos vas a conectar? (p. ej., Personas → Empresas)
* ¿Cuál es el lado "uno"? (p. ej., Empresa)
* ¿Cuál es el lado "muchos"? (p. ej., Personas — muchas personas trabajan en una empresa)
* ¿Qué nombre debería tener el campo en cada lado?
Consulta [Campos de Relación](/l/es/user-guide/data-model/capabilities/relation-fields) para ver los tipos de relación explicados.
## Pasos
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto donde quieres la relación (normalmente el lado "muchos")
3. Haga clic en **+ Nuevo campo**
4. Selecciona **Relación** como tipo de campo
5. Elige el **objeto de destino**
6. Selecciona **Uno a muchos** o **Muchos a uno**
7. Introduce nombres de campo para **ambos lados** de la relación
8. Haga clic en **Guardar**
## Ejemplo: Personas → Empresas
* Ve a **Configuración → Modelo de datos → Personas**
* Añade un campo de Relación
* Destino: **Empresas**
* Tipo: **Muchos a uno**
* Campo en Personas: **Empresa**
* Campo en Empresas: **Empleados**
Ahora cada persona puede vincularse a una empresa, y cada empresa muestra a sus personas.
## Desactivando una relación
1. Ve a **Ajustes → Modelo de datos → objeto de tu elección**
2. Encuentre el campo de relación y haga clic en él
3. Haga clic en el botón **desactivar**
Los enlaces se conservan, pero están ocultos. Vuelve a activar para restaurar.
<Note>
**Desactivar una relación no elimina registros.** Sólo se elimina el enlace entre ellos.
</Note>
## Eliminar una relación
1. Ve a **Ajustes → Modelo de datos → objeto de tu elección**
2. Encuentre el campo de relación y haga clic en él
3. Haga clic en el botón **Eliminar**
<Note>
Se aplica sólo a las relaciones personalizadas. Las relaciones estándar sólo pueden desactivarse.
</Note>
## Relacionado
* [Campos de Relación](/l/es/user-guide/data-model/capabilities/relation-fields) — tipos y limitaciones
* [Cómo importar relaciones](/l/es/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) — importación masiva de registros vinculados

View File

@@ -0,0 +1,22 @@
---
title: Personaliza tu modelo de datos
description: Descripción general de las opciones de personalización del modelo de datos.
---
El modelo de datos de Twenty es totalmente personalizable. Crea objetos, campos y relaciones que se ajusten a tu empresa.
## Enlaces rápidos
| Quiero... | Guía |
| -------------------------- | ----------------------------------------------------------------------------------------- |
| Crear un nuevo objeto | [Cómo crear objetos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-objects) |
| Agregar campos a un objeto | [Cómo crear campos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-fields) |
| Conectar objetos entre sí | [Cómo crear campos de relación](/l/es/user-guide/data-model/how-tos/create-relation-fields) |
## Más información
* [Comprender tu modelo de datos](/l/es/user-guide/data-model/overview) — conceptos clave y consejos de planificación
* [Objetos](/l/es/user-guide/data-model/capabilities/objects) — objetos estándar vs personalizados
* [Campos](/l/es/user-guide/data-model/capabilities/fields) — todos los tipos de campo
* [Campos de relación](/l/es/user-guide/data-model/capabilities/relation-fields) — conectar objetos
* [Preguntas frecuentes sobre el modelo de datos](/l/es/user-guide/data-model/how-tos/data-model-faq) — preguntas comunes

View File

@@ -0,0 +1,157 @@
---
title: Preguntas Frecuentes del Modelo de Datos
description: Preguntas frecuentes sobre el modelo de datos de Twenty.
---
## Gestión de Objetos
<AccordionGroup>
<Accordion title="¿Puedo eliminar un objeto personalizado?">
Sí, los objetos personalizados se pueden eliminar. También puedes desactivarlos primero, lo que oculta el objeto y sus datos de la interfaz a la vez que conserva los datos.
</Accordion>
<Accordion title="¿Puedo eliminar objetos estándar (Personas, Empresas, etc.)?">
No, los objetos estándar no se pueden eliminar. Solo puedes desactivarlos, lo que los oculta de la interfaz pero conserva los datos.
</Accordion>
<Accordion title="¿Cuántos objetos personalizados puedo crear?">
Puedes crear tantos objetos y campos personalizados como necesites — el precio no cambiará.
</Accordion>
<Accordion title="¿Puedo cambiar el nombre de un objeto estándar?">
Puedes cambiar la etiqueta de los objetos estándar (Personas, Empresas, Oportunidades), pero no sus nombres de API. Los nombres de API son fijos para mantener la coherencia en todos los espacios de trabajo de Twenty.
</Accordion>
<Accordion title="¿Puedo cambiar el icono de un objeto?">
Sí, puedes cambiar el icono tanto de los objetos estándar como de los personalizados en **Settings → Data Model**.
</Accordion>
<Accordion title="¿Puedo reorganizar objetos en la barra de navegación izquierda?">
Aún no. La ordenación de objetos en la navegación está actualmente fijada, pero esta función está prevista para una futura versión.
</Accordion>
<Accordion title="¿Puedo ocultar objetos de la barra de navegación izquierda?">
Todos los objetos activos aparecen en la navegación. Puedes desactivar los objetos que no necesites en **Configuración → Modelo de Datos**.
</Accordion>
</AccordionGroup>
## Capacidades de Campos
<AccordionGroup>
<Accordion title="¿Puedo cambiar el tipo de un campo después de crearlo?">
No, los tipos de campo no se pueden cambiar después de su creación. Si necesitas un tipo diferente, crea un campo nuevo con el tipo correcto, migra tus datos y luego desactiva el campo anterior.
</Accordion>
<Accordion title="¿Por qué necesito nombres singulares y plurales diferentes?">
Nuestra API de GraphQL usa ambas formas para diferentes operaciones:
* `createPerson` (singular) para acciones de registro único
* `createPeople` (plural) para operaciones en masa
Esto crea limitaciones cuando las formas singulares y plurales son iguales, pero mejora la experiencia del desarrollador.
</Accordion>
<Accordion title="¿Por qué algunos nombres de campos están protegidos?">
Ciertos nombres de campo como `Tipo` o `Aplicación` están reservados para uso del sistema. Elige nombres alternativos como `Categoría` o `Clasificación`.
</Accordion>
<Accordion title="¿Qué ocurre cuando desactivo un campo?">
* El campo se oculta en la interfaz
* Los datos existentes se conservan
* Aún puedes acceder al campo mediante la API
* Las relaciones existentes se mantienen, pero no puedes crear nuevas
* Puedes reactivar el campo más tarde
</Accordion>
<Accordion title="¿Puedo hacer que un campo sea obligatorio?">
Actualmente, no puedes hacer que los campos personalizados sean obligatorios. Todos los campos aceptan valores vacíos. Puedes usar flujos de trabajo para aplicar campos obligatorios enviando alertas o bloqueando acciones cuando los campos estén vacíos.
</Accordion>
<Accordion title="¿Cuál es la diferencia entre único y obligatorio?">
* **Único**: No puede haber dos registros con el mismo valor en este campo
* **Obligatorio**: El campo debe tener un valor (actualmente no es compatible con los campos personalizados)
</Accordion>
<Accordion title="¿Puedo crear campos de fórmula?">
Los campos de Fórmula están llegando en el **H2 2026**. Mientras tanto, puedes usar flujos de trabajo para calcular y actualizar automáticamente los valores de los campos.
</Accordion>
<Accordion title="¿Puedo tener campos anidados en mis objetos?">
Los campos anidados vienen en **H2 2026**. Actualmente, puedes usar flujos de trabajo para traer valores de campo de objetos relacionados. Por ejemplo, para mostrar la industria de una empresa en un registro de Persona, crea un campo personalizado en Personas y usa un flujo de trabajo para sincronizar el valor.
</Accordion>
<Accordion title="¿Puedo reorganizar campos en objetos?">
Sí, vaya a Ajustes → Modelo de datos → objeto de su elección → Diseño y haga clic en **Personalizar página de registro**. Si este botón está desactivado, debe crear un registro.
</Accordion>
</AccordionGroup>
## Relaciones
<AccordionGroup>
<Accordion title="¿Puedo tener una relación que apunte al mismo objeto?">
¡Sí! Se admiten las relaciones autorreferenciadas y se recomiendan para casos como jerarquías de cuentas. Por ejemplo, crea una relación de Empresas a Empresas para realizar el seguimiento de cuentas padre/hija.
</Accordion>
<Accordion title="¿Puedo crear relaciones de muchos a muchos?">
Las relaciones de muchos-a-muchos están llegando en **H2 2026**. Actualmente, crea un objeto intermedio con dos relaciones de uno a muchos como solución alternativa.
Por ejemplo, para vincular Personas y Proyectos (muchos a muchos), crea un objeto "Asignaciones de proyecto" con:
* Una relación con Personas (muchas asignaciones → una persona)
* Una relación con Proyectos (muchas asignaciones → un proyecto)
</Accordion>
<Accordion title="¿Qué son las relaciones a múltiples tipos de objetos (relaciones Morph)?">
Estas permiten que un objeto se relacione con múltiples tipos de objetos diferentes mediante un único campo. Por ejemplo, las Notas pueden adjuntarse a Personas Y a Empresas Y a Oportunidades simultáneamente.
Cada Nota se vincula a una Persona, una Empresa y una Oportunidad al mismo tiempo.
Obtén más información en [Campos de relación](/l/es/user-guide/data-model/capabilities/relation-fields).
</Accordion>
<Accordion title="¿Puedo tener varias relaciones entre los mismos objetos?">
Sí, puedes crear varias relaciones entre los mismos dos objetos. Por ejemplo, una Empresa podría tener con Personas tanto una relación de "Contacto principal" como otra de "Contacto de facturación".
</Accordion>
<Accordion title="¿Qué ocurre con las relaciones cuando elimino un registro?">
Cuando eliminas un registro, el vínculo de la relación se elimina de los registros relacionados. Los propios registros relacionados no se eliminan.
</Accordion>
<Accordion title="¿Puedo crear relaciones circulares?">
Aunque técnicamente es posible, se deben evitar las relaciones circulares (A → B → C → A), ya que pueden causar confusión y posibles problemas de rendimiento.
</Accordion>
</AccordionGroup>
## Acceso y Permisos
<AccordionGroup>
<Accordion title="¿Dónde puedo ver y editar mi modelo de datos?">
Ve a **Settings → Data Model** para ver y editar todos tus objetos y campos.
</Accordion>
<Accordion title="¿Por qué no puedo ver el Modelo de Datos en Configuración?">
Comunícate con tu administrador de espacio de trabajo. El acceso al modelo de datos suele estar restringido solo a administradores.
</Accordion>
</AccordionGroup>
## Gestión de datos
<AccordionGroup>
<Accordion title="¿Existe un límite a la cantidad de registros que puedo tener?">
No hay un límite estricto en la cantidad de registros. Sin embargo, conjuntos de datos muy grandes pueden afectar el rendimiento en algunas vistas. Usa filtros y vistas para gestionar conjuntos de datos grandes de forma eficaz.
</Accordion>
<Accordion title="¿Puedo importar datos en objetos personalizados?">
Sí, puedes importar datos CSV en cualquier objeto, incluidos los objetos personalizados. El proceso de importación admite la asignación de campos para campos personalizados. Consulta [Cómo preparar tus archivos CSV](/l/es/user-guide/data-migration/how-tos/prepare-your-csv-files).
</Accordion>
<Accordion title="¿Puedo exportar la configuración de mi modelo de datos?">
Actualmente, no hay una exportación integrada para la configuración del modelo de datos. Contacta con soporte si necesitas migrar tu modelo de datos entre espacios de trabajo.
</Accordion>
<Accordion title="¿Cuántos campos puede tener un solo objeto?">
El número máximo de campos que puede tener un único objeto es de 1600 campos según los límites de Postgres, incluyendo ambos campos existentes y eliminados. Tenga en cuenta que Veinte no arreglará su espacio de trabajo si se alcanza el límite de 1600 campos ya que entra dentro de nuestra política de Uso Justo.
</Accordion>
</AccordionGroup>
## ¿Necesitas más ayuda?
Consulta nuestros [Servicios de implementación](/l/es/user-guide/getting-started/capabilities/implementation-services) para obtener ayuda con el diseño de modelos de datos complejos.

View File

@@ -0,0 +1,177 @@
---
title: Modelo de datos
description: Aprende qué es un modelo de datos y cómo diseñar uno que se adapte a tu empresa.
---
## ¿Qué es un modelo de datos?
Un modelo de datos es la estructura que define cómo se organiza la información en tu CRM. Piénsalo como el **plano** de tus datos de clientes — lo diseñas una vez y luego lo completas con tus datos reales.
## Conceptos clave
### Objetos
Los **objetos** son las categorías principales de datos en tu CRM. Cada objeto representa un tipo de elemento del que quieres hacer seguimiento.
Twenty incluye objetos estándar:
* **Personas** — individuos (contactos, clientes potenciales, socios)
* **Empresas** — organizaciones
* **Oportunidades** — negocios o ventas
* **Notas** — notas adjuntas a registros
* **Tareas** — tareas pendientes vinculadas a los registros
También puedes crear **objetos personalizados** para cualquier aspecto específico de tu empresa (p. ej., Proyectos, Suscripciones, Eventos).
### Campos
Los **campos** son las propiedades o atributos que describen cada objeto. Almacenan la información real.
Por ejemplo, el objeto **Personas** tiene campos como:
* Nombre
* Correo electrónico
* Teléfono
* Título del puesto
* Empresa (una relación con el objeto Empresas)
Los campos tienen diferentes **tipos**: texto, número, fecha, selección, selección múltiple, relación y más. Puedes añadir campos personalizados a cualquier objeto.
### Registros
Los **registros** son las entradas individuales dentro de un objeto — los datos reales que creas y gestionas.
Por ejemplo:
* "John Smith" es un **registro** en el objeto Personas
* "Acme Corp" es un **registro** en el objeto Empresas
**Una analogía:**
| Concepto de modelo de datos | Analogía del mundo real |
| --------------------------- | -------------------------------------------------- |
| **Objetos** | Secciones en un libro (las categorías) |
| **Campos** | Columnas en una hoja de cálculo (las propiedades) |
| **Registros** | Filas en una hoja de cálculo (las entradas reales) |
Diseñas el modelo de datos (objetos + campos) una vez y luego creas muchos registros dentro de esa estructura.
## ¿Por qué personalizar tu modelo de datos?
Cada empresa funciona de manera diferente. Personalizar tu modelo de datos significa que puedes adaptar Twenty a **tus** procesos en lugar de forzar los tuyos en un sistema rígido.
Twenty ofrece total flexibilidad:
* Crea los objetos personalizados que necesites
* Añade campos personalizados ilimitados
* El precio no cambia en función de la personalización
## Consejos para diseñar tu modelo de datos
### 1. Empieza con tus objetos principales
Identifica los conceptos principales con los que trabajas. Twenty ya ofrece:
* **Personas** — tus contactos
* **Empresas** — tus cuentas
* **Oportunidades** — tus negocios
Piensa qué más podrías necesitar:
* Stripe necesitaría un objeto `Subscriptions`
* Airbnb necesitaría un objeto `Trips`
* Una aceleradora necesitaría un objeto `Batches`
### 2. Usa campos para variaciones, no nuevos objetos
Si algo es solo una característica de un objeto existente, conviértelo en un **campo**.
**Usa campos para:**
* Categorías y etiquetas (p. ej., `Industry` para Empresas)
* Valores de estado (p. ej., `Stage` para Oportunidades)
* Atributos y propiedades
### 3. Crea un objeto cuando sea independiente
Si el concepto tiene su propio ciclo de vida, propiedades o relaciones, merece un objeto.
**Crea un objeto para:**
* **Proyectos** — tienen plazos, propietarios y tareas
* **Suscripciones** — conectan empresas, productos y facturas
* **Eventos** — involucran a asistentes y acciones de seguimiento
Estos van más allá de un solo campo porque tienen su propio conjunto de datos y relaciones.
### 4. Crea un objeto cuando la cantidad de registros sea indefinida
Si algo puede vincularse varias veces y no sabes cuántas, usa un objeto.
**Mal enfoque:**
Crear campos como `Product 1`, `Product 2`, `Product 3`...
**Buen enfoque:**
Crea un objeto `Products` y relaciónalo con los registros. De esta manera, puedes admitir uno, dos o cien productos sin cambiar tu modelo.
### 5. Manténlo simple al principio
Empieza con los campos. Pasa a nuevos objetos solo cuando notes las limitaciones:
* Demasiados campos en un solo objeto
* Registros repetidos que deberían estar separados
* Relaciones que no encajan bien
## Nota especial sobre Personas, Empresas y Oportunidades
<Warning>
**La sincronización de correo y calendario solo funciona con Personas, Empresas y Oportunidades.**
Estos son los únicos objetos en los que puedes acceder a correos y reuniones sincronizados desde tu buzón/calendario. Recomendamos usarlos tanto como sea posible.
</Warning>
**Mejores prácticas:**
* Si necesitas categorías de Personas, usa campos (no nuevos objetos)
* Ejemplo: Usa un campo `Person Type` con valores "Prospecto" y "Socio" en lugar de crear objetos separados
* Crea diferentes **vistas** para filtrar: una que muestre socios, otra que muestre prospectos
**Está bien tener campos que no se apliquen a todos los registros.** Por ejemplo, un campo `Referral Link` en Personas que solo aplica cuando `Person Type = Partner`. Oculta este campo en las vistas donde no sea relevante.
## Preguntas para guiar tu elección
Pregúntate:
<Check>¿Es esto solo una propiedad de algo que ya tengo o necesita sus propias propiedades?</Check>
<Check>¿Alguna vez necesitaré hacer seguimiento de varios de estos por registro, sin saber cuántos?</Check>
<Check>¿Este concepto se conecta a varios objetos diferentes, no solo a uno?</Check>
<Check>¿Tendrá su propio ciclo de vida (etapas, fechas de inicio/fin)?</Check>
Si la respuesta es "sí" a una o más, probablemente es hora de un nuevo objeto.
## Acceder a tu modelo de datos
1. Ve a **Configuración** en la barra lateral izquierda
2. Haz clic en **Modelo de datos**
3. Visualiza todos tus objetos (estándar y personalizados)
4. Haz clic en cualquier objeto para ver y editar sus campos
<Note>
**¿No ves Modelo de datos en Configuración?**
El acceso al modelo de datos suele estar restringido a los administradores. Contacta con el administrador de tu espacio de trabajo si necesitas acceso.
</Note>
## Próximos Pasos
Una vez que hayas planificado tu modelo de datos:
* [Cómo crear objetos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-objects)
* [Cómo crear campos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-fields)
* [Cómo crear campos de relación](/l/es/user-guide/data-model/how-tos/create-relation-fields)
## ¿Necesitas Ayuda?
<Tip>
¿Quieres ayuda para diseñar tu modelo de datos? [Encuentra un Veinte socio certificado](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-data-model) para diseñar y construir tus objetos, campos y relaciones.
</Tip>

View File

@@ -0,0 +1,104 @@
---
title: Glosario
description: Familiarízate con la terminología esencial utilizada en Twenty.
---
## API
La API (Interfaz de Programación de Aplicaciones) permite conectar Twenty con otros sistemas de software y construir integraciones personalizadas.
## Aplicaciones
Las aplicaciones son extensiones personalizadas desarrolladas mediante código que pueden definir modelos de datos y funciones de lógica. Permiten que los desarrolladores creen personalizaciones reutilizables que pueden desplegarse en varios espacios de trabajo.
## Acciones de código
Las Acciones de código son pasos de flujo de trabajo que te permiten escribir JavaScript personalizado para transformar datos, realizar cálculos o ejecutar lógica compleja que no es posible con las acciones integradas.
## Menú de Comandos
El Menú de Comandos es una interfaz de acceso rápido (se abre con `Cmd + K` en Mac y `Ctrl + K` en Windows) que te permite realizar acciones, crear registros y navegar por tu espacio de trabajo de manera eficiente.
## Empresa y Personas
El CRM tiene dos tipos fundamentales de registros:
* Una `Empresa` representa un negocio u organización.
* `Personas` representan los clientes o prospectos actuales de tu empresa.
## Campos Personalizados
Los Campos Personalizados son campos de datos que creas para capturar información específica según las necesidades y procesos de tu negocio.
## Modelo de datos
Un Modelo de Datos es la estructura que define cómo se organiza la información en tu CRM, incluyendo qué objetos existen, sus propiedades (campos) y cómo se relacionan entre ellos.
## Favoritos
Los Favoritos son registros que has marcado para acceso rápido, apareciendo en tu barra lateral para una navegación instantánea a datos importantes.
## Campo
Un campo se refiere a un área específica donde se almacenan datos particulares de una entidad.
## Iterador
Un Iterador es una acción de flujo de trabajo que itera sobre un array de elementos, ejecutando acciones posteriores para cada elemento de la lista.
## Kanban
Un `Kanban` es una manera visual de rastrear los procesos de tu negocio utilizando tarjetas y columnas. Cada columna representa una etapa en tu proceso (por ejemplo: nuevo, en curso, ganado, perdido), y se mueven los registros a través de estas etapas a medida que progresan.
## Objeto
Un Objeto es una estructura de datos que representa un tipo específico de entidad en tu CRM (como Personas, Empresas u Oportunidades). Los Objetos pueden ser estándar (integrados) o personalizados (creados por ti).
## Oportunidades
Las Oportunidades en el CRM de Twenty son posibles tratos o ventas con cuentas o contactos.
## Registro
Un registro es una instancia de un objeto, como una cuenta específica o contacto.
## Campos de Relación
Los Campos de Relación crean conexiones entre diferentes objetos, permitiendo vincular registros (como conectar una Persona a una Empresa).
## Campos Estándar
Los Campos Estándar son campos de datos preconstruidos que vienen con los objetos por defecto y proporcionan funcionalidad común en todos los espacios de trabajo.
## Tareas
Las Tareas en el CRM de Twenty son actividades asignadas relacionadas con contactos, cuentas u oportunidades.
## Disparadores
Los disparadores son el punto de inicio de un flujo de trabajo — el evento o la condición que inicia la automatización. Entre los ejemplos se incluyen la creación de registros, las actualizaciones de registros, los webhooks o horarios programados.
## Vistas
Puedes personalizar la visualización de tus registros usando vistas, configurando diferentes filtros, diseños y opciones de clasificación para cada vista.
## Upsert
Upsert es una operación que combina "update" y "insert" — actualiza un registro existente si se encuentra una coincidencia, o crea un registro nuevo si no existe ninguna.
## Webhooks
Los Webhooks son mensajes automatizados que se envían desde Twenty a otras aplicaciones cuando ocurren eventos específicos, habilitando la sincronización de datos en tiempo real.
## Flujos de trabajo
Los Flujos de Trabajo son procesos automatizados que desencadenan acciones basadas en condiciones específicas, ayudándote a automatizar tareas repetitivas y procesos empresariales.
## Espacio de trabajo
Un `Espacio de Trabajo` típicamente representa una empresa que usa Twenty. Contiene todos los registros y datos que tú y los miembros de tu equipo añaden a Twenty.
Tiene un único nombre de dominio, que generalmente es el nombre de dominio que tu empresa utiliza para las direcciones de correo electrónico de los empleados.
## Miembros del espacio de trabajo
Los Miembros del Espacio de Trabajo son los usuarios de Twenty de tu equipo que tienen acceso a tu espacio de trabajo. Pueden asignarse como propietarios o responsables de registros.

View File

@@ -0,0 +1,17 @@
---
title: Servicios de Implementación
description: Ya sea que necesites ayuda para comenzar o crear personalizaciones avanzadas, tenemos una solución.
---
## Socios de Implementación
Trabaja con socios certificados de Twenty para personalizaciones avanzadas, integraciones y soporte de implementación dedicado.
<CardGroup cols={2}>
<Card title="Explorar socios certificados" icon="magnifying-glass" href="https://twenty.com/partners/list?ref=docs-implementation-services">
Encuentra un socio y contáctalo directamente: filtra por región, idioma y experiencia.
</Card>
<Card title="Deja que Twenty te asigne un socio" icon="envelope" href="mailto:contact@twenty.com">
Cuéntanos qué necesitas y te conectaremos con el socio adecuado.
</Card>
</CardGroup>

View File

@@ -0,0 +1,42 @@
---
title: ¿Qué es Twenty
description: Twenty es un CRM de código abierto que te brinda los componentes básicos para crear exactamente lo que tu empresa necesita.
---
## Visión
Crear un buen CRM es difícil porque es un acto de equilibrio.
Para cada negocio, los requisitos parecen sencillos, pero las necesidades de todos son distintas.
El resultado es un CRM que es demasiado básico, o uno que intenta ser un todoterreno pero termina siendo un maestro de nada.
Al principio, Twenty parece como la mayoría de los CRMs que ya conoces: puedes rastrear ofertas, organizar contactos, gestionar tareas y notas.
**Pero lo que lo distingue es nuestro enfoque de extensibilidad. Estamos construyendo una plataforma abierta que proporciona los bloques de construcción para que resuelvas los problemas únicos de tu negocio.**
Priorizamos principios universales y patrones comunes sobre las listas de características.
No intentamos tener todas las respuestas, sino que empoderamos a los usuarios para encontrar lo que mejor les funciona.
El código abierto es la base de nuestro enfoque, asegurando que Twenty evoluciona con su comunidad, para su comunidad.
## Beneficios
**Personalizable:** Diseñado para adaptarse a las necesidades de tu negocio.
**Impulsado por la comunidad:** Construido y mantenido por una gran comunidad de código abierto.
**Económico:** Nunca estará atado a un proveedor, porque siempre puede autoalojar.
## Características principales
* **Calendario y correos electrónicos:** Sincroniza tu buzón y tu calendario para ver todas las comunicaciones en tus registros de CRM. [Más información](/l/es/user-guide/calendar-emails/overview).
* **Modelo de datos:** Crea objetos y campos personalizados que se ajusten a tus procesos empresariales únicos. [Explora](/l/es/user-guide/data-model/overview).
* **Migración de datos:** Importa y exporta tus datos mediante CSV o API. [Comienza aquí](/l/es/user-guide/data-migration/overview).
* **Vistas y canalizaciones:** Organiza tus datos con vistas de tabla, tableros Kanban y canalizaciones de ventas. [Descubre](/l/es/user-guide/views-pipelines/overview).
* **Flujos de trabajo:** Automatiza tus procesos empresariales e integra con herramientas externas. [Crea automatizaciones](/l/es/user-guide/workflows/overview).
* **IA:** Mejore su CRM con funciones y agentes con tecnología de IA. [Explorar la IA](/l/es/user-guide/ai/overview).
* **Tableros:** Rastree el rendimiento con informes y visualizaciones personalizadas. [Ver tableros](/l/es/user-guide/dashboards/overview).
* **Permisos y acceso:** Controle quién puede ver, editar y administrar sus datos con permisos basados en roles. [Configurar el acceso](/l/es/user-guide/permissions-access/overview).
* **Notas y tareas:** Cree notas y tareas vinculadas a sus registros para una mejor colaboración.
* **API y Webhooks:** Conéctese con otras aplicaciones y cree integraciones personalizadas. [Comienza a integrar](/l/es/developers/extend/api).
## Únete ahora
[Regístrate aquí](https://app.twenty.com) o [conviértete en un colaborador en GitHub](https://github.com/twentyhq/twenty).

View File

@@ -0,0 +1,77 @@
---
title: Configura tu espacio de trabajo
description: Cada empresa funciona de manera diferente. Empieza con estos 3 pasos para adaptar Twenty a tus necesidades.
---
<Note>**Solución rápida**: Comienza por conectar tu buzón. Esto te brinda un valor inmediato y ayuda a tu equipo a ver Twenty en acción con datos reales. Puedes hacerlo en Configuración → Cuentas.</Note>
## 1. Personaliza tu modelo de datos
Twenty ofrece la flexibilidad que necesitas para moldear el modelo de datos que mejor apoyará tu día a día.
Crea objetos y campos de cualquier tipo, incluyendo relaciones entre tus diferentes objetos. Puedes hacerlo en Configuración → Modelo de Datos.
Aquí tienes algunos consejos:
* **No estás limitado en el número de campos personalizados u objetos personalizados**. Agregar objetos y campos personalizados no llevará a la actualización de tu plan.
* **Personas, Empresas y Oportunidades son los tres objetos desde los cuales puedes acceder a los correos electrónicos y reuniones sincronizados desde tu buzón y calendario**. Recomendamos usarlas tanto como sea posible, añadiendo campos para categorizar tus registros si es necesario. Aquí tienes un ejemplo:
* Es mejor usar el objeto Personas para sus potenciales y socios, creando un campo en el objeto Personas llamado `Tipo de Persona`, en lugar de crear un objeto personalizado de Partner, porque no podrías acceder a los correos electrónicos intercambiados con esta persona desde los registros de Partner.
* Crea diferentes vistas bajo Personas, una para mostrar socios y otra para mostrar prospectos.
* Dos personas no pueden tener la misma dirección de correo electrónico. Dos empresas no pueden tener el mismo dominio.
* Puedes desactivar campos y objetos estándar que no quieras usar.
* Puedes ocultar campos de las vistas: no dudes en crear campos, no tendrás que mostrarlos todos.
Lee [este artículo](/l/es/user-guide/data-model/overview) para aprender cómo diseñar tu modelo de datos.
## 2. Trae tus datos
Llevar tus datos existentes a Twenty da a tu equipo contexto desde el principio.
### Conecta tu buzón de correo
Si no lo hiciste al crear tu espacio de trabajo, conecta tu **cuenta de Google o Microsoft** en Configuración → Cuentas. Esto permite a Twenty:
* Importar tus mensajes y reuniones
* Crear automáticamente contactos basados en interacciones (opcional)
* Mantener el historial de comunicación visible para tu equipo
**¿Usando otro proveedor?**
Puedes agregar otro buzón de correo a través de SMTP o otro calendario a través de CalDAV. Ve a **Ajustes → Cuentas** para configurar.
### Importar datos mediante CSV
Usa el menú de comandos (`Cmd + K` o `Ctrl + K`) para importar Personas, Empresas, Oportunidades o cualquier objeto personalizado vía CSV.
**Directrices clave**:
* Descarga el archivo de muestra para entender el formato esperado
* Limita cada archivo a 10,000 registros
* Elimina correos electrónicos duplicados para Personas o dominios duplicados para Empresas
* Revisa y corrige errores (resaltados en amarillo) antes de importar
Lee [este artículo](/l/es/user-guide/data-migration/overview) para aprender más sobre la importación de datos.
## 3. Crea tu primera vista
Crear diferentes vistas es clave para hacer los datos que se pueden accionar para su equipo.
Cómo proceder:
* **Añadir u ocultar columnas**
Administrar los campos visibles en una vista dada haciendo clic en Opciones → Campos (desde la parte superior derecha). Puedes mostrar/ocultar campos desde allí.
* **Reordenar campos**
Reordenar los campos desde una vista dada haciendo clic en Opciones → Campos (desde la parte superior derecha). Arrastra y suelta los campos para reordenarlos.
* **Filtra tu vista**
Reduce los registros mostrados usando los Filtros desde la parte superior derecha.
* **Ordena los registros**
Reordena los registros mostrados usando la función de Ordenar desde la parte superior derecha, o haciendo clic directamente en el nombre de la columna.
* **Elige el diseño**
Puedes cambiar a un diseño de **Kanban** o un diseño de lista **Agrupar por**, siempre que el objeto tenga un campo select type `Etapa` o similar.
* **Guarda tu vista como Favoritos**
Esto se puede hacer utilizando el menú desplegable que muestra las diferentes vistas.
## ¿Qué sigue?
Comienza a crear automatizaciones utilizando [flujos de trabajo](/l/es/user-guide/workflows/overview).

View File

@@ -0,0 +1,48 @@
---
title: Crear un Espacio de Trabajo
description: Siga una guía paso a paso sobre cómo registrarse en Twenty, elegir un plan de suscripción y configurar su cuenta.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Paso 1: Registro
1. Dirígete a [Twenty Sign Up](https://app.twenty.com).
2. Selecciona tu método de registro preferido:
* **Continuar con Google** para registro con cuenta de Google.
* **Continuar con Microsoft** para registro con cuenta de Microsoft.
* O, **Continúe con correo electrónico** para registrarse por correo electrónico.
<VimeoEmbed videoId="927066829" title="Demostración en video" />
## Paso 2: Elección de Período de Prueba
Elija entre dos períodos de prueba:
### 30 días
Con tarjeta de crédito
### 7 días
Sin tarjeta de crédito
Ambas pruebas incluyen:
* Acceso total
* Contactos ilimitados
* Integración de correo electrónico
* Objetos personalizados
* API y Webhooks
Puedes hacer clic en "Cambiar plan" para elegir un plan diferente o un intervalo de facturación.
<img src="/images/user-guide/create-workspace/choose-plan.png" style={{width:'100%'}} />
## Paso 3: Confirmación de Pago y Configuración de Cuenta
Después de la aprobación del pago a través de Stripe, usted está dirigido a crear su área de trabajo y perfil de usuario. Recuerda que puedes cancelar tu suscripción en cualquier momento.
## Soporte
Para consultas o ayuda, contacta con el equipo de soporte dedicado en [contact@twenty.com](mailto:contact@twenty.com) o envía un mensaje por [Discord](https://discord.gg/cx5n4Jzs57).

View File

@@ -0,0 +1,84 @@
---
title: Navega por Twenty
description: Obtén una descripción general rápida de cómo navegar por la plataforma y dónde realizar diferentes tipos de acciones.
---
## El diseño principal
El centro de la pantalla es **donde viven tus registros**: personas, empresas, oportunidades, tareas, notas, paneles, flujos de trabajo y cualquier otro objeto que hayas creado. Aquí es donde ocurre el trabajo diario.
Puedes **ver, editar o eliminar registros** desde allí, así como **crear nuevas vistas**.
<img src="/images/user-guide/home/main-layout.png" style={{width:'100%'}} />
## Barra de navegación
En el lado izquierdo, de arriba a abajo, podrás:
* Alterna entre tus diferentes espacios de trabajo usando el menú desplegable o crea uno nuevo
* Usa la barra de búsqueda (presiona `/` para enfocarla al instante)
* Abre la sección de Configuración
* Tenga acceso directo a sus **vistas favoritas**. Los Favoritos son únicos para cada usuario.
* Alterna entre diferentes objetos
* **Crea automatizaciones** usando flujos de trabajo
<img src="/images/user-guide/home/navigation-bar.png" style={{width:'100%'}} />
## Menú de Comandos
El menú de comandos te da **acceso rápido a acciones** en Twenty. Puedes acceder de dos maneras:
* **Atajo de teclado**: Presiona `Cmd + K` (Mac) o `Ctrl + K` (Windows)
* **Ratón**: Haz clic en los tres puntos en la esquina superior derecha
Desde allí, puedes:
* Crea nuevos registros
* **Importa y exporta datos en formato CSV**
* Crea nuevas vistas
* Accede a los registros eliminados (Twenty admite eliminaciones lógicas y definitivas)
* Consulta los atajos de teclado para acceder rápidamente a los objetos de tu espacio de trabajo
<img src="/images/user-guide/home/command-menu.png" style={{width:'100%'}} />
## La barra de búsqueda
La barra de búsqueda es accesible a través del Menú de Comandos, en la parte superior de tu barra de navegación, o presionando `/` para enfocarla al instante. La búsqueda funciona en todos los objetos.
<img src="/images/user-guide/home/search-bar.png" style={{width:'100%'}} />
## Panel lateral
Cuando haces clic en un registro, el panel lateral aparece a la derecha. Esto te da una vista general rápida de la información clave del registro, sin llevarte a otra página. A partir de ahí, puede decidir cerrar este resumen o obtener información adicional sobre este registro, haciendo clic en el botón Abrir.
<img src="/images/user-guide/home/side-panel.png" style={{width:'100%'}} />
## Vistas
Cada objeto (como Oportunidades o Personas) admite múltiples vistas. No estás limitado en cuanto al número de vistas por objeto.
Usa el menú desplegable en la parte superior izquierda del diseño principal para alternar entre las diferentes vistas. Por ejemplo:
* Usa una vista Kanban para hacer seguimiento de las oportunidades por etapa
* Usa la vista Agrupar por para crear secciones y mejorar la eficiencia
* Usa filtros para centrarte en registros específicos (por ejemplo, clientes potenciales creados la semana pasada)
* Guarda vistas filtradas para reutilizarlas más tarde
* Vistas favoritas para un acceso rápido
<img src="/images/user-guide/home/view-menu.png" style={{width:'100%'}} />
Si eres nuevo en las Vistas, lee nuestra [guía de Vistas y canalizaciones](/l/es/user-guide/views-pipelines/overview) para aprender cómo crearlas y personalizarlas.
## Configuración
Abre la Configuración desde la parte superior izquierda para:
* **Conecta tu buzón y tus cuentas de calendario** para una sincronización perfecta del correo electrónico y el calendario
* Personaliza tu **modelo de datos**: crea objetos personalizados, campos y relaciones
* **Accede al área de pruebas de la API y configura webhooks**
* **Gestiona los permisos de usuario** y los controles de acceso al espacio de trabajo
* Invita a los miembros del equipo y gestiona los roles de usuario
* Edita tu perfil y las preferencias del espacio de trabajo
* Configura la facturación y supervisa el uso de créditos de flujos de trabajo
* Descubre y habilita próximas funciones (en Actualizaciones → Acceso anticipado)
* **Acceder al Soporte** para comunicarte vía chat en vivo
* **Abrir la Documentación** para explorar la Guía del Usuario y la documentación para desarrolladores
<Note>Si no ves todas esas secciones en Configuración, contacta a tu administrador del espacio de trabajo — algunas secciones tienen acceso restringido.</Note>

View File

@@ -0,0 +1,59 @@
---
title: Guía de usuario
description: Bienvenido a la Guía del usuario de Twenty, tu recurso para configuraciones avanzadas y mejores prácticas.
---
import { CardTitle } from "/snippets/card-title.mdx"
<CardGroup cols={3}>
<Card href="/l/es/user-guide/data-model/overview" img="/images/user-guide/halftone/data-model.png">
<CardTitle>Modelo de datos</CardTitle>
Personaliza tu modelo de datos para adaptarlo a tus procesos empresariales.
</Card>
<Card href="/l/es/user-guide/data-migration/overview" img="/images/user-guide/halftone/data-migration.png">
<CardTitle>Migración de datos</CardTitle>
Importa y exporta tus datos mediante CSV o API.
</Card>
<Card href="/l/es/user-guide/calendar-emails/overview" img="/images/user-guide/halftone/calendar-emails.png">
<CardTitle>Calendario y correos electrónicos</CardTitle>
Centraliza las reuniones y los correos electrónicos de tu equipo.
</Card>
<Card href="/l/es/user-guide/workflows/overview" img="/images/user-guide/halftone/workflows.png">
<CardTitle>Flujos de trabajo</CardTitle>
Automatiza procesos e intégrate con herramientas externas.
</Card>
<Card href="/l/es/user-guide/ai/overview" img="/images/user-guide/halftone/ai.png">
<CardTitle>IA</CardTitle>
Potencia a tu equipo con agentes de IA.
</Card>
<Card href="/l/es/user-guide/layout/overview" img="/images/user-guide/halftone/layout.png">
<CardTitle>Diseño</CardTitle>
Navegación, vistas y personalización de la página de registro.
</Card>
<Card href="/l/es/user-guide/dashboards/overview" img="/images/user-guide/halftone/dashboards.png">
<CardTitle>Tableros</CardTitle>
Información en tiempo real para seguir el rendimiento.
</Card>
<Card href="/l/es/user-guide/permissions-access/overview" img="/images/user-guide/halftone/permissions.png">
<CardTitle>Permisos y acceso</CardTitle>
Gestiona los roles y el acceso a Twenty.
</Card>
<Card href="/l/es/user-guide/billing/overview" img="/images/user-guide/halftone/billing.png">
<CardTitle>Facturación</CardTitle>
Comprende cómo funcionan los precios y la facturación de Twenty.
</Card>
<Card href="/l/es/user-guide/settings/overview" img="/images/user-guide/halftone/settings.png">
<CardTitle>Configuración</CardTitle>
Configura las preferencias de tu espacio de trabajo.
</Card>
</CardGroup>

View File

@@ -0,0 +1,38 @@
---
title: Navegación
description: Personaliza la barra lateral izquierda para que se adapte a cómo trabaja tu equipo.
---
La barra lateral izquierda es tu forma principal de navegar por Twenty. Es totalmente personalizable — puedes reorganizarla para que se adapte a tu flujo de trabajo sin tocar ninguna página de configuración.
## Reordenar elementos
Arrastra y suelta cualquier elemento de la barra lateral para cambiar su posición. El orden se guarda por usuario, por lo que cada miembro del equipo puede organizar su propia barra lateral.
## Carpetas
Agrupa los elementos relacionados en carpetas. Por ejemplo, puedes crear una carpeta "Ventas" que contenga tus vistas del pipeline, una carpeta "Soporte" para los tickets o una carpeta "Operaciones" para objetos internos.
Para crear una carpeta, haz clic derecho en la barra lateral o usa el botón `+`.
## Ocultar objetos
Los objetos que no usas se pueden ocultar de la barra lateral. No se eliminan — simplemente quedan fuera de la vista. Puede mostrarlos de nuevo en cualquier momento desde Ajustes → Modelo de Datos.
## Favoritos
Fija vistas, registros o búsquedas en la sección Favoritos en la parte superior de la barra lateral para acceder con un solo clic. Los Favoritos son personales — cada usuario gestiona los suyos.
## Enlaces personalizados
Añade enlaces a herramientas externas directamente en la barra lateral. Útil para enlazar tu wiki, paneles en otras herramientas o cualquier URL que tu equipo use con regularidad.
## Menú de Comandos
Pulsa `Cmd+K` (o `Ctrl+K`) para abrir el Menú de Comandos — una barra de búsqueda de acceso rápido para saltar a cualquier registro, vista o acción sin navegar por la barra lateral.
## Personalizando la barra lateral
Para personalizar la barra lateral, pasa el cursor sobre la sección "Workspace" en la barra lateral y haz clic en el icono de la llave inglesa.
<img src="/images/user-guide/layout/navigation-edit-icon.png" alt="Icono de edición del menú de navegación" />

View File

@@ -0,0 +1,61 @@
---
title: Páginas de registro
description: Personaliza el diseño de las páginas de detalle de cada registro con pestañas y widgets.
---
## Resumen
Cuando abres un registro en Twenty, la página de detalle se compone de **pestañas** y **widgets**. Ambos son totalmente personalizables según el tipo de objeto.
## Pestañas
Cada página de registro puede tener varias pestañas — similares a las pestañas de un navegador. Úsalas para organizar distintos aspectos de un registro. Por ejemplo, un registro de Empresa podría tener pestañas para Resumen, Comunicación, Tareas y Archivos.
Puedes:
* Agregar y eliminar pestañas
* Cambiar el nombre de las pestañas
* Reordenar las pestañas arrastrando
* Configurar qué pestaña se muestra de forma predeterminada
## Widgets
Los widgets son los bloques básicos dentro de cada pestaña. Tipos de widgets disponibles:
| Widget | Qué muestra |
| -------------------------- | ------------------------------------------------------- |
| **Campos** | Campos del registro, agrupados o individualmente |
| **Registros relacionados** | Tabla de registros vinculados mediante una relación |
| **Correos electrónicos** | Historial de correos electrónicos de cuentas conectadas |
| **Calendario** | Eventos de calendario asociados con el registro |
| **Cronología** | Historial de actividades y eventos |
| **Tareas** | Tareas asociadas |
| **Notas** | Notas de texto enriquecido |
| **Archivos** | Archivos adjuntos |
| **Gráficos** | Datos visuales de registros relacionados |
| **iFrame** | Contenido externo incrustado |
| **Texto enriquecido** | Contenido estático o descripciones |
## Personalizar la página del registro
1. Abre cualquier registro
2. Presiona `Cmd+K` y busca "Editar diseño de la página del registro"
o
1. Ve a Configuración → Modelo de datos → objeto de tu elección → Diseño
2. Haz clic en el botón "Personalizar la página del registro" para ese objeto
3. Ahora estás en el modo de personalización:
* **Agrega widgets** desde el selector de widgets
* **Arrastra widgets** para reposicionarlos en la cuadrícula
* **Cambia el tamaño de los widgets** arrastrando sus bordes
* **Configura los campos** que se muestran dentro de cada widget
* **Gestiona las pestañas** — agregar, eliminar, cambiar el nombre, reordenar
4. Guarda tus cambios — se aplican a todos los registros de ese tipo de objeto
## Visibilidad de campos
Dentro de un widget de Campos, puedes controlar qué campos son visibles y en qué orden. Esto te permite crear diseños enfocados — por ejemplo, mostrar solo los campos más importantes en la pestaña Resumen y colocar los campos detallados en una pestaña separada.

View File

@@ -0,0 +1,45 @@
---
title: Diseño
description: Personaliza cómo navegas, exploras y visualizas registros en Twenty.
---
El diseño de Twenty es personalizable a tres niveles: cómo navegas por la aplicación, cómo exploras las listas de registros y qué ves al abrir un registro individual.
## Navegación
La barra lateral izquierda es totalmente personalizable. Puedes:
* **Reordena elementos** arrastrando y soltando
* **Crea carpetas** para agrupar objetos y vistas relacionados
* **Oculta objetos** que no usas
* **Añade enlaces personalizados** a herramientas externas
* **Fija favoritos** para acceder rápidamente a vistas, registros o búsquedas
[Referencia de navegación →](/l/es/user-guide/layout/capabilities/navigation)
## Vistas
Las vistas controlan cómo se muestran las listas de registros. Twenty admite tres tipos de vista:
| Vista | Ideal para |
| -------------- | ------------------------------------------------------------------------------------------ |
| **Tabla** | Trabajar con muchos registros a la vez — filas y columnas al estilo de una hoja de cálculo |
| **Kanban** | Seguimiento del pipeline — tarjetas de arrastrar y soltar organizadas por etapa |
| **Calendario** | Planificación basada en el tiempo — registros distribuidos en función de un campo de fecha |
Cada vista guarda sus propios filtros, ordenación, visibilidad de campos y configuración de agrupación. Las vistas pueden compartirse con el espacio de trabajo o mantenerse privadas.
[Vistas de tabla →](/l/es/user-guide/views-pipelines/capabilities/table-views) · [Vistas de Kanban →](/l/es/user-guide/views-pipelines/capabilities/kanban-views) · [Vista de calendario →](/l/es/user-guide/views-pipelines/capabilities/calendar-view)
## Páginas de registro
Cuando abres un registro, la página de detalles se compone de pestañas y widgets configurables. Puedes:
* **Añade, elimina y reordena pestañas** en cualquier tipo de registro
* **Configurar widgets** — campos, registros relacionados, correos electrónicos, línea de tiempo, calendario, tareas, notas, archivos, gráficos, iFrames y más
* **Arrastra y cambia el tamaño de los widgets** en un diseño de cuadrícula
* **Controla la visibilidad de campos** por widget
Entra en el modo de personalización del diseño desde el menú de comandos (`Cmd+K` → "Editar diseño de la página de registro").
[Referencia de páginas de registro →](/l/es/user-guide/layout/capabilities/record-pages)

View File

@@ -0,0 +1,125 @@
---
title: Preguntas frecuentes legales
description: Preguntas legales más frecuentes.
---
## Residencia de datos y transferencias internacionales
<AccordionGroup>
<Accordion title="¿En qué país y región se almacenarán nuestros datos de espacio de trabajo, archivos adjuntos, registros y copias de seguridad?">
Veinte nube se ejecuta en servidores AWS ubicados en la República Federal de Alemania, Alemania.
</Accordion>
<Accordion title="¿Puede la región de alojamiento ser fijada contractualmente para nuestro espacio de trabajo?">
La selección de la región de alojamiento estará disponible a partir de 2027, inicialmente para nuevos espacios de trabajo. Los usuarios podrán solicitar un cambio de región para un área de trabajo existente en una fecha posterior. Alternativamente, puedes contactar a [nuestros Partners](https://twenty.com/partners/list?categories=HOSTING) para ayudarte a configurar tu instancia.
</Accordion>
<Accordion title="¿Qué subprocesadores pueden procesar o acceder a nuestros datos CRM y en qué países se encuentran?">
Una lista de todos los subprocesadores está disponible en [nuestro Centro de Confianza](https://trust.twenty.com/?tab=subprocessors).
</Accordion>
<Accordion title="¿Qué salvaguardias se aplican a las transferencias internacionales de datos?">
Las cláusulas contractuales estándar de la UE, junto con las enmiendas del Reino Unido y Suiza, se aplican a las transferencias internacionales de datos fuera de la UE, incluidas las transferencias a todos los subprocesadores.
</Accordion>
</AccordionGroup>
## Acuerdo de procesamiento de datos y funciones legales
<AccordionGroup>
<Accordion title="¿Dónde podemos encontrar el actual Acuerdo de Procesamiento de Datos?">
Puede generar su DPA firmado en https://{your-domain}/settings/legal/dpa (por ejemplo, https://getting-started.twenty.com/settings/legal/dpa).
</Accordion>
<Accordion title="¿Funciona Veinte como procesador de datos para comerciantes e información de contacto almacenada en el CRM, mientras que nuestra empresa sigue siendo el controlador de datos?">
Según nuestra [Política de privacidad](https://twenty.com/privacy-policy), Veinte actúa como procesador de datos para comerciantes e información de contacto almacenada en el CRM, mientras su empresa sigue siendo el controlador de datos.
</Accordion>
<Accordion title="¿El contenido CRM se utiliza alguna vez para entrenar Veinte o AI de terceros?">
El contenido CRM se puede utilizar para capacitar modelos de IA dependiendo de los Términos y Condiciones de los subprocesadores. Veinte no tiene su propio modelo AI — todos los modelos AI disponibles en Twenty Cloud son proporcionados por nuestros subprocesadores.
</Accordion>
<Accordion title="Si existe un procesamiento de IA opcional, ¿puede estar totalmente desactivado para nuestro espacio de trabajo?">
La IA se puede desactivar totalmente apagando todos los modelos IA en Ajustes → IA → Modelos. Además, no se envían datos a la IA a menos que interactúe activamente con el chat de IA o un nodo de IA en un flujo de trabajo.
</Accordion>
</AccordionGroup>
## Controles de seguridad y acceso
<AccordionGroup>
<Accordion title="¿Se utiliza el cifrado en tránsito y en reposo, cuáles son sus prácticas de gestión de claves, y cómo se aíslan los datos de los inquilinos?">
Todos los datos se cifran en tránsito y en reposo. Los datos del arrendatario se aislan mediante una configuración de esquema por arrendatario, y las claves de cifrado se rotan periódicamente.
</Accordion>
<Accordion title="¿Qué Veinte personal o subprocesadores pueden acceder a los espacios de trabajo de los clientes, para qué propósitos y cómo se aprueba el acceso y se registra?">
Los equipos de ingeniería y soporte de Twenty pueden acceder a los espacios de trabajo de los clientes para investigar y resolver incidencias. Los propietarios de los espacios de trabajo controlan esto: el acceso de soporte se puede desactivar en cualquier momento en Configuración → General → Seguridad, y permanece desactivado hasta que lo vuelvas a activar.
</Accordion>
<Accordion title="¿Cuál es su proceso de notificación de incidentes y plazo de notificación de destino después de un incidente de seguridad confirmado que afecta a nuestros datos?">
En caso de una violación de datos personales confirmada que afecte a sus datos, le notificaremos sin demoras indebidas y, en cualquier caso, dentro de las 48 horas siguientes a ser consciente de ello. Nuestra notificación incluirá, en la medida en que se conozca en el momento: la naturaleza del incumplimiento, las categorías y el volumen aproximado de datos y individuos afectados, las consecuencias probables, y las medidas de remediación y mitigación tomadas o planificadas. Proporcionaremos actualizaciones a medida que avance la investigación.
</Accordion>
</AccordionGroup>
## retención y eliminación de datos
<AccordionGroup>
<Accordion title="Cuando se elimina un registro CRM individual, ¿cuándo se elimina de los sistemas activos?">
Cuando se elimina un registro, se borra primero y se puede restaurar. Se elimina permanentemente de los sistemas activos una vez transcurrido el período de retención o un usuario lo destruye manualmente.
</Accordion>
<Accordion title="¿Cuánto tiempo se mantienen los registros borrados de forma suave en el sistema?">
Por defecto, los registros borrados de forma blanda se mantienen durante 14 días, después de lo cual se eliminan permanentemente del sistema. El período de retención para registros borrados suavemente se puede cambiar en Ajustes → General → Seguridad.
</Accordion>
<Accordion title="¿Cuánto tiempo puede que ese registro permanezca en copias de seguridad o registros técnicos?">
Un registro eliminado permanece en copias de seguridad durante 30 días, después de lo cual se elimina permanentemente.
</Accordion>
<Accordion title="Cuando se cierra un área de trabajo o se solicita la eliminación completa, ¿qué línea de tiempo exacta se aplica a los datos de producción, adjuntos, registros y copias de seguridad?">
Cuando se elimina un espacio de trabajo, sus datos se eliminan de los sistemas en producción en un plazo de aproximadamente 90 días tras la finalización del servicio, y por lo general mucho antes. Las copias de seguridad y de archivo se sobrescriben o se eliminan posteriormente dentro de otros 90 días, después de lo cual todos los datos se eliminan de forma permanente. Durante ambos períodos, los datos están aislados de cualquier uso operativo. A petición, podemos proporcionar una certificación por escrito una vez que se complete la purga. Consulta la cláusula 4.9 de tu Acuerdo de Tratamiento de Datos para conocer todas las condiciones.
</Accordion>
<Accordion title="Durante cualquier período de retención de copia de seguridad, ¿se eliminan los datos aislados del acceso operativo y el uso?">
Sí, durante cualquier período de retención de copia de seguridad, los datos eliminados están aislados del uso operativo.
</Accordion>
<Accordion title="¿Se retienen más categorías de datos para fines legales, de facturación, de prevención de fraudes, de seguridad o de auditoría? En caso afirmativo, ¿a qué categorías y durante cuánto tiempo?">
Para más información sobre retención de datos, puedes solicitar nuestra Política de Gestión y Retención de Datos disponible en [nuestro Centro de Confianza](https://trust.twenty.com/?tab=documents).
</Accordion>
<Accordion title="¿Puede 20 proporcionar una confirmación por escrito cuando se ha completado una solicitud de eliminación completa?">
Reconocemos las solicitudes de borrado y proporcionamos confirmación por escrito una vez que se haya completado la eliminación.
</Accordion>
</AccordionGroup>
## Respaldos y resistencia
<AccordionGroup>
<Accordion title="¿Cuál es el período de frecuencia y retención de la copia de seguridad?">
Las copias de seguridad se crean continuamente con instantáneas que se toman diariamente, y el período de retención es de 30 días.
</Accordion>
<Accordion title="¿Cuál es el objetivo del punto de recuperación y el objetivo de recuperación de la nube veinte?">
RTO y RPO son 6 horas (según nuestro DPA).
</Accordion>
<Accordion title="¿Cuál es el proceso para solicitar o realizar una restauración?">
Para solicitar una restauración, comuníquese con nuestro equipo a través de chat de soporte o correo electrónico a [contact@twenty.com](mailto:contact@twenty.com).
</Accordion>
<Accordion title="¿Las copias de seguridad están cifradas y almacenadas en la misma región que los datos del espacio de trabajo principal?">
Todas las copias de seguridad son cifradas y almacenadas en lugares geográficamente separados dentro de la misma jurisdicción (por ejemplo, dentro de la UE para los datos de la UE).
</Accordion>
</AccordionGroup>
## Cumplimiento
<AccordionGroup>
<Accordion title="¿Es 20 el RGPD?">
Sí, Veinte es [compatible con el RGP](https://trust.twenty.com/?tab=securityControls\&frameworks=gdpr_v1).
</Accordion>
<Accordion title="¿Es 20 SOC 2 compatible?">
Sí, Veinte es [compatible con SOC 2](https://trust.twenty.com/?tab=securityControls\&frameworks=soc2_v1).
</Accordion>
<Accordion title="¿Es veinte HIPAA compatible?">
No, Veinte está en proceso de ser compatible con HIPAA.
</Accordion>
</AccordionGroup>
## Licencias
<AccordionGroup>
<Accordion title="Si cambio el código para añadir funciones solo para uso interno de mi equipo, ¿tengo que publicar esos cambios?">
No. Ejecutar una versión modificada solo para tu propio equipo no constituye distribución, por lo que no se genera ninguna obligación de publicación. La cláusula de red de la AGPL se aplica cuando personas externas a tu organización interactúan con tu instancia modificada a través de la red.
</Accordion>
<Accordion title="Si creo un front-end por separado y uso Twenty como backend tal cual, ¿tengo que publicar esos cambios?">
No. Tu front-end es una obra propia e independiente, y el hecho de comunicarse con Twenty a través de sus APIs no cambia eso. Como Twenty en sí no está modificado, no hay nada que publicar.
</Accordion>
<Accordion title="Si cambio el código para añadir funciones para revenderlo, ¿tengo que publicar esos cambios?">
Sí, dado que estás modificando código para distribuirlo a otros, estás obligado a publicar esos cambios. Si no quieres publicar tus cambios, puedes obtener una licencia Organization.
</Accordion>
</AccordionGroup>
Si tienes más preguntas, por favor revisa nuestros [Términos y Condiciones](https://twenty.com/terms), [Política de Privacidad](https://twenty.com/privacy-policy) y [Centro de Confianza](https://trust.twenty.com/). Si tus preguntas siguen sin responder, envíalas a [contact@twenty.com](mailto:contact@twenty.com) o a través del chat de soporte.

View File

@@ -0,0 +1,12 @@
---
title: Legal
description: Cuestiones relacionadas con aspectos legales
---
Consulta nuestras [preguntas frecuentes](/l/es/user-guide/legal/how-tos/legal-faq).
## Enlaces útiles
* [Términos y condiciones](https://twenty.com/terms)
* [Política de privacidad](https://twenty.com/privacy-policy)
* [Centro de confianza](https://trust.twenty.com/)

View File

@@ -0,0 +1,213 @@
---
title: Permisos
description: Controla el acceso a objetos, campos y ajustes con permisos basados en roles.
---
El sistema de permisos de Twenty te permite controlar el acceso a tres áreas principales:
* **Objetos y Campos**: Controla quién puede ver, editar o eliminar registros y campos individuales
* **Configuraciones**: Gestiona el acceso a la configuración del espacio de trabajo y a las funciones administrativas
* **Acciones**: Controla acciones generales del espacio de trabajo como importar datos o enviar correos electrónicos
## Crear rol
Para crear un nuevo rol:
1. Ve a **Ajustes → Miembros → Roles**
2. En **Todos los Roles**, haz clic en **+ Crear Rol**
3. Introduce un nombre para el rol
4. En la pestaña predeterminada de **Permisos**, [configura los permisos](#customize-permissions)
5. Haz clic en **Guardar** para finalizar
## Eliminar un rol
Para eliminar un rol:
1. Ve a **Ajustes → Miembros → Roles**
2. Haz clic en el rol que deseas eliminar
3. Abre la pestaña **Ajustes**, luego haz clic en **Eliminar rol**
4. Haz clic en **Confirmar** en el modal
<Note>
Si se elimina un rol, cualquier miembro del espacio de trabajo asignado a él será reasignado automáticamente al rol predeterminado. Todos los roles excepto el rol **Administrador** pueden ser eliminados. Siempre debe haber al menos un miembro asignado al rol **Admin**.
</Note>
## Asignar roles a miembros
### Ver Asignaciones Actuales
* Ve a **Ajustes → Miembros → Roles**
* Ver todos los roles y cuántos miembros están asignados a cada uno
* Ver qué miembros tienen qué roles
### Asignar un rol a un miembro
1. Ve a **Ajustes → Miembros → Roles**
2. Haz clic en el rol que deseas asignar
3. Abre la pestaña **Asignación**
4. Haz clic en **+ Asignar a miembro**
5. Selecciona al miembro del espacio de trabajo de la lista
6. Confirma la asignación
### Establecer rol predeterminado
1. Ve a **Ajustes → Miembros → Roles**
2. En la sección **Opciones**, encuentra **Rol Predeterminado**
3. Selecciona qué rol deberían recibir automáticamente los nuevos miembros
4. Los nuevos miembros del espacio de trabajo serán asignados a este rol cuando se unan
<Note>
Solo puedes asignar roles a miembros existentes del espacio de trabajo. Para invitar a nuevos miembros, utiliza [Gestión de Miembros](/l/es/user-guide/settings/capabilities/member-management).
</Note>
## Personalizar Permisos
Los permisos determinan lo que cada rol puede acceder o modificar dentro de su espacio de trabajo, incluyendo objetos del área de trabajo, registros, ajustes y acciones.
### Permisos de objetos
La sección **Objetos** controla lo que este rol puede hacer con los registros en todo tu espacio de trabajo.
#### Establecer permisos predeterminados (todos los objetos)
Primero, configura los permisos base que se aplican a **todos los objetos** de forma predeterminada:
| Permiso | Descripción |
| ------------------------------------------- | -------------------------------------------------------- |
| **Ver registros en todos los objetos** | Ver registros en listas y páginas de detalle |
| **Editar registros en todos los objetos** | Modificar registros existentes |
| **Eliminar registros en todos los objetos** | Eliminar registros de forma lógica (se pueden restaurar) |
| **Destruir registros en todos los objetos** | Eliminar registros de forma permanente |
Selecciona o deselecciona según cuál deba ser el comportamiento predeterminado para este rol.
<Note>
**Ejemplo — rol de becario**: Un becario debería poder ver todos los objetos, pero no editarlos de forma predeterminada. Activa "Ver registros en todos los objetos" pero deja "Editar registros en todos los objetos" sin marcar.
</Note>
#### Agregar excepciones a nivel de objeto
Después de establecer los valores predeterminados, usa la subsección **A nivel de objeto** para agregar reglas que anulen los valores predeterminados para objetos específicos.
Haz clic en **+ Agregar regla** y selecciona un objeto para crear una excepción.
**Reglas de ejemplo para un rol de becario:**
| Regla | Efecto |
| ------------------------------------------ | ------------------------------------------------------------------------ |
| Oportunidades → desactivar "Ver registros" | El becario no puede ver el objeto Oportunidades en absoluto |
| Personas → activar "Editar registros" | El becario puede editar registros de Personas (pero no de otros objetos) |
### Permisos a nivel de fila
<Note>
Los permisos a nivel de fila son una **función Premium** disponible en el plan **Organization** (en la nube y autoalojado).
</Note>
Los permisos a nivel de fila permiten restringir qué registros individuales puede ver o editar un rol, en función de criterios dinámicos. A diferencia de los permisos de objeto (que se aplican a un tipo de objeto completo), los permisos a nivel de fila evalúan cada registro de forma independiente.
**Casos de uso de ejemplo:**
* Los representantes de ventas solo pueden ver sus propias oportunidades
* Los gerentes pueden ver todos los registros de su región
* Los agentes de soporte solo pueden ver los tickets que les han sido asignados
Para configurar los permisos a nivel de fila, abre un rol, ve a la pestaña **Objetos** y usa la sección **Nivel de fila** para definir condiciones de filtro para un objeto específico.
### Permisos de campos
Dentro de cada regla a nivel de objeto, puedes ir más allá y configurar **permisos a nivel de campo** para controlar el acceso a campos específicos.
| Permiso | Descripción |
| ---------------- | ---------------------------------- |
| **Ver campo** | Ver el valor del campo |
| **Editar campo** | Modificar el valor del campo |
| **Sin acceso** | El campo está completamente oculto |
**Ejemplo — Restringir campos sensibles:**
Para el rol de becario con acceso de edición en Personas, es posible que quieras restringir ciertos campos:
* Personas → Correo electrónico → solo **Ver campo** (no puede editar)
* Personas → Dirección → **Sin acceso** (completamente oculto)
Esto permite que el becario edite la mayoría de los campos de Personas mientras se protege la información sensible.
### Cómo funciona la herencia de permisos
Los permisos se aplican en cascada de lo general a lo específico:
1. **Todos los objetos** → establece la base para todos los objetos
2. **Reglas a nivel de objeto** → anulan la base para objetos específicos
3. **Reglas a nivel de campo** → anulan la configuración del objeto para campos específicos
Las configuraciones más específicas siempre tienen prioridad.
### Gestión de Excepciones de Permisos
Para anular permisos heredados:
1. Haz clic en **X** para eliminar la regla heredada
2. Selecciona los permisos específicos que quieras
3. Haz clic en el ícono naranja de **Deshacer** (flecha circular) para revertir los cambios
Cuando termines, haz clic en **Finalizar**, luego en **Guardar** una vez que seas redirigido a la página del rol.
### Permisos de Configuraciones del Espacio de Trabajo
Controla el acceso a configuraciones del espacio de trabajo de dos maneras:
* Activa **Acceso Completo a Configuraciones** para otorgar acceso completo
* O habilita permisos específicos (p. ej., generación de claves de API, preferencias del espacio de trabajo, asignación de roles, configuración del modelo de datos, ajustes de seguridad y gestión de flujos de trabajo)
<Note>
**Limitación actual**: Actualmente se requiere acceso a la gestión de flujos de trabajo para activar manualmente los flujos de trabajo. Este comportamiento puede cambiar en versiones futuras.
</Note>
### Permisos de Acción del Espacio de Trabajo
Controla el acceso a acciones generales del espacio de trabajo:
* Activa **Acceso Completo a la Aplicación** para otorgar permisos completos
* O habilita acciones individuales como **Enviar Email**, **Importar CSV** y **Exportar CSV**
## Asignar roles a claves API y agentes AI
Además de los miembros del espacio de trabajo, los roles también se pueden asignar a **claves de API** y **agentes de IA**. Esto es especialmente útil para los equipos que desean controlar exactamente "quién" puede hacer qué en su espacio de trabajo, incluidos los procesos automatizados y las integraciones.
### ¿Por qué asignar roles a claves de API y agentes de IA?
* **Seguridad**: Limita a qué pueden acceder o qué pueden modificar los procesos automatizados
* **Cumplimiento**: Garantiza que las integraciones solo interactúen con los datos que necesitan
* **Control**: Evita cambios accidentales de datos por automatizaciones mal configuradas
* **Auditabilidad**: Registra qué acciones realizó cada integración o agente
### Asignar un rol a una clave de API
1. Ve a **Ajustes → Miembros → Roles**
2. Haz clic en el rol que deseas asignar
3. Abre la pestaña **Asignación**
4. En **Claves de API**, haz clic en **+ Asignar a clave de API**
5. Selecciona la clave de API de la lista
6. Confirma la asignación
La clave de API heredará ahora todos los permisos definidos por ese rol. Cualquier llamada a la API realizada con esta clave se restringirá en consecuencia.
<Note>
Las claves de API sin un rol asignado utilizan los permisos predeterminados. Para mayor seguridad, asigna siempre un rol específico a las claves de API de producción.
</Note>
### Asignar un rol a un agente de IA
1. Ve a **Ajustes → Miembros → Roles**
2. Haz clic en el rol que deseas asignar
3. Abre la pestaña **Asignación**
4. En **Agentes de IA**, haz clic en **+ Asignar a agente de IA**
5. Selecciona el agente de IA de la lista
6. Confirma la asignación
El agente de IA solo podrá acceder a los datos y realizar las acciones permitidas por el rol asignado.
<Note>
Para los agentes de IA que se ejecutan dentro de flujos de trabajo, esto garantiza que el agente no pueda acceder ni modificar datos fuera de su alcance previsto, incluso si el flujo de trabajo tiene permisos más amplios.
</Note>

View File

@@ -0,0 +1,125 @@
---
title: Configuración de SSO
description: Configure el inicio de sesión único (SSO) para una autenticación empresarial segura.
---
## Acerca de SSO
El inicio de sesión único (SSO) permite que los miembros de su equipo inicien sesión en Twenty utilizando el proveedor de identidad de su organización. Esto proporciona:
* **Control de acceso centralizado**: Gestione el acceso desde un solo lugar
* **Mayor seguridad**: Aproveche sus políticas de seguridad existentes
* **Mejor experiencia de usuario**: Un único conjunto de credenciales para todas las herramientas
## Proveedores compatibles
Twenty admite SSO con:
* **SAML 2.0**: Funciona con la mayoría de los proveedores de identidad empresariales
* **Google Workspace**: Para organizaciones que usan Google
* **Microsoft Entra ID** (anteriormente Azure AD): Para entornos Microsoft
## Configuración de SSO
### Prerrequisitos
* Plan de organización (espacios de trabajo en la nube y autoalojados)
* Acceso de administrador a su proveedor de identidad
* Acceso admin a tu área de trabajo Veinte
### Pasos de configuración
#### 1. Acceda a la configuración de SSO
1. Vaya a **Ajustes → Seguridad**
2. Busque la sección **Configuración de SSO**
3. Haga clic en **Configurar SSO**
#### 2) Elija su proveedor
Seleccione su proveedor de identidad de la lista o elija "Custom SAML" para otros proveedores.
#### 3. Configure su proveedor de identidad
Deberá configurar su proveedor de identidad con:
* **Entity ID**: Proporcionado por Twenty
* **ACS URL**: La URL de retorno para la autenticación
* **Certificado**: Para comunicación segura
#### 4. Introduzca los detalles del proveedor en Twenty
* **SSO URL**: URL de inicio de sesión de su proveedor
* **Entity ID**: Identificador de su proveedor
* **Certificado**: Certificado X.509 de su proveedor
#### 5. Probar y habilitar
1. Haga clic en **Probar configuración** para verificar la configuración
2. Habilite SSO cuando las pruebas sean satisfactorias
3. Configure las preferencias de aprovisionamiento de usuarios
## Aprovisionamiento de usuarios
### Aprovisionamiento Just-in-Time (JIT)
* Los usuarios se crean automáticamente en su primer inicio de sesión
* A los usuarios se les asigna un rol por defecto automáticamente
* No se requiere creación manual de usuarios
### Aprovisionamiento manual
* Invite a los usuarios antes de que puedan iniciar sesión
* Preasigne roles específicos
* Más control sobre quién puede acceder al área de trabajo
## Gestión de usuarios de SSO
### Asignación de roles
A los usuarios de SSO se les pueden asignar roles como a los usuarios habituales:
1. Ir a **Ajustes → Miembros**
2. Busque al usuario
3. Cambie su rol según sea necesario
### Revocación de acceso
Para eliminar el acceso de los usuarios de SSO:
* Elimínelos de su proveedor de identidad o
* Elimínelos del espacio de trabajo de Twenty
## Mejores prácticas
### Seguridad
* **Requerir SSO**: Deshabilite el inicio de sesión con contraseña para usuarios de SSO
* **Auditorías periódicas**: Revise el acceso periódicamente
* **Políticas sólidas del IdP**: Aplique MFA en el proveedor de identidad
### Gestión de usuarios
* **Nomenclatura clara**: Utilice una nomenclatura coherente en su directorio
* **Asignación de grupos**: Asigne los grupos del IdP a roles de Twenty (si está disponible)
* **Proceso de desvinculación**: Incluya Twenty en su flujo de trabajo de desaprovisionamiento
## Solución de Problemas
### Problemas comunes
* **Errores de certificación**: Asegúrate de que el certificado no haya caducado
* **Incompatibilidad de URL**: Verifica que la URL ACS coincida exactamente
* **Usuario no encontrado**: Verifique la configuración de aprovisionamiento JIT
### Obtención de Ayuda
Si encuentra problemas, póngase en contacto con soporte y proporcione:
* Mensajes de error recibidos
* Proveedor de identidad en uso
* Detalles de la configuración (sin datos sensibles)
<Tip>
¿Necesitas configurar SSO para tu organización? [Encuentra un partner certificado de Twenty](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-sso) especializado en la configuración de SSO e identidad. *(¿Prefieres involucrar directamente a Twenty? [contact@twenty.com](mailto:contact@twenty.com))*
</Tip>

View File

@@ -0,0 +1,120 @@
---
title: Preguntas frecuentes sobre permisos
description: Preguntas frecuentes sobre roles y permisos.
---
## Roles
<AccordionGroup>
<Accordion title="¿Qué roles incluye Twenty por defecto?">
Veinte viene con roles **Admin** y **Member** por defecto. Puedes crear roles personalizados adicionales según las necesidades de tu equipo (p. ej., Representante de ventas, Gerente, Usuario de solo lectura).
</Accordion>
<Accordion title="¿Puedo eliminar el rol de Admin?">
No, el rol de Admin no se puede eliminar. Siempre debe haber al menos un miembro asignado al rol de Admin.
</Accordion>
<Accordion title="¿Qué ocurre cuando elimino un rol?">
Cualquier miembro del espacio de trabajo asignado a ese rol será reasignado automáticamente al rol predeterminado.
</Accordion>
<Accordion title="¿Cómo configuro un rol predeterminado para los nuevos miembros?">
Ve a **Ajustes → Miembros → Roles**, busca la opción **Rol predeterminado** y selecciona qué rol deben recibir automáticamente los nuevos miembros cuando se unan.
</Accordion>
<Accordion title="¿Puedo asignar varios roles a un usuario?">
No, cada usuario solo puede tener un rol a la vez. Crea un rol personalizado si necesitas una combinación de permisos.
</Accordion>
</AccordionGroup>
## Permisos
<AccordionGroup>
<Accordion title="¿Cuál es la diferencia entre los permisos de objeto y de campo?">
* **Permisos de objeto**: Controlan el acceso a registros completos (p. ej., ver/editar/eliminar registros de Personas)
* **Permisos de campo**: Controlan el acceso a campos específicos dentro de un objeto (p. ej., ver pero no editar el campo Salario)
Los permisos de campo permiten un control más granular sobre los datos sensibles.
</Accordion>
<Accordion title="¿Cómo funcionan las anulaciones de permisos?">
Los permisos se aplican en cascada de lo general a lo específico:
1. **Todos los objetos** establece la base para todos los objetos
2. **Permisos a nivel de objeto** pueden anular la configuración global para objetos específicos
3. **Permisos a nivel de campo** pueden anular la configuración del objeto para campos específicos
Las configuraciones más específicas siempre tienen prioridad.
</Accordion>
<Accordion title="¿Qué significan los distintos niveles de permisos?">
Para objetos:
* **Ver registros**: Ver registros en listas y páginas de detalle
* **Editar registros**: Modificar registros existentes
* **Eliminar registros**: Eliminación lógica de registros (se pueden restaurar)
* **Destruir registros**: Eliminar registros de forma permanente
Para campos:
* **Ver campo**: Ver el valor del campo
* **Editar campo**: Modificar el valor del campo
* **Sin acceso**: El campo está completamente oculto
</Accordion>
<Accordion title="¿Puedo restringir el acceso a registros específicos (permisos a nivel de fila)?">
Los permisos a nivel de fila están disponibles en el plan **Organization**. Esto te permite restringir el acceso a registros específicos según criterios (p. ej., ver solo tus propias oportunidades).
</Accordion>
<Accordion title="¿Cómo hago que un campo sea de solo lectura para ciertos usuarios?">
1. Ve a **Ajustes → Miembros → Roles**
2. Selecciona el rol
3. Navega hasta el objeto que contiene el campo
4. Configura el permiso del campo en **See Field** (sin Edit Field)
</Accordion>
</AccordionGroup>
## Ajustes y acciones
<AccordionGroup>
<Accordion title="¿Qué permisos de configuración están disponibles?">
Puedes controlar el acceso a:
* Generación de claves de API
* Preferencias del espacio de trabajo
* Asignación de roles
* Configuración del modelo de datos
* Configuración de seguridad
* Gestión de flujos de trabajo
Usa **Settings All Access** para otorgar acceso total o habilita permisos específicos.
</Accordion>
<Accordion title="¿Qué permisos de acción están disponibles?">
Puedes controlar:
* **Send Email**: Capacidad para enviar correos desde Twenty
* **Import CSV**: Capacidad para importar datos mediante CSV
* **Export CSV**: Capacidad para exportar datos a CSV
Usa **Application All Access** para otorgar todas las acciones o habilitar acciones específicas.
</Accordion>
</AccordionGroup>
## SSO
<AccordionGroup>
<Accordion title="¿Está disponible el SSO en todos los planes?">
No, SSO es una función Premium disponible solo en el plan **Organization**.
</Accordion>
<Accordion title="¿Qué proveedores de identidad son compatibles?">
Twenty es compatible con:
* **SAML 2.0** (funciona con la mayoría de los proveedores de identidad empresariales)
* **Google Workspace**
* **Microsoft Entra ID** (anteriormente Azure AD)
</Accordion>
<Accordion title="¿Qué es el aprovisionamiento Just-in-Time (JIT)?">
Con el aprovisionamiento JIT, las cuentas de usuario se crean automáticamente en Twenty cuando alguien inicia sesión mediante SSO por primera vez. Se les asigna automáticamente el rol predeterminado.
</Accordion>
<Accordion title="¿Puedo exigir SSO para todos los usuarios?">
Sí, una vez configurado SSO, puedes desactivar el inicio de sesión con contraseña para los usuarios de SSO y forzar la autenticación a través de tu proveedor de identidad.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,34 @@
---
title: Permisos y acceso
description: Administra roles, permisos y el control de acceso en tu espacio de trabajo.
---
El sistema de permisos de Twenty te permite controlar quién puede acceder y modificar los datos en tu espacio de trabajo. Crea roles, asigna permisos y configura SSO para un acceso seguro.
## Qué incluye esta sección
<CardGroup cols={2}>
<Card title="Permisos" icon="lock" href="/l/es/user-guide/permissions-access/capabilities/permissions">
Crea roles y configura permisos de objetos, campos y configuración.
</Card>
<Card title="Configuración de SSO" icon="key" href="/l/es/user-guide/permissions-access/capabilities/sso-configuration">
Configura el inicio de sesión único (SSO) con tu proveedor de identidad.
</Card>
<Card title="Preguntas frecuentes" icon="circle-question" href="/l/es/user-guide/permissions-access/how-tos/permissions-faq">
Preguntas comunes sobre roles, permisos y SSO.
</Card>
</CardGroup>
## Características clave
* **Acceso basado en roles**: Crea roles personalizados con permisos específicos
* **Permisos de objetos**: Controla quién puede ver, editar o eliminar registros
* **Permisos de campos**: Restringe el acceso a campos sensibles
* **Permisos de configuración**: Controla el acceso a la configuración del espacio de trabajo
* **Integración con SSO**: Configura el inicio de sesión único para seguridad a nivel empresarial (plan Organization)
## Enlaces rápidos
* [Crea un rol](/l/es/user-guide/permissions-access/capabilities/permissions#create-a-role)
* [Configurar SSO](/l/es/user-guide/permissions-access/capabilities/sso-configuration)
* [Administrar miembros del equipo](/l/es/user-guide/settings/capabilities/member-management)

View File

@@ -0,0 +1,36 @@
---
title: Configuración de la comunidad
description: Habilita las funciones de acceso anticipado en Twenty.
---
## Acerca de la configuración de la comunidad
La sección Comunidad te permite habilitar funciones de acceso anticipado antes de que estén disponibles de forma general, así como buscar socios de Twenty.
## Funciones de acceso anticipado
Las funciones de acceso anticipado son capacidades que todavía se están probando antes de la disponibilidad general.
**Actualmente en acceso anticipado:**
* **Relaciones de unión** — Relaciones de muchos a muchos
### Cómo habilitar las funciones de acceso anticipado
1. Ve a **Ajustes → Comunidad**
2. Ve a la sección **Funciones**
3. Busca la función que deseas habilitar
4. Actívala
5. La función estará disponible de inmediato
<Note>
Las funciones de acceso anticipado pueden cambiar según los comentarios de los usuarios. ¡Tus comentarios ayudan a mejorar Twenty!
</Note>
## Comentarios sobre las funciones
Tus comentarios ayudan a mejorar Twenty:
* Reporta problemas con las funciones de acceso anticipado
* Comparte cómo estás usando las nuevas funciones
* Sugiere mejoras a través del [Discord de la comunidad](https://discord.gg/cx5n4Jzs57)

View File

@@ -0,0 +1,52 @@
---
title: Configuración de Dominios
description: Configura el dominio del espacio de trabajo, los dominios de acceso aprobados y los dominios personalizados de la app.
---
La configuración de dominios se encuentra en tres lugares, según lo que estés configurando.
## Dominio del espacio de trabajo
Configure bajo **Ajustes → General**.
Edita el nombre de tu subdominio o establece un dominio personalizado para tu espacio de trabajo.
### Personalizar dominio
1. Haz clic en **Subdominio** para editar tu subdominio (por ejemplo, `tuempresa.twenty.com`)
2. O haga clic en **dominio personalizado** para configurar un dominio personalizado (por ejemplo, `crm.yourcompany.com`)
Para dominios personalizados, tendrás que configurar los ajustes de DNS con tu proveedor de dominio.
## Dominios Aprobados
Configura en **Ajustes → Miembros → Invitar**.
Añada el dominio de su empresa para que los miembros del equipo se registren en este espacio de trabajo automáticamente.
### Añadir Dominio de Acceso Aprobado
1. Haz clic en **Añadir Dominio de Acceso Aprobado**
2. Introduce el dominio de tu empresa (p. ej., `yourcompany.com`)
3. Guardar
Una vez configurado, cualquiera con una dirección de correo electrónico en ese dominio puede unirse a tu espacio de trabajo sin necesidad de una invitación directa.
<Note>
Esto es útil para permitir que todo tu equipo se autorregistre y, al mismo tiempo, mantener el espacio de trabajo restringido a tu organización.
</Note>
## Dominios personalizados de la app
Configura en **Ajustes → Aplicaciones → tu app → Ajustes → URL de la app**.
Las apps que exponen rutas en la web se sirven desde una URL dedicada, que se muestra en la sección **URL de la app**. En su lugar, puedes servir una app desde un dominio que poseas.
### Agregar dominio personalizado
1. Haga clic en **dominio personalizado**
2. Introduce el dominio que quieres usar (p. ej., `app.yourcompany.com`)
3. Configura los ajustes de DNS según las instrucciones
4. Verifica el dominio
Solo las rutas de esa app son accesibles en el dominio. Los certificados SSL se aprovisionan automáticamente.

View File

@@ -0,0 +1,38 @@
---
title: Ajustes de experiencia
description: Personaliza el tema de tu interfaz y las preferencias regionales.
---
Personaliza tu experiencia con Twenty en **Ajustes → Experiencia**.
## Apariencia
Elige tu tema visual:
* **Claro**: Interfaz limpia y luminosa
* **Oscuro**: Más fácil para la vista en condiciones de poca luz
* **Ajustes del sistema**: Se ajusta automáticamente al tema de tu dispositivo
## Idioma
Selecciona tu idioma preferido para la interfaz de Twenty en el menú desplegable.
## Formatos
Configurar fecha, hora, número, zona horaria y día de inicio del calendario.
| Ajuste | Descripción |
| -------------------------------- | ------------------------------------------------------------------- |
| **Zona horaria** | Tu zona horaria local para marcas de tiempo y programación precisas |
| **Formato de fecha** | Cómo se muestran las fechas (p. ej., 12 dic 2025) |
| **Formato de hora** | Formato de 12 horas (7:22 p. m.) o de 24 horas |
| **Formato de número** | Separadores de decimales y de miles (p. ej., 1.234,56) |
| **Día de inicio del calendario** | Primer día de la semana (domingo o lunes) |
Cada ajuste puede configurarse en **Ajustes del sistema** para coincidir automáticamente con las preferencias de tu dispositivo, o puedes elegir un formato específico.
## Cómo actualizar
1. Ve a **Ajustes → Experiencia**
2. Ajusta tus preferencias en cada sección
3. Los cambios se guardan automáticamente

View File

@@ -0,0 +1,86 @@
---
title: Gestión de Miembros
description: Invita a los miembros del equipo y gestiona el acceso al espacio de trabajo.
---
Gestiona quién tiene acceso a tu espacio de trabajo en **Ajustes → Miembros**.
## Invitar Nuevos Miembros
### Usando la Invitación por Correo Electrónico
1. Ve a **Ajustes → Miembros → Invitar**
2. Haz clic en **+ Invitar**
3. Introduce la dirección de correo electrónico de la persona
4. Selecciona un rol para el nuevo miembro
5. Haz clic en **Enviar invitación**
La persona invitada recibirá un correo electrónico con un enlace para unirse a tu espacio de trabajo.
### Usando el Enlace de Invitación
1. Ve a **Ajustes → Miembros → Invitar**
2. Copiar el enlace de invitación a la área de trabajo
3. Compartir el enlace con nuevos miembros del equipo
4. Obtendrán acceso una vez que se registren
## Ver y gestionar miembros
### Ver todos los miembros
Ve a **Ajustes → Miembros → Equipo** para ver a todos los miembros activos
Ve a **Ajustes → Miembros → Invitar** para ver las invitaciones pendientes
### Editar el perfil de un miembro
Haz clic en un miembro para abrir su página de perfil. Como administrador, puedes:
* Editar su **nombre**
* Actualizar su **foto de perfil**
* **Iniciar sesión como** su cuenta (útil para la resolución de problemas)
* **Eliminar** su cuenta
### Cambiar el rol de un miembro
En la página de perfil del miembro:
1. Abre la pestaña **Permisos**
2. Consulta el rol asignado actualmente
3. Selecciona un rol diferente en el menú desplegable
4. El cambio surte efecto de inmediato
→ [Más información sobre roles y permisos](/l/es/user-guide/permissions-access/capabilities/permissions)
### Eliminar un miembro
1. Haz clic en el miembro para abrir su perfil
2. Haga clic en **Eliminar cuenta** para eliminarlos del área de trabajo
<Warning>
Los miembros eliminados pierden el acceso de inmediato. Sus datos (registros, notas, tareas) permanecen en el espacio de trabajo.
</Warning>
<Note>
Los correos electrónicos y eventos del calendario del miembro eliminado están archivados y disponibles para otros miembros.
</Note>
## Invitaciones pendientes
Gestiona las invitaciones que no se han aceptado:
* **Reenviar**: enviar nuevamente el correo electrónico de invitación
* **Cancelar**: revocar la invitación antes de que sea aceptada
## Dominios de Acceso Aprobado
Permite que los miembros del equipo se unan automáticamente según su dominio de correo electrónico:
1. Ve a **Ajustes → Miembros → Invitar**
2. Introduce el dominio de tu empresa (p. ej., `yourcompany.com`)
3. Cualquiera con ese dominio de correo electrónico puede unirse sin invitación
## Relacionado
* [Permisos](/l/es/user-guide/permissions-access/capabilities/permissions) — configura lo que cada rol puede hacer
* [Configuración del dominio](/l/es/user-guide/settings/capabilities/domains-settings) — configurar los dominios aprobados

View File

@@ -0,0 +1,43 @@
---
title: Ajustes del perfil
description: Gestiona tu perfil personal y los ajustes de seguridad.
---
## Información personal
### Nombre y correo electrónico
* **Nombre para mostrar**: Actualiza cómo aparece tu nombre a otros miembros del espacio de trabajo
* **Correo electrónico**: Cambia tu correo de inicio de sesión (requiere verificación)
* **Foto de perfil**: Carga un avatar personalizado o utiliza tus iniciales
## Configuración de seguridad
### Autenticación de dos factores (2FA)
Habilita 2FA para agregar una capa extra de seguridad a tu cuenta.
1. Ve a **Ajustes → Perfil**
2. Haz clic en **Aplicación de autenticación**
3. Escanea el código QR con tu aplicación de autenticación
4. Introduce el código de verificación para confirmar
### Gestión de contraseñas
* **Cambiar contraseña**: Actualiza tu contraseña actual
* **Requisitos de la contraseña**: Debe tener al menos 8 caracteres
## Gestión del perfil
### Eliminar cuenta
<Warning>
Eliminar tu cuenta eliminará permanentemente tu acceso a todos los espacios de trabajo. Esta acción no se puede deshacer. Perderás el acceso a todos los espacios de trabajo de los que eres miembro. Si solo quieres salir de equipos específicos, considera salir de espacios de trabajo individuales en su lugar.
</Warning>
Para eliminar tu cuenta:
1. Ve a **Ajustes → Perfil**
2. Desplázate hasta **Zona de peligro**
3. Haz clic en **Eliminar cuenta**
4. Confirma escribiendo tu dirección de correo electrónico

View File

@@ -0,0 +1,30 @@
---
title: Configuración del Espacio de Trabajo
description: Personaliza el nombre y la marca de tu espacio de trabajo.
---
Se puede acceder a la imagen de tu área de trabajo, el nombre y las opciones de borrado en **Ajustes → General**.
## Imagen del Espacio de Trabajo
* **Subir Logo**: Añade un logo personalizado para el espacio de trabajo
* **Formatos admitidos**: Archivos PNG, JPEG y GIF de menos de 10MB
* **Eliminar**: Elimina el logo actual del espacio de trabajo
## Nombre del espacio de trabajo
* **Nombre**: Cambia el nombre visible de tu espacio de trabajo
* Este nombre aparece para todos los miembros del espacio de trabajo
## Zona de Peligro
<Warning>
Eliminar su área de trabajo elimina permanentemente todos los datos e inmediatamente revoca el acceso para todos los miembros — esta acción no se puede deshacer.
</Warning>
Para eliminar tu espacio de trabajo:
1. Haga clic en el botón **Eliminar área de trabajo**
2. Confirma la eliminación cuando se te solicite
**Nota**: Solo los administradores del espacio de trabajo pueden eliminar espacios de trabajo.

View File

@@ -0,0 +1,171 @@
---
title: Preguntas frecuentes sobre configuración
description: Preguntas frecuentes sobre los ajustes de Twenty.
---
## Configuración del Espacio de Trabajo
<AccordionGroup>
<Accordion title="¿Cómo cambio el nombre de mi espacio de trabajo?">
1. Ve a **Ajustes → General**
2. Busca el campo Nombre del espacio de trabajo
3. Introduce tu nuevo nombre
4. Los cambios se guardan automáticamente
</Accordion>
<Accordion title="¿Cómo actualizo el logotipo de mi espacio de trabajo?">
1. Ve a **Ajustes → General**
2. Haz clic en el logotipo actual o en el área de carga
3. Selecciona un archivo de imagen (PNG, JPEG o GIF de menos de 10 MB)
4. El logotipo se actualiza de inmediato
</Accordion>
<Accordion title="¿Puedo tener varios espacios de trabajo?">
Sí, puedes crear y ser miembro de varios espacios de trabajo. Cada espacio de trabajo tiene sus propios datos, ajustes y suscripción.
</Accordion>
<Accordion title="¿Cómo elimino mi espacio de trabajo?">
1. Ve a **Ajustes → General**
2. Desplázate hasta Zona de peligro
3. Haz clic en **Eliminar espacio de trabajo**
4. Confirma la eliminación
Nota: Esto elimina permanentemente todos los datos y no se puede deshacer.
</Accordion>
<Accordion title="Creé varios espacios de trabajo por accidente. ¿Qué debo hacer?">
Elimina los espacios de trabajo que ya no necesitas en **Ajustes → General → Eliminar espacio de trabajo**.
<Warning>
No elimines tu **cuenta** (accesible en Ajustes → Perfil): tu cuenta se comparte entre todos tus espacios de trabajo. Eliminar tu cuenta elimina el acceso a TODOS los espacios de trabajo.
</Warning>
</Accordion>
<Accordion title="¿Cómo desactivo mi espacio de trabajo sin eliminarlo?">
Si quieres desactivar temporalmente tu espacio de trabajo (no eliminarlo de forma permanente), ve a **Ajustes → Facturación** y haz clic en **Cancelar plan**. Tus datos se conservarán durante un período de gracia.
</Accordion>
</AccordionGroup>
## Ajustes del perfil
<AccordionGroup>
<Accordion title="¿Cómo cambio mi contraseña?">
1. Ve a **Ajustes → Perfil**
2. Busca la sección Contraseña
3. Introduce tu contraseña actual
4. Introduce tu nueva contraseña
5. Guarda los cambios
</Accordion>
<Accordion title="¿Cómo activo la autenticación de dos factores?">
1. Ve a **Ajustes → Perfil**
2. Busca la sección 2FA
3. Haz clic en **Habilitar 2FA**
4. Escanea el código QR con tu aplicación de autenticación
5. Introduce el código de verificación
</Accordion>
<Accordion title="¿Puedo cambiar mi dirección de correo electrónico?">
Para cambiar tu dirección de correo electrónico, ponte en contacto con [contact@twenty.com](mailto:contact@twenty.com).
</Accordion>
<Accordion title="¿Cómo elimino mi cuenta?">
1. Ve a **Ajustes → Perfil**
2. Desplázate hasta Zona de peligro
3. Haz clic en **Eliminar cuenta**
4. Confirma escribiendo tu correo electrónico
Nota: Esto elimina tu acceso a todos los espacios de trabajo y borra todos los correos electrónicos sincronizados desde tus cuentas conectadas.
</Accordion>
</AccordionGroup>
## Ajustes de experiencia
<AccordionGroup>
<Accordion title="¿Cómo cambio entre el modo claro y el oscuro?">
1. Ve a **Ajustes → Experiencia**
2. Busca la sección Tema
3. Selecciona Claro, Oscuro o Sistema
</Accordion>
<Accordion title="¿Cómo cambio el formato de la fecha?">
1. Ve a **Ajustes → Experiencia**
2. Busca Formato de fecha
3. Selecciona tu formato preferido
4. Los cambios se aplican de inmediato
</Accordion>
<Accordion title="¿Cómo cambio mi zona horaria?">
1. Ve a **Ajustes → Experiencia**
2. Busca Zona horaria
3. Selecciona tu zona horaria local
4. Todas las marcas de tiempo se ajustarán
</Accordion>
<Accordion title="¿Puedo cambiar el idioma?">
1. Ve a **Ajustes → Experiencia**
2. Busca Idioma
3. Selecciona entre los idiomas disponibles
4. La interfaz se actualiza según tu selección
</Accordion>
</AccordionGroup>
## Ajustes de la cuenta
<AccordionGroup>
<Accordion title="¿Cómo conecto mi cuenta de correo electrónico?">
1. Ve a **Ajustes → Cuentas**
2. Haz clic en **Añadir cuenta**
3. Elige Google o Microsoft
4. Autoriza el acceso
5. Configura los ajustes de sincronización
</Accordion>
<Accordion title="¿Puedo conectar varias cuentas de correo electrónico?">
Sí, puedes conectar varias cuentas de correo electrónico. Ve a **Ajustes → Cuentas** y añade cuentas adicionales según sea necesario.
</Accordion>
<Accordion title="¿Cómo desconecto una cuenta de correo electrónico?">
1. Ve a **Ajustes → Cuentas**
2. Busca la cuenta que quieres eliminar
3. Haz clic en **Desconectar**
4. Confirma la acción
</Accordion>
</AccordionGroup>
## Dominios
<AccordionGroup>
<Accordion title="¿Puedo personalizar el dominio de mi espacio de trabajo?">
¡Sí! Ve a **Ajustes → General → Dominio del espacio de trabajo** y haz clic en **Personalizar dominio**. Tienes dos opciones:
* **Subdominio**: Usa un subdominio de Twenty como `yourcompany.twenty.com`
* **Dominio personalizado**: Usa tu propio dominio como `crm.yourcompany.com` (requiere configuración de DNS)
Un subdominio se configura rápidamente, mientras que un dominio personalizado ofrece una experiencia completamente de marca para tu equipo.
</Accordion>
<Accordion title="¿Cómo funcionan los dominios de acceso aprobados?">
Puedes configurar dominios de acceso aprobados para que los miembros del equipo con direcciones de correo de la empresa puedan unirse automáticamente a tu espacio de trabajo. Ve a **Ajustes → Miembros → Invitar** y añade el dominio de tu empresa (p. ej., `yourcompany.com`).
</Accordion>
</AccordionGroup>
## Funciones de acceso anticipado
<AccordionGroup>
<Accordion title="¿Qué son las funciones de acceso anticipado?">
Las funciones de acceso anticipado son capacidades que se están probando antes del lanzamiento general.
</Accordion>
<Accordion title="¿Es seguro usar las funciones de acceso anticipado?">
Las funciones de acceso anticipado son funcionales y seguras de usar, pero pueden cambiar basándose en la retroalimentación del usuario antes de la disponibilidad general.
</Accordion>
<Accordion title="¿Cómo habilito las funciones de acceso anticipado?">
1. Ve a **Ajustes → Comunidad**
2. Desplácese hasta la sección **Características**
3. Busca la función que deseas
4. Actívala
5. La función está disponible de inmediato
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,62 @@
---
title: Configuración
description: Configura tu espacio de trabajo de Twenty con ajustes esenciales.
---
## Configuración inicial
Cuando creas tu espacio de trabajo por primera vez, hay varios ajustes clave que configurar.
### Nombre y logotipo del espacio de trabajo
1. Ve a **Ajustes → General**
2. Actualiza el nombre de tu espacio de trabajo
3. Sube el logotipo de tu empresa
4. Guarda los cambios
### Zona horaria y formato de fecha
1. Ve a **Ajustes → Experiencia**
2. Selecciona tu zona horaria
3. Elige tu formato de fecha preferido
4. Guarda los cambios
## Ajustes esenciales
### Conecta el correo electrónico y el calendario
Configura la sincronización de correo electrónico y calendario:
1. Ve a **Ajustes → Cuentas**
2. Haz clic en **Añadir cuenta**
3. Conecta tu cuenta de Google o Microsoft
4. Configura los ajustes de sincronización
→ [Guía completa de configuración de correo y calendario](/l/es/user-guide/calendar-emails/overview)
### Invita a tu equipo
Añade miembros del equipo a tu espacio de trabajo:
1. Ir a **Ajustes → Miembros**
2. Haz clic en **+ Invitar**
3. Introduce direcciones de correo electrónico
4. Asigna los roles adecuados
<Note>
Antes de invitar a tu equipo, verifica el rol predeterminado en **Ajustes → Miembros → Roles**. A los nuevos miembros se les asigna automáticamente este rol al unirse.
</Note>
## Lista de verificación de los ajustes del espacio de trabajo
* Nombre y logotipo del espacio de trabajo configurados
* Zona horaria y formato de fecha configurados
* Correo electrónico y calendario conectados
* Miembros del equipo invitados
* Roles y permisos configurados
## Próximos Pasos
* [Configuración del espacio de trabajo](/l/es/user-guide/settings/capabilities/workspace-settings)
* [Configuración del perfil](/l/es/user-guide/settings/capabilities/profile-settings)
* [Configuración de la experiencia](/l/es/user-guide/settings/capabilities/experience-settings)

View File

@@ -0,0 +1,46 @@
---
title: Vista del calendario
description: Mostrar registros con campos de fecha en un calendario.
---
## Acerca de la vista de calendario
La vista de calendario muestra sus registros en un calendario según un campo de fecha. Cada registro aparece como un evento en la fecha correspondiente.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creación de una vista de calendario
1. Navegue hasta un objeto con campos de fecha
2. Haga clic en el menú desplegable de la vista → **+ Agregar vista**
3. Nombre de la vista y haga clic en **Crear**
4. Abra las **Opciones** a la derecha
5. Seleccione **Calendario** como el diseño
6. Elija el **campo de fecha** que se usará para ubicar los registros
7. Haga clic en **Actualizar vista**
## Configuración del calendario
### Elegir el campo de fecha
En **Opciones**, seleccione qué campo de fecha determina dónde aparecen los registros en el calendario.
### Mostrar campos
Configure qué campos se muestran en cada evento del calendario:
1. Haga clic en **Opciones → Campos**
2. Activar/desactivar campos
3. Arrastre para reordenar
## Casos de uso
* **Reuniones y llamadas**: ver las próximas citas
* **Fechas límite**: hacer seguimiento de las fechas de vencimiento y de cierre
* **Eventos**: planificar y visualizar actividades programadas
* **Seguimientos**: ver cuándo vencen las tareas
## Relacionado
* [Descripción general de las vistas](/l/es/user-guide/views-pipelines/overview) — creación y gestión de vistas
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrado de datos del calendario

View File

@@ -0,0 +1,52 @@
---
title: Campos y columnas
description: Elige qué campos mostrar y cómo organizarlos.
---
## Seleccionar campos para mostrar
Cada vista puede mostrar un conjunto diferente de campos. Personaliza lo visible para centrarte en la información que importa.
### Mostrar u ocultar campos
1. Haz clic en **Opciones** en la esquina superior derecha
2. Haz clic en **Campos**
3. Haz clic en el **icono de ojo** junto a cada campo para mostrarlo u ocultarlo
### Reordenar campos
Cambia el orden en que los campos aparecen en tu vista:
1. Haz clic en **Opciones → Campos**
2. Arrastra los campos hacia arriba o hacia abajo
3. Los cambios se guardan automáticamente
## Visualización de campos por tipo de vista
### Vistas de Tabla
* Los campos aparecen como columnas
* Cambia el tamaño de las columnas arrastrando los bordes
### Vistas Kanban
* Los campos aparecen en tarjetas
* Reordena desde Opciones → Campos
* Usa la vista compacta para ocultar todos los campos
### Vistas de calendario
* Los campos seleccionados se muestran en los eventos del calendario
* Configura desde Opciones → Campos
## Mejores prácticas
* **Muestra sólo lo que es necesario** - demasiados campos abarrotan la vista
* **Coloca primero los campos importantes** — las columnas más usadas a la izquierda
* **Crea varias vistas** — diferentes conjuntos de campos para distintos fines
* **Usa la visibilidad de campos por vista** — mismo objeto, distinto enfoque
## Relacionado
* [Vistas de tabla](/l/es/user-guide/views-pipelines/capabilities/table-views) — funciones de la vista de lista
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views) — vistas basadas en tarjetas

View File

@@ -0,0 +1,78 @@
---
title: Filtros y ordenación
description: Filtra y ordena registros para encontrar exactamente lo que necesitas.
---
## Filtrado de datos
Los filtros te ayudan a centrarte en registros específicos mostrando solo aquellos que cumplen tus criterios.
### Agregar un filtro
1. Haz clic en el botón **Filtrar** en la barra de herramientas
2. Selecciona el campo por el que filtrar
3. Elige el operador (igual a, contiene, etc.)
4. Introduce el valor del filtro
5. Haz clic en **Aplicar**
### Operadores de filtro
| Tipo de campo | Operadores disponibles |
| ----------------- | ------------------------------------------------------- |
| Texto | Igual a, Contiene, Empieza con, Termina con, Está vacío |
| Número | Igual a, Mayor que, Menor que, Está vacío |
| Fecha | Igual a, Antes de, Después de, Está vacío |
| Selección | Igual a, Es cualquiera de, Está vacío |
| Caja de selección | Es verdadero, Es falso |
| Relación | Igual a, Está vacío |
### Varios filtros
Combina varios filtros para acotar los resultados:
* Todos los filtros se aplican con lógica AND
* Cada filtro adicional restringe aún más los resultados
### Eliminar filtros
* Haz clic en la **X** de las etiquetas de filtro individuales
* Haz clic en **Borrar todo** para eliminar todos los filtros
## Ordenar datos
La ordenación determina el orden en que aparecen los registros.
### Agregar un criterio de ordenación
1. Haz clic en el botón **Ordenar** en la barra de herramientas
2. Selecciona el campo por el que ordenar
3. Elige ascendente (A-Z, 0-9) o descendente (Z-A, 9-0)
4. Haz clic en **Aplicar**
### Varios criterios de ordenación
Agrega varios niveles de ordenación:
* La primera ordenación es la principal
* Las ordenaciones posteriores se aplican dentro de los grupos de valores iguales
### Ordenación rápida por columna
Haz clic en el encabezado de una columna para ordenar:
* Primer clic: ascendente
* Segundo clic: descendente
* Tercer clic: quitar la ordenación
## Guardar la configuración de filtros y ordenación
Los filtros y las ordenaciones se guardan con la vista:
1. Configura tus filtros y ordenaciones
2. Haz clic en **Guardar** para actualizar la vista actual
3. O haz clic en **Guardar como nueva vista** para crear una variante
## Relacionado
* [Vistas de tabla](/l/es/user-guide/views-pipelines/capabilities/table-views) — función de agrupación
* [Descripción general de las vistas](/l/es/user-guide/views-pipelines/overview) — creación y gestión de vistas

View File

@@ -0,0 +1,98 @@
---
title: Vistas del tablero Kanban
description: Aprende a usar las vistas Kanban para visualizar y gestionar tus flujos de trabajo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Acerca de las vistas Kanban
Las vistas Kanban mapean visualmente los flujos de proceso, donde cada columna representa una etapa distinta y cada tarjeta representa un registro.
## Mover tarjetas entre etapas
Puede mover cada tarjeta entre etapas mientras pasa por su flujo de trabajo haciendo clic y sosteniendo una tarjeta, luego arrastre hasta la siguiente etapa.
<VimeoEmbed videoId="927888627" title="Demostración en video" />
## Agregar y eliminar etapas
Puede adaptar su flujo de trabajo para satisfacer sus necesidades usando etapas, cada uno de los cuales representa un valor en un campo de selección:
### Agregar Etapas
Para añadir una etapa, accede a la configuración del campo Select navegando a Ajustes > Modelo de Datos, seleccionando su objeto, y luego seleccionando el campo del que depende su tablero Kanban.
<VimeoEmbed videoId="927890428" title="Demostración en video" />
### Eliminar Etapas
Para remover una etapa, pase el cursor sobre el nombre de la etapa o el icono `n`, haga clic en `Editar desde la configuración` en la configuración del campo Seleccionar y, a continuación, haga clic en **Eliminar** junto a la etapa relevante.
## Mostrar campos
Puedes configurar tu tablero Kanban para mostrar algunos campos y ocultar otros. Para mostrar u ocultar un campo, haga clic en **Opciones** en la parte superior derecha, luego en **Campos** para mostrar la lista de opciones, y hacer clic en el icono del ojo junto al campo para mostrarlo u ocultarlo.
También puedes reorganizar el orden de los campos manteniendo presionado el nombre del campo y arrastrándolo a donde desees.
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
## Vista compacta
Puedes ocultar todos los campos y obtener una visión general de todos los registros de un vistazo. Para activar:
1. Haz clic en **Opciones** en la parte superior derecha
2. Activa la opción de **Vista compacta**
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
## Agregaciones por columna
Cada columna en una vista Kanban puede mostrar valores agregados en la parte superior, lo que te ayuda a comprender tus datos de un vistazo.
### Agregaciones disponibles
| Agregación | Descripción |
| ------------ | --------------------------------------------------------- |
| **Recuento** | Número de registros en la columna |
| **Suma** | Total de un campo numérico (p. ej., importes de acuerdos) |
| **Promedio** | Valor promedio de un campo numérico |
| **Mín** | Valor más bajo |
| **Máx** | Valor más alto |
### Configuración de agregaciones
1. Haz clic en el número que se muestra junto al valor de la etapa, en la parte superior de una columna
2. Selecciona el tipo de agregación
3. Elige el campo para la agregación
**Ejemplo:** Muestra el valor total de los acuerdos por etapa agregando el campo Importe con Suma.
## Cuándo usar las vistas Kanban
Las vistas Kanban son ideales para:
* **Embudos de ventas**: haz seguimiento de los acuerdos a través de las etapas, desde el prospecto hasta el cierre
* **Gestión de proyectos**: monitorea las tareas a través de los estados del flujo de trabajo
* **Reclutamiento**: haz seguimiento de los candidatos a través de las etapas de contratación
* **Cualquier proceso por etapas**: visualiza cualquier flujo de trabajo con etapas definidas
## Mejores prácticas
### Organiza tus etapas
* **Limita las etapas**: lo ideal para la visibilidad es tener entre 5 y 7 etapas
* **Nombres claros**: usa nombres de etapa descriptivos
* **Orden lógico**: organiza las etapas en el orden del proceso
### Optimiza la visualización de tarjetas
* **Muestra los campos clave**: muestra solo la información más importante
* **Usar vista de compacto**: para vistas generales de alto nivel
* **Codificación por colores**: usa los colores de etapa para identificar rápidamente el estado
### Mantén la calidad de los datos
* **Actualiza con regularidad**: mantén las tarjetas moviéndose a través de las etapas
* **Archiva lo completado**: mueve los elementos cerrados fuera de la vista activa
* **Revisa las tarjetas estancadas**: da seguimiento a las tarjetas atascadas en etapas

View File

@@ -0,0 +1,64 @@
---
title: Vistas de Tabla
description: Muestra tus datos en un formato de lista similar a una hoja de cálculo.
---
## Acerca de las Vistas de Tabla
Las vistas de tabla muestran registros en filas con columnas personalizables—como una hoja de cálculo. Este es el tipo de vista predeterminado para la mayoría de los objetos.
<img src="/images/user-guide/table-views/table-view.png" style={{width:'100%'}} />
## Funciones
### Configuración de columnas
* Mostrar u ocultar columnas (campos)
* Ajustar el ancho de las columnas
* Reordenar las columnas arrastrando
### Agrupar por un campo de selección
Organiza los registros en grupos contraíbles según un campo de tipo selección.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
1. Haz clic en **Opciones**
2. Selecciona **Agrupar**
3. Elige un campo de selección
4. Configura el orden de los grupos en **Opciones → Agrupar → Ordenar**:
* **Alfabético** o **Alfabético inverso**
* **Orden manual**: Arrastra los grupos en "Grupos visibles" para reordenarlos
* Haz clic en el **icono de ojo** junto a un grupo para ocultarlo
**Casos de uso:**
* Agrupar empresas por tipo
* Agrupar Oportunidades por etapa
* Agrupar Tareas por estado
<Note>
**Para un mejor rendimiento, limita a 10-15 grupos visibles por vista.** Si necesitas más grupos, considera usar un Dashboard en su lugar.
</Note>
### Anchos de columna
Ajusta el ancho de las columnas para mostrar más o menos contenido:
1. Pasa el cursor entre dos encabezados de columna
2. Haz clic y arrastra el borde de la columna
3. Suelta para establecer el nuevo ancho
## Cuándo usar las vistas de tabla
Las vistas de tabla funcionan mejor para:
* **Examinar conjuntos de datos grandes** — revisar muchos registros rápidamente
* **Entrada de datos** — editar varios registros de forma eficiente
* **Análisis detallado** — ver muchos campos a la vez
* **Ordenar y filtrar** — encontrar registros específicos
## Relacionado
* [Campos y columnas](/l/es/user-guide/views-pipelines/capabilities/fields-and-columns) — configurar qué campos mostrar
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting) — acotar los registros

View File

@@ -0,0 +1,74 @@
---
title: Configuración de la vista
description: Administra la visibilidad, los nombres, los iconos y la organización de las vistas.
---
## Visibilidad de la vista
Controla quién puede ver tus vistas personalizadas.
### Opciones de visibilidad
| Configuración | Quién puede ver |
| ---------------------- | ----------------------------------------- |
| **Espacio de trabajo** | Todos los miembros del espacio de trabajo |
| **No listada** | Solo tú |
### Cambiar la visibilidad
1. Abre la vista
2. Haz clic en **Opciones → Visibilidad**
3. Selecciona **Espacio de trabajo** o **No listada**
<Note>
No se puede cambiar la visibilidad de las vistas predeterminadas "All [Object Name]".
</Note>
## Cambiar el nombre de una vista
1. Abre el menú desplegable de vistas
2. Haz clic en el menú **⋮** junto a la vista
3. Selecciona **Editar**
4. Introduce el nuevo nombre
## Cambiar el icono de la vista
1. Abre el menú desplegable de vistas
2. Haz clic en el menú **⋮** junto a la vista
3. Selecciona **Editar**
4. Haz clic en el icono para cambiarlo
## Reordenar vistas
Cambia el orden en que las vistas aparecen en el menú desplegable:
1. Abre el menú desplegable de vistas
2. Arrastra las vistas con su control de arrastre
3. Suelta en la posición deseada
4. El orden se guarda automáticamente
## Vista Favorita
Ancla las vistas de uso frecuente para un acceso rápido:
1. Abre el menú desplegable de vistas
2. Haz clic en el menú **⋮** junto a una vista
3. Selecciona **Añadir a favoritos**
Las vistas marcadas como favoritas aparecen en una sección dedicada para facilitar el acceso.
## Eliminar vista
1. Abre el menú desplegable de vistas
2. Haz clic en el menú **⋮** junto a la vista
3. Selecciona **Eliminar**
4. Confirma la eliminación
<Warning>
Las vistas eliminadas no se pueden recuperar.
</Warning>
## Relacionado
* [Descripción general de las vistas](/l/es/user-guide/views-pipelines/overview) — creación de vistas
* [Cómo restringir el acceso](/l/es/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — guía paso a paso

View File

@@ -0,0 +1,61 @@
---
title: Crea una vista de calendario para tareas con fecha de vencimiento
description: Visualiza tus tareas y fechas límite en un calendario.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Prerrequisitos
Tu objeto Tareas necesita un campo **Fecha de vencimiento** (tipo Fecha o Fecha y hora).
## Pasos
1. Ve a **Tareas**
2. Haz clic en el menú desplegable de la vista → **+ Agregar vista**
3. Asigna un nombre a tu vista (p. ej., "Calendario de tareas")
4. Haz clic en **Crear**
5. Haz clic en **Opciones** y selecciona **Calendario** como diseño
6. Elige **Fecha de vencimiento** como campo de fecha
7. Haga clic en **Guardar**
## Configura tu calendario
### Muestra campos en los eventos
1. Haz clic en **Opciones → Campos**
2. Haz clic en el **icono de ojo** para mostrar/ocultar campos
3. Arrastra para reordenar
Campos recomendados para mostrar:
* **Título** — nombre de la tarea
* **Asignado** — quién es responsable
* **Estado** — progreso actual
### Filtra tu calendario
Crea vistas enfocadas:
* **Mis tareas**: Filtra por Asignado = Yo
* **Esta semana**: Filtra por Fecha de vencimiento = Esta semana
* **Atrasadas**: Filtrar por Fecha de vencimiento < Hoy, Estado ≠ Completado
## Otros casos de uso del calendario
| Objeto | Campo de fecha | Propósito |
| ---------------------- | ---------------- | --------------------------------------- |
| Oportunidades | Fecha de cierre | Hacer seguimiento de cierres previstos |
| Eventos personalizados | Fecha del evento | Planificar actividades |
| Proyectos | Fecha límite | Supervisar los cronogramas de proyectos |
## Consejos
* **Revisa semanalmente**: Empieza cada semana revisando tu vista de calendario
* **Combina con la vista de tabla**: Usa el calendario para la visión general y la tabla para los detalles
* **Configura la visibilidad**: Mantén los calendarios de tareas personales como Unlisted
## Relacionado
* [Vista de calendario](/l/es/user-guide/views-pipelines/capabilities/calendar-view) — todas las funciones del calendario
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtra tu calendario

View File

@@ -0,0 +1,80 @@
---
title: Crea una vista Kanban para proyectos
description: Supervisa los proyectos a través de etapas con un tablero visual.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Usa una vista Kanban para visualizar tus proyectos (o cualquier objeto con etapas) como tarjetas que se mueven por columnas.
<VimeoEmbed videoId="927888627" title="Demostración en video" />
## Prerrequisitos
Tu objeto necesita un **campo de selección** para usar como columnas (p. ej., Estado, Etapa, Fase).
Si no tienes uno:
1. Ve a **Configuración → Modelo de datos**
2. Selecciona tu objeto
3. Agrega un campo de selección con tus opciones de etapa
## Pasos
1. Ve a tu objeto (p. ej., Proyectos, Tareas)
2. Haz clic en el menú desplegable de la vista → **+ Agregar vista**
3. Asigna un nombre a tu vista (p. ej., "Tablero de proyecto")
4. Haz clic en **Crear**
5. Haz clic en **Opciones** y selecciona **Kanban** como diseño
6. La vista usa tu campo de selección para las columnas automáticamente
7. Haga clic en **Guardar**
## Configura tu tablero
### Muestra campos clave en las tarjetas
1. Haz clic en **Opciones → Campos**
2. Busca campos en la sección "Campos ocultos"
3. Haz clic en el **icono de ojo** para mostrarlos en las tarjetas
4. Arrastra para reordenar
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### Activar vista compacta
Para una vista general:
1. Haz clic en **Opciones**
2. Activa **Vista compacta**
Las tarjetas muestran solo el nombre del registro.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### Agrega agregaciones
Muestra recuentos o totales en la parte superior de cada columna:
1. Haz clic en el número junto al nombre de una columna
2. Selecciona una agregación (Conteo, Suma, etc.)
3. Elige un campo si es necesario
## Mover tarjetas
Arrastra y suelta las tarjetas entre columnas para actualizar su estado.
<VimeoEmbed videoId="927888627" title="Demostración en video" />
## Ejemplo: tablero de tareas
| Columna (Estado) | Tarjetas |
| ---------------- | ----------------------- |
| **Por hacer** | Nuevas tareas |
| **En progreso** | Trabajo activo |
| **Revisión** | En espera de aprobación |
| **Completado** | Completado |
## Relacionado
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views) — agregaciones, vista compacta, etapas
* [Cómo configurar un pipeline de ventas](/l/es/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — Kanban para oportunidades

View File

@@ -0,0 +1,51 @@
---
title: Crear una vista de tabla con agrupación
description: Organice sus registros en grupos contraíbles según el valor del campo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Agrupe su vista de tabla por un campo Select para organizar los registros en secciones contraíbles.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Pasos
1. Navegue al objeto (Personas, Empresas, etc.)
2. Haga clic en el menú desplegable de la vista → **+ Agregar vista**
3. Asigne un nombre a su vista (p. ej., "Empresas por tipo")
4. Haga clic en **Crear**
5. Haga clic en **Opciones → Agrupar**
6. Elija un campo Select para agrupar
7. Haga clic en **Guardar**
## Configurar el orden de los grupos
En **Opciones → Agrupar → Ordenar**, elija cómo se ordenan los grupos:
| Opción | Descripción |
| ---------------------- | ---------------------------------------------------------- |
| **Alfabético** | De la A a la Z |
| **Alfabético inverso** | De la Z a la A |
| **Orden manual** | Arrastre los grupos para reordenarlos en "Grupos visibles" |
Haga clic en el **icono de ojo** junto a un grupo para ocultarlo de la vista.
<Note>
**Para un mejor rendimiento, limite a 10-15 grupos visibles.** Si necesita más, considere usar un Dashboard.
</Note>
## Ejemplo: Empresas por industria
1. Vaya a **Empresas**
2. Cree una nueva vista llamada "Por industria"
3. Haga clic en **Opciones → Agrupar**
4. Seleccione el campo **Industria**
5. Guardar
Ahora sus empresas están organizadas por industria, lo que facilita centrarse en un segmento a la vez.
## Relacionado
* [Vistas de tabla](/l/es/user-guide/views-pipelines/capabilities/table-views) — todas las funciones de las vistas de tabla
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting) — combinar la agrupación con filtros

View File

@@ -0,0 +1,32 @@
---
title: Restringir el acceso a tu vista
description: Controla quién puede ver tus vistas personalizadas.
---
Cada vista (excepto las vistas predeterminadas "Todas las [Object Name]") tiene su propia configuración de visibilidad.
## Pasos
1. Abre la vista que deseas restringir
2. Haz clic en **Opciones** en la esquina superior derecha
3. Haz clic en **Visibilidad**
4. Selecciona **No listada**
Tu vista ahora es visible solo para ti.
## Opciones de visibilidad
| Configuración | Quién puede ver |
| ---------------------- | ----------------------------------------- |
| **Espacio de trabajo** | Todos los miembros del espacio de trabajo |
| **No listada** | Solo tú |
## Notas
* Las vistas predeterminadas "Todas las [Object Name]" no se pueden establecer como no listadas
* Las vistas no listadas no aparecen en los menús desplegables de vistas de otros usuarios
* Puedes cambiar la visibilidad de nuevo a Espacio de trabajo en cualquier momento
## Relacionado
* [Configuración de vistas](/l/es/user-guide/views-pipelines/capabilities/view-settings) — todas las opciones de configuración de vistas

View File

@@ -0,0 +1,120 @@
---
title: Configura un pipeline de ventas
description: Configura tu pipeline de ventas para hacer seguimiento de las oportunidades a lo largo de las etapas.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Un pipeline de ventas en Twenty es una vista Kanban de tu objeto Oportunidades, donde cada columna representa una etapa de tu proceso de ventas.
## Paso 1: Configura tus etapas
Las etapas se definen en el campo **Stage** del objeto Oportunidades.
1. Ve a **Configuración → Modelo de datos**
2. Selecciona **Oportunidades**
3. Busca y haz clic en el campo **Stage**
4. Agrega, elimina o renombra etapas para que coincidan con tu proceso
<VimeoEmbed videoId="927890428" title="Demostración en video" />
### Etapas recomendadas
| Etapa | Propósito |
| ------------------- | ----------------------------------------- |
| **Nuevo** | Oportunidades nuevas recién identificadas |
| **Calificado** | Confirmadas como buen ajuste |
| **Reunión** | En conversaciones activas |
| **Propuesta** | Propuesta enviada |
| **Negociación** | Trabajando en las condiciones |
| **Cerrado ganado** | Negocio ganado |
| **Cerrado perdido** | Negocio perdido |
<Note>
**5-7 stages es óptimo.** Demasiadas etapas hacen que el pipeline sea difícil de escanear; muy pocas pierden visibilidad en el progreso de la operación.
</Note>
## Paso 2: Crea una vista de pipeline
1. Ve a **Oportunidades**
2. Haz clic en el menú desplegable de la vista → **+ Agregar vista**
3. Ponle el nombre "Sales Pipeline"
4. Haz clic en **Crear**
5. Abre **Opciones** y selecciona **Kanban** como diseño
La vista usa automáticamente el campo Stage para las columnas.
## Paso 3: Configura tu vista
### Mostrar campos clave
1. Haz clic en **Opciones → Campos**
2. Busca campos en la sección "Campos ocultos"
3. Haz clic en el **icono de ojo** para mostrar: Empresa, Importe, Fecha de cierre, Propietario
### Activa las agregaciones
Muestra los totales en la parte superior de cada columna:
1. Haz clic en el número que se muestra junto al nombre de una etapa en la parte superior de una columna
2. Selecciona el tipo de agregación (Conteo, Suma, Promedio, etc.)
3. Elige el campo a agregar (p. ej., Importe)
**Ejemplo:** Muestra el valor total de los acuerdos por etapa agregando el campo Importe con Suma.
### Usar vista compacta (opcional)
Para una vista general con contenido mínimo en las tarjetas:
1. Haz clic en **Opciones**
2. Activa la opción de **Vista compacta**
## Paso 4: Crea vistas personales y del equipo
### "Mi pipeline"
* **Filtro**: Propietario = Yo
* **Visibilidad**: No listada (vista personal)
### "Pipeline del equipo"
* **Filtro**: Ninguno (mostrar todo)
* **Visibilidad**: Espacio de trabajo (vista compartida)
### "Cierres de este mes"
* **Tipo**: Tabla
* **Filtro**: Fecha de cierre = Este mes, Etapa ≠ Cerrado ganado, Etapa ≠ Cerrado perdido
* **Orden**: Fecha de cierre ascendente
## Trabajando con Oportunidades
### Crear Oportunidades
* Haz clic en **+ Nuevo** en la vista de Oportunidades
* O haz clic en **+** en la columna de una etapa específica
### Moverse por las etapas
Arrastra y suelta las tarjetas de oportunidad entre columnas para actualizar su etapa.
<VimeoEmbed videoId="927888627" title="Demostración en video" />
## Mejores prácticas
### Higiene del pipeline
* Actualiza los acuerdos a diario conforme avancen
* Mueve o cierra los acuerdos estancados con prontitud
* Mantén realistas las fechas de cierre
### Disciplina de las etapas
* Define criterios claros para cada etapa
* Mueve los acuerdos con prontitud cuando se cumplan los criterios
* No dejes que los acuerdos permanezcan demasiado tiempo en las etapas
## Relacionado
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views) — agregaciones y vista compacta
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting) — creación de vistas filtradas

View File

@@ -0,0 +1,149 @@
---
title: Mostrar el Importe previsto en tu pipeline
description: Calcula y muestra valores ponderados de las oportunidades según la probabilidad de la etapa.
---
El Importe previsto es un valor calculado: **Importe × Probabilidad**. Esto te ayuda a pronosticar ingresos ponderando las oportunidades según la probabilidad de que se cierren.
<Tip>
Este es un ejemplo de creación de [Campos de fórmula](/l/es/user-guide/workflows/how-tos/crm-automations/formula-fields) usando flujos de trabajo.
</Tip>
Esta guía te acompaña para configurar los campos personalizados y los flujos de trabajo necesarios para calcular y mostrar importes previstos en tu pipeline.
## Paso 1: Crear campos personalizados
Necesitas dos campos personalizados en el objeto Oportunidades.
### Crear el campo Probabilidad
1. Ve a **Ajustes → Modelo de datos → Oportunidades**
2. Haz clic en **+ Añadir campo**
3. Configurar:
* **Nombre**: Probabilidad
* **Tipo**: Número
* **Descripción**: Probabilidad según etapa (0-100%)
4. Haga clic en **Guardar**
### Crear el campo Importe previsto
1. Haz clic en **+ Añadir campo**
2. Configurar:
* **Nombre**: Importe previsto
* **Tipo**: Moneda
* **Descripción**: Calculado: Importe × Probabilidad
3. Haga clic en **Guardar**
### Opcional: Hacer que los campos sean de solo lectura para los usuarios
Si no quieres que los usuarios editen manualmente estos campos calculados:
1. Ve a **Ajustes → Miembros → Roles**
2. Selecciona el rol a configurar
3. Busca el objeto Oportunidades
4. Establece los campos **Probabilidad** e **Importe previsto** como de solo lectura
Esto garantiza que solo los flujos de trabajo puedan actualizar estos valores.
## Paso 2: Crear el flujo de trabajo #1 — Actualizar la Probabilidad al cambiar de etapa
Este flujo de trabajo establece automáticamente la Probabilidad cuando una oportunidad pasa a una nueva etapa.
### Crear el flujo de trabajo
1. Ve a **Flujos de trabajo**
2. Haz clic en **+ Nuevo flujo de trabajo**
3. Ponle el nombre "Actualizar la Probabilidad al cambiar de etapa"
### Configurar el desencadenador
1. Añade un desencadenador **Registro creado o actualizado**
2. Selecciona **Oportunidades** como objeto
3. Filtrar en: se actualiza el campo **Etapa**
### Añadir ramas para cada etapa
Crea una rama para cada etapa con su probabilidad:
| Etapa | Probabilidad |
| --------------- | ------------ |
| Nuevo | 10% |
| Calificado | 25% |
| Reunión | 40% |
| Propuesta | 60% |
| Negociación | 80% |
| Cerrado ganado | 100% |
| Cerrado perdido | 0% |
<Note>
Para crear una nueva rama, haz clic derecho en el lienzo del flujo de trabajo y haz clic en **Nueva acción**. Luego, vincula esta acción al nodo anterior arrastrando la flecha desde el nodo anterior hasta esta nueva acción.
</Note>
Para cada etapa:
1. Añade un nodo **Filtro**: Etapa = [nombre de la etapa]
2. Añade una acción **Actualizar registro**:
* Registro: la Oportunidad desencadenante
* Campo: Probabilidad
* Valor: [probabilidad para esa etapa]
### Calcular el Importe previsto
Después de que las ramas se vuelvan a unir:
1. Añade un nodo **Filtro**: el Importe no está vacío
2. Añade una acción **Actualizar registro**:
* Registro: la Oportunidad desencadenante
* Campo: Importe previsto
* Valor: Importe × Probabilidad
## Paso 3: Crear el flujo de trabajo #2 — Recalcular al cambiar el Importe
Este flujo de trabajo actualiza el Importe previsto cuando cambia el Importe de la oportunidad.
### Crear el flujo de trabajo
1. Ve a **Flujos de trabajo**
2. Haz clic en **+ Nuevo flujo de trabajo**
3. Ponle el nombre "Recalcular el Importe previsto al cambiar el Importe"
### Configurar el desencadenador
1. Añade un desencadenador **Registro creado o actualizado**
2. Selecciona **Oportunidades** como objeto
3. Filtrar en: se actualiza el campo **Importe**
### Añadir la lógica
1. Añade un nodo **Filtro**: el Importe no está vacío
2. Añade una acción **Actualizar registro**:
* Registro: la Oportunidad desencadenante
* Campo: Importe previsto
* Valor: Importe × Probabilidad
## Paso 4: Mostrarlo en tu pipeline
Ahora muestra los totales de Importe previsto en tu vista Kanban:
1. Abre tu vista Kanban de Pipeline de ventas
2. Haz clic en el número junto al nombre de cualquier etapa en la parte superior de una columna
3. Selecciona **Suma**
4. Elige **Importe previsto**
Cada columna ahora muestra el valor total ponderado del pipeline para esa etapa.
## Resumen
| Componente | Propósito |
| ----------------------------- | -------------------------------------------------------------------------------------- |
| **Campo de Probabilidad** | Almacena la probabilidad de ganar según la etapa |
| **Campo de Importe previsto** | Almacena Importe × Probabilidad |
| **Flujo de trabajo #1** | Actualiza la Probabilidad cuando cambia la Etapa y luego recalcula el Importe previsto |
| **Flujo de trabajo #2** | Recalcula el Importe previsto cuando cambia el Importe |
| **Agregación** | Muestra la suma del Importe previsto por etapa |
## Relacionado
* [Campos de fórmula](/l/es/user-guide/workflows/how-tos/crm-automations/formula-fields) — crea campos calculados usando flujos de trabajo
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views) — agregaciones por columna
* [Cómo crear campos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-fields) — configuración de campos

View File

@@ -0,0 +1,231 @@
---
title: Realiza un seguimiento de cuánto tiempo permanecen las oportunidades en cada etapa.
description: Supervisa la velocidad de las oportunidades registrando cuándo ingresan a cada etapa.
---
<Tip>
Este es un ejemplo de cómo crear [Campos de fórmula](/l/es/user-guide/workflows/how-tos/crm-automations/formula-fields) usando flujos de trabajo — específicamente cálculos de fechas.
</Tip>
Registrar cuándo las oportunidades ingresan a cada etapa te ayuda a identificar cuellos de botella y medir la velocidad de las oportunidades.
Esta guía te muestra cómo configurar campos personalizados y un flujo de trabajo para registrar automáticamente cuándo una oportunidad pasa a cada etapa y calcular cuántos días pasó en la etapa anterior.
## Paso 1: Crear campos personalizados
Necesitas dos tipos de campos para cada etapa:
* **Campos de fecha y hora**: Registran cuándo la oportunidad ingresó a cada etapa
* **Campos numéricos**: Almacenan cuántos días pasó la oportunidad en cada etapa
### Crea los campos "Última entrada"
1. Ve a **Ajustes → Modelo de datos → Oportunidades**
2. Para cada etapa, haz clic en **+ Agregar campo** y configura:
* **Nombre**: Última entrada en [Nombre de la etapa] (p. ej., "Última entrada en Nuevo", "Última entrada en Calificado")
* **Tipo**: Fecha y hora
* **Descripción**: Marca de tiempo cuando la oportunidad ingresó a esta etapa
3. Haga clic en **Guardar**
Crea estos campos:
* Última entrada en Nuevo
* Última entrada en Calificado
* Última entrada en Reunión
* Última entrada en Propuesta
* Última entrada en Negociación
* Última entrada en Cerrado ganado
* Última entrada en Cerrado perdido
### Crea los campos "Días en la etapa"
1. Para cada etapa, haz clic en **+ Agregar campo** y configura:
* **Nombre**: Días en [Nombre de la etapa] (p. ej., "Días en Nuevo", "Días en Calificado")
* **Tipo**: Número
* **Descripción**: Número de días que pasó en esta etapa
2. Haga clic en **Guardar**
Crea estos campos:
* Días en Nuevo
* Días en Calificado
* Días en Reunión
* Días en Propuesta
* Días en Negociación
<Note>
No necesitas campos "Días en" para Cerrado ganado y Cerrado perdido, ya que son etapas finales.
</Note>
### Opcional: Hacer que los campos sean de solo lectura
Si no quieres que los usuarios editen manualmente estos campos calculados:
1. Ve a **Ajustes → Miembros → Roles**
2. Selecciona el rol que deseas configurar
3. Busca el objeto Oportunidades
4. Configura los campos "Última entrada" y "Días en" como de solo lectura
## Paso 2: Crear el flujo de trabajo
Este único flujo de trabajo gestiona ambas tareas:
* Registra la marca de tiempo al entrar en una nueva etapa
* Calcula los días que se pasaron en la etapa anterior
### Crea el flujo de trabajo
1. Ve a **Flujos de trabajo**
2. Haz clic en **+ Nuevo flujo de trabajo**
3. Ponle el nombre "Seguimiento del tiempo por etapa"
### Configura el disparador
1. Agrega un disparador **Registro actualizado**
2. Selecciona **Oportunidades** como objeto
3. Filtrar por: el campo **Etapa** se actualiza
### Agrega ramas para cada etapa
<Note>
Para crear una nueva rama, haz clic derecho en el lienzo del flujo de trabajo y haz clic en **Nueva acción**. Luego, vincula esta acción al nodo anterior arrastrando la flecha desde el nodo anterior hasta esta nueva acción.
</Note>
---
**Rama 1: Etapa = Nuevo (primera etapa)**
Dado que esta es la primera etapa, solo se registra la marca de tiempo de entrada; no hay una etapa anterior desde la cual calcular.
1. Agrega un nodo **Filtro**: Etapa = Nuevo
2. Agrega una acción de **Código**:
```javascript
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. Agrega una acción **Actualizar registro**:
* Registro: la Oportunidad que activó el evento
* Campo: Última entrada en Nuevo
* Valor: `now` del nodo de Código
---
**Rama 2: Etapa = Calificado**
Al pasar a Calificado, registra la hora de entrada Y calcula los días que se pasaron en Nuevo.
1. Agrega un nodo **Filtro**: Etapa = Calificado
2. Agrega una acción de **Código**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configura la entrada del nodo de Código: mapea `lastEnteredPreviousStage` al campo **Última entrada en Nuevo**
4. Agrega una acción **Actualizar registro**:
* Registro: la Oportunidad que activó el evento
* Campos a actualizar:
* Última entrada en Calificado = `now`
* Días en Nuevo = `daysInPreviousStage`
---
**Rama 3: Etapa = Reunión**
Al pasar a Reunión, registra la hora de entrada Y calcula los días que se pasaron en Calificado.
1. Agrega un nodo **Filtro**: Etapa = Reunión
2. Agrega una acción de **Código**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configura la entrada del nodo de Código: mapea `lastEnteredPreviousStage` al campo **Última entrada en Calificado**
4. Agrega una acción **Actualizar registro**:
* Registro: la Oportunidad que activó el evento
* Campos a actualizar:
* Última entrada en Reunión = `now`
* Días en Calificado = `daysInPreviousStage`
---
**Continúa con las etapas restantes:**
| Etapa | Registros | Calcula |
| --------------- | --------------------------------- | ------------------- |
| Propuesta | Última entrada en Propuesta | Días en Reunión |
| Negociación | Última entrada en Negociación | Días en Propuesta |
| Cerrado ganado | Última entrada en Cerrado ganado | Días en Negociación |
| Cerrado perdido | Última entrada en Cerrado perdido | Días en Negociación |
Las ramas no necesitan volver a unirse; cada una se ejecuta de forma independiente cuando se cumple su condición de etapa.
## Paso 3: Analizar el tiempo en la etapa
Con las marcas de tiempo y los recuentos de días registrados, ahora puedes analizar la velocidad de las oportunidades.
### Crea una vista "Oportunidades lentas"
1. Crea una vista de tabla de Oportunidades
2. Agrega columnas: Nombre, Etapa, Días en [etapa anterior], Importe
3. Ordena por el campo "Días en" (descendente)
4. Filtra por Etapa para centrarte en una etapa a la vez
Las oportunidades en la parte superior pasaron más tiempo en la etapa anterior.
### Usa agregaciones
En tu vista Kanban del pipeline:
1. Haz clic en el número junto al nombre de una Etapa
2. Selecciona **Promedio**
3. Elige un campo "Días en"
Esto muestra el tiempo promedio que las oportunidades pasan en cada etapa.
## Resumen
| Componente | Propósito |
| --------------------------- | ------------------------------------------------------------------------- |
| **Campos "Última entrada"** | Almacenan cuándo la oportunidad ingresó a cada etapa |
| **Campos "Días en"** | Almacenan cuántos días se pasaron en cada etapa |
| **Flujo de trabajo** | Registra la marca de tiempo Y calcula los días en una sola pasada |
| **Vistas y agregaciones** | Analiza la velocidad de las oportunidades e identifica cuellos de botella |
## Relacionado
* [Flujos de trabajo](/l/es/user-guide/workflows/overview) — conceptos básicos de automatización
* [Cómo crear campos personalizados](/l/es/user-guide/data-model/how-tos/create-custom-fields) — configuración de campos
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views) — agregaciones

View File

@@ -0,0 +1,132 @@
---
title: Vistas y embudos
description: Aprende a crear y gestionar vistas en Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Comprender las vistas
Las vistas son configuraciones guardadas que determinan cómo se muestran tus datos. Cada vista puede tener sus propios:
* **Diseño**: Tabla, Kanban o Calendario
* **Filtros**: Qué registros mostrar
* **Ordenación**: Cómo se ordenan los registros
* **Campos**: Qué columnas son visibles
## Tipos de vista
### Vista de tabla
La vista predeterminada tipo hoja de cálculo que muestra los registros en filas con columnas personalizables.
### Vista Kanban
Una vista de tablero visual en la que los registros aparecen como tarjetas organizadas por etapas. Ideal para:
* Embudos de ventas
* Seguimiento de proyectos
* Cualquier flujo de trabajo con etapas definidas
### Vista del calendario
Una vista de calendario que muestra registros con campos de fecha. Perfecto para:
* Reuniones y eventos
* Fechas límite y vencimientos
* Planificación basada en el tiempo
## Creación de una Vista
Hay dos maneras de crear una nueva vista.
### Usa el menú desplegable de vistas
1. Ve a cualquier objeto (Personas, Empresas, etc.)
2. Haz clic en el nombre de la vista en la parte superior izquierda (muestra la vista actual con una flecha desplegable)
3. Haz clic en **+ Añadir vista**
4. Asigna un nombre a tu vista y haz clic en **Crear**
5. Elige un diseño (Tabla, Kanban o Calendario) en **Opciones**
6. Añade filtros y ordenación según sea necesario
7. Selecciona qué campos mostrar y reordénalos
8. Haga clic en **Guardar**
<VimeoEmbed videoId="1145648745" title="Demostración en vídeo" />
### Comienza editando una vista existente
1. Ve a cualquier objeto (Personas, Empresas, etc.)
2. Elige un diseño (Tabla, Kanban o Calendario) en **Opciones** y agrega filtros y ordenación según sea necesario
3. Haz clic en **Guardar como nueva vista**
4. Asigna un nombre a tu vista y haz clic en **Crear**
5. Sigue editando tu nueva vista
6. Haz clic en **Actualizar vista** para guardar tus ajustes adicionales
<VimeoEmbed videoId="1145654005" title="Demostración en vídeo" />
## Administrar vistas
### Editar una vista
1. Selecciona la vista en el menú desplegable
2. Realiza tus cambios (filtros, ordenación, columnas)
3. Haz clic en **Guardar** para actualizar la vista
### Cambiar el nombre de una vista o su icono
1. Abre el menú desplegable de la vista
2. Haz clic en el menú **⋮** junto al nombre de la vista
3. Selecciona **Editar**
4. Cambia el nombre o el icono
5. Haga clic en **Guardar**
### Reordenar vistas
1. Abre el menú desplegable de la vista
2. Haz clic y arrastra una vista por su controlador
3. Suéltala en la posición deseada
4. El nuevo orden se guarda automáticamente
### Añadir a favoritos
Fija las vistas que usas con frecuencia para un acceso rápido:
1. Abre el menú desplegable de la vista
2. Haz clic en el menú **⋮** junto a una vista
3. Selecciona **Añadir a favoritos**
4. La vista aparece en tu sección de favoritos
### Eliminar una vista
1. Selecciona la vista que deseas eliminar
2. Haz clic en el menú desplegable de la vista
3. Haz clic en el menú **⋮** junto a la vista
4. Selecciona **Eliminar**
5. Confirma la eliminación
<Warning>
Las vistas eliminadas no se pueden recuperar. Asegúrate de que deseas eliminarla antes de confirmar.
</Warning>
## Visibilidad de la vista
Cada vista (excepto las vistas predeterminadas "All [Object Name]") tiene su propia configuración de visibilidad.
Para cambiar la visibilidad:
1. Abre la vista
2. Haz clic en **Opciones → Visibilidad**
3. Elige:
* **Espacio de trabajo**: Visible para todos los miembros del espacio de trabajo
* **No listado**: Visible solo para ti
<Note>
No se puede cambiar la visibilidad de las vistas predeterminadas "All [Object Name]".
</Note>
## Próximos Pasos
* [Vistas de tabla](/l/es/user-guide/views-pipelines/capabilities/table-views)
* [Vistas Kanban](/l/es/user-guide/views-pipelines/capabilities/kanban-views)
* [Filtros y ordenación](/l/es/user-guide/views-pipelines/capabilities/filters-and-sorting)
* [Configuración de la vista](/l/es/user-guide/views-pipelines/capabilities/view-settings)

View File

@@ -0,0 +1,167 @@
---
title: Enviar correos electrónicos desde flujos de trabajo
description: Envía correos electrónicos personalizados automáticamente utilizando acciones de flujos de trabajo.
---
Envía correos electrónicos automáticamente cuando se produzcan eventos específicos en tu CRM—da la bienvenida a nuevos contactos, haz seguimiento de oportunidades o notifica a los miembros del equipo.
## Prerrequisitos
Antes de poder enviar correos electrónicos desde flujos de trabajo:
1. Conecta una cuenta de correo electrónico en **Configuración → Cuentas**
2. Asegúrate de que la cuenta tenga habilitados los permisos de envío
## Flujo de trabajo de correo electrónico básico
### Ejemplo: Correo de bienvenida para nuevos contactos
**Objetivo**: Enviar un correo de bienvenida cuando se agregue una persona nueva al CRM.
**Configuración**:
1. **Crear flujo de trabajo**: Ve a **Configuración → Flujos de trabajo** y haz clic en **+ Nuevo flujo de trabajo**
2. **Agregar disparador**: Selecciona **Se crea el registro** → **Personas**
3. **Agregar la acción Enviar correo electrónico**:
* Haz clic en **+** para agregar una acción
* Selecciona **Enviar correo electrónico**
* Configura el correo electrónico:
| Campo | Valor |
| ---------- | -------------------------------------- |
| **Para** | `{{trigger.object.email}}` |
| **Asunto** | `Bienvenido a {{Your Company Name}}` |
| **Cuerpo** | `Hi {{trigger.object.firstName}}, ...` |
4. **Probar y activar**: Prueba con un registro de ejemplo y luego actívalo
## Uso de variables en correos electrónicos
Haz referencia a datos de pasos anteriores usando la sintaxis `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Thank you for connecting with us!
Your company, {{trigger.object.company.name}}, is now in our system.
Best regards,
The Team
```
### Variables disponibles de los disparadores
| Tipo de disparador | Variables comunes |
| ------------------------------- | -------------------------------------- |
| **Registro creado/actualizado** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Avanzado: correos electrónicos condicionales
### Ejemplo: Correos diferentes según el origen del lead
**Objetivo**: Enviar correos de bienvenida diferentes según de dónde provenga el lead.
**Configuración**:
1. **Disparador**: Se crea el registro (Personas)
2. **Agregar la acción de filtro**:
* Condición: `{{trigger.object.source}}` es igual a `"Website"`
* Si es verdadero → continúa al correo de bienvenida del sitio web
3. **Rama para otras fuentes**:
* Crea ramas paralelas para diferentes fuentes
* Cada rama tiene su propia acción Enviar correo electrónico
## Envío de correos electrónicos a múltiples destinatarios
### Ejemplo: Notificar al equipo cuando se cierre una oportunidad
**Objetivo**: Enviar un correo al representante de ventas y a su gerente cuando se gane una oportunidad.
**Configuración**:
1. **Disparador**: Se actualiza el registro (Oportunidades, Etapa = "Cerrado Ganado")
2. **Buscar registros**: Busca al gerente del propietario de la oportunidad
3. **Enviar correo electrónico #1**: Al propietario de la oportunidad
* Para: `{{trigger.object.owner.email}}`
* Asunto: `Congratulations on closing {{trigger.object.name}}!`
4. **Enviar correo electrónico #2**: Al gerente
* Para: `{{searchRecords.manager.email}}`
* Asunto: `Deal Won: {{trigger.object.name}}`
## Correos de seguimiento programados
### Ejemplo: Hacer seguimiento 3 días después de la reunión
**Objetivo**: Enviar un correo de seguimiento 3 días después de registrar una reunión.
**Configuración**:
1. **Disparador**: Se crea el registro (Actividades, Tipo = "Reunión")
2. **Acción de retraso**: Espera 3 días
3. **Enviar correo electrónico**:
* Para: Asistente a la reunión
* Asunto: Seguimiento de nuestra conversación
* Cuerpo: Consulta los detalles de la reunión a partir del disparador
## Archivos adjuntos de correo electrónico
Puedes adjuntar archivos a los correos electrónicos enviados desde los flujos de trabajo. El archivo adjunto es un archivo estático que cargas al configurar el flujo de trabajo.
### Cómo añadir un archivo adjunto
1. En la acción **Enviar correo electrónico**, haz clic en el botón **Archivos adjuntos**
2. Haz clic para cargar un archivo desde tu equipo
3. El archivo se adjuntará a todos los correos electrónicos enviados por esta acción
### Casos de Uso Comunes
| Caso de uso | Archivo de ejemplo |
| ------------------------------- | ---------------------------------------- |
| **Correos de bienvenida** | Folleto de la empresa (PDF) |
| **Secuencias de incorporación** | Guía de primeros pasos |
| **Seguimientos de ventas** | Catálogo de productos o lista de precios |
| **Confirmaciones de eventos** | Detalles o agenda del evento |
<Note>
Los archivos adjuntos son estáticos—se envía el mismo archivo a todos los destinatarios. Para documentos dinámicos (como presupuestos personalizados), genera y adjunta archivos usando una [Función lógica](/l/es/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty).
</Note>
## Mejores prácticas
### Contenido del correo electrónico
* Mantén las líneas de asunto concisas y relevantes
* Personaliza con el nombre del destinatario
* Incluye una llamada a la acción clara
* Prueba los correos antes de activar
### Entregabilidad
* No envíes demasiados correos demasiado rápido
* Usa firmas de correo profesionales
* Evita palabras que activan filtros de spam
* Asegúrate de incluir opciones para darse de baja en los correos de marketing
### Solución de Problemas
* Verifica que la cuenta de correo esté conectada y activa
* Comprueba que la dirección de correo del destinatario sea válida
* Revisa las ejecuciones del flujo de trabajo para ver mensajes de error
* Prueba primero con tu propia dirección de correo electrónico
## Relacionado
* [Disparadores de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-triggers)
* [Acciones de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-actions)

View File

@@ -0,0 +1,88 @@
---
title: Usar ramas en flujos de trabajo
description: Comprende cómo funcionan las ramas y cómo controlar qué ruta se ejecuta.
---
## Cómo funcionan las ramas
En el editor de flujos de trabajo, puedes crear varias rutas (ramas) que salgan de un solo nodo. Esto te permite crear automatizaciones complejas con diferentes resultados.
**Importante**: cuando se ejecuta un flujo de trabajo, **todas las ramas se ejecutan en paralelo de forma predeterminada**. No hay una lógica "if/else" incorporada para elegir una rama sobre otra—todas las rutas se ejecutarán simultáneamente.
## Controlar qué rama se ejecuta
Para ejecutar solo una rama según condiciones específicas, **añade un nodo Filter al principio de cada rama**.
### Ejemplo de configuración
1. Crea tu flujo de trabajo con varias ramas desde un único nodo
2. Añade un nodo **Filter** como primer paso en cada rama
3. Configura condiciones en cada **Filter** para determinar cuándo debe continuar esa rama
4. Solo continuarán la(s) rama(s) cuyas condiciones del **Filter** se cumplan
### Cómo funcionan los nodos Filter
* Si se cumple la condición del Filter: la rama sigue ejecutándose
* Si la condición del Filter no se cumple: la rama se detiene en el nodo Filter
Esto crea, en la práctica, una lógica condicional en la que solo se ejecuta la rama adecuada según tus datos.
## Ejemplo: enrutar por tamaño del negocio
**Escenario**: cuando se cierra un negocio, envía distintas notificaciones según el tamaño del negocio.
1. **Disparador**: Oportunidad actualizada (Etapa = Cerrado Ganado)
2. **Rama 1**: Filter para Importe > $10,000 → Enviar mensaje de Slack a #big-deals
3. **Rama 2**: Filter para Importe ≤ $10,000 → Enviar un correo electrónico al gerente de ventas
Ambas ramas se inician, pero solo la que coincida con el importe del negocio continuará más allá de su Filter.
## Creación de ramas
<Note>
Para crear una nueva rama a partir de un paso existente, haz clic en el botón **+** del paso y agrega tu acción. Puedes añadir varias ramas haciendo clic en **+** varias veces.
</Note>
1. En el editor de flujos de trabajo, selecciona el paso desde el que quieres ramificar
2. Haz clic en **+** para agregar una acción
3. Esto crea una rama
4. Haz clic en **+** de nuevo en el mismo paso para crear ramas adicionales
5. Cada rama puede tener su propia secuencia de acciones
## Volver a unir las ramas
Después de que las ramas en paralelo completen su trabajo, puedes volver a unirlas en una sola ruta:
1. Completa tus acciones en las ramas
2. Añade un nuevo paso que deba ejecutarse después de todas las ramas
3. Arrastra conexiones desde el final de cada rama a este nuevo paso
4. El paso fusionado espera a que todas las ramas conectadas se completen antes de ejecutarse
### Ejemplo: procesar y luego notificar
```
Trigger
│
├── Branch A: Update Customer Record
│
└── Branch B: Create Support Ticket
↘ ↙
Merged Step: Send Confirmation Email
```
El correo electrónico de confirmación se envía sólo después de que se hayan completado tanto la actualización del cliente como la creación del ticket.
## Mejores prácticas
* Usa siempre nodos **Filter** al inicio de las ramas cuando quieras una ejecución condicional
* Mantén las condiciones de las ramas mutuamente excluyentes para evitar acciones duplicadas
* Prueba tus flujos de trabajo con distintos datos para asegurarte de que se ejecuten las ramas correctas
* **Renombra los pasos de las ramas** de forma descriptiva para que quede claro qué hace cada ruta
* **Fusiona las ramas** cuando necesites una acción final después del procesamiento en paralelo
## Relacionado
* [Preguntas frecuentes sobre flujos de trabajo](/l/es/user-guide/workflows/how-tos/need-more-help/workflows-faq) — respuestas sobre la ejecución en paralelo
* [Acciones de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-actions) — acciones disponibles para las ramas

View File

@@ -0,0 +1,183 @@
---
title: Usar Iterador
description: Recorre arrays de registros para realizar acciones en cada elemento.
---
El iterador te permite recorrer un array de registros y realizar acciones en cada uno. Es esencial para los flujos de trabajo que necesitan procesar varios registros devueltos por Search Records o recibidos mediante webhooks.
## Cuándo usar el iterador
| Escenario | Ejemplo |
| ----------------------------------- | ------------------------------------------------------ |
| **Procesar resultados de búsqueda** | Enviar un correo electrónico a cada persona encontrada |
| **Gestionar arrays de webhooks** | Crear registros para cada elemento en orden |
| **Actualizaciones masivas** | Actualizar varios registros con valores calculados |
| **Notificaciones** | Alertar a varias personas sobre un evento |
## Comprender el iterador
El iterador espera un **array** como entrada. Luego:
1. Toma el primer elemento del array
2. Ejecuta todas las acciones dentro del iterador con ese elemento
3. Pasa al siguiente elemento
4. Repite hasta que se procesen todos los elementos
### Seleccionar el array sobre el que iterar
La mayoría de las fuentes de arrays (Search Records, un campo de array de un webhook, un Bulk manual trigger) se pueden seleccionar directamente en el selector de variables.
Cuando un paso de **Code** o **Logic Function** devuelve un *array de nivel superior*, su salida aparece en el selector de variables como entradas indexadas (`0`, `1`, `2`, …). Para iterar sobre el array como un todo, selecciona la opción **Whole list** para ese paso; el Iterator entonces infiere automáticamente la estructura de cada elemento a partir de la lista.
## Configuración básica
### Ejemplo: enviar un correo electrónico a todos en los resultados de búsqueda
**Objetivo**: Encontrar todos los contactos de una empresa específica y enviar a cada uno un correo electrónico personalizado.
### Paso 1: Buscar registros
1. Añade la acción **Search Records**
2. Objeto: **People**
3. Filtro: Company es igual a "Acme Inc"
4. Esto devuelve un array de personas
### Paso 2: Comprobar que existan resultados
1. Añade la acción **Filter**
2. Condición: `{{searchRecords.length}}` es mayor que 0
3. Esto evita errores del iterador con resultados vacíos
### Paso 3: Añadir un iterador
1. Añade la acción **Iterator**
2. Entrada del array: selecciona `{{searchRecords}}`
3. Esto crea un bucle
### Paso 4: Añadir acciones dentro del iterador
Las acciones colocadas después del iterador se ejecutan para cada elemento:
1. Añadir acción **Enviar correo electrónico** (dentro del Iterador)
2. Para: `{{iterator.currentItem.email}}`
3. Asunto: Hola `{{iterator.currentItem.firstName}}`!
4. Cuerpo: Mensaje personalizado utilizando los campos del elemento actual
### Resultado
Si Search Records devuelve 5 personas, el iterador:
* Envía un correo electrónico a la persona 1
* Envía un correo electrónico a la persona 2
* ... continúa con las 5
## Acceder a los datos del elemento actual
Dentro del iterador, usa `{{iterator.currentItem}}` para acceder al registro actual:
| Variable | Descripción |
| --------------------------------------- | --------------------------------------------- |
| `{{iterator.currentItem}}` | Todo el objeto de registro actual |
| `{{iterator.currentItem.id}}` | ID de registro |
| `{{iterator.currentItem.email}}` | Campo de correo electrónico |
| `{{iterator.currentItem.company.name}}` | Nombre de la empresa relacionada |
| `{{iterator.index}}` | Posición actual en el array (comenzando en 0) |
En el selector de variables, puedes profundizar en un campo específico del elemento actual, o elegir **Use the whole item** para hacer referencia a todo el elemento actual (`{{iterator.currentItem}}`). Seleccionar el elemento completo es útil cuando quieres pasar un registro completo directamente a un paso posterior en lugar de reconstruirlo campo por campo.
## Patrones comunes
### Actualizar varios registros
**Objetivo**: Marcar todas las tareas atrasadas como "Late"
```
1. Search Records (Tasks, Due Date < Today, Status ≠ Completed)
2. Filter (length > 0)
3. Iterator (searchRecords)
└── Update Record
- Object: Tasks
- Record: {{iterator.currentItem.id}}
- Status: Late
```
### Crear registros desde un array
**Objetivo**: El webhook recibe un pedido con varios artículos, crear un registro para cada uno
```
1. Webhook Trigger (receives items array)
2. Filter (items.length > 0)
3. Iterator (trigger.body.items)
└── Create Record
- Object: Order Items
- Name: {{iterator.currentItem.name}}
- Quantity: {{iterator.currentItem.qty}}
- Related Order: {{trigger.body.orderId}}
```
### Procesamiento condicional dentro del bucle
**Objetivo**: Enviar correo electrónico solo a los contactos con correos válidos
```
1. Search Records (People)
2. Iterator (searchRecords)
└── Filter (currentItem.email is not empty)
└── Send Email
- To: {{iterator.currentItem.email}}
```
## Solución de Problemas
### "El iterador espera un array"
**Causa**: Pasaste un único registro en lugar de un array.
**Solución**: Asegúrate de pasar el resultado de Search Records o un campo de tipo array, no un único registro.
```
✅ Correct: {{searchRecords}}
❌ Wrong: {{searchRecords[0]}}
```
### El iterador no se ejecuta
**Causa**: El array está vacío.
**Solución**: Añade un Filter antes del iterador para comprobar la longitud del array:
```
Filter: {{searchRecords.length}} > 0
```
### Las acciones se ejecutan demasiadas veces
**Causa**: Search Records devolvió más registros de los esperados.
**Solución**:
* Añade filtros más específicos a Search Records
* Establece un límite en Search Records (máx. 200)
* Añade un Filter dentro del iterador para condiciones adicionales
## Consideraciones de rendimiento
* **Uso de créditos**: Cada iteración consume créditos por sus acciones
* **Tiempo**: Los arrays grandes tardan más en procesarse
* **Límites**: Considera procesar por lotes las operaciones muy grandes
* **Límites de velocidad**: Las llamadas a API externas pueden alcanzar límites de velocidad con muchas iteraciones
## Mejores prácticas
1. **Comprueba siempre la longitud del array** antes del iterador para evitar errores
2. **Añade filtros dentro de los bucles** cuando no sea necesario procesar todos los elementos
3. **Renombra tu paso del iterador** para describir qué está recorriendo
4. **Prueba con arrays pequeños** antes de procesar conjuntos de datos grandes
5. **Supervisa las ejecuciones de flujos de trabajo** para asegurarte de que las iteraciones se completen como se espera
## Relacionado
* [Acciones de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-actions)
* [Cómo usar ramas](/l/es/user-guide/workflows/capabilities/use-branches-in-workflows)
* [Preguntas frecuentes sobre flujos de trabajo](/l/es/user-guide/workflows/how-tos/need-more-help/workflows-faq)

View File

@@ -0,0 +1,332 @@
---
title: Acciones del Flujo de Trabajo
description: Conoce las acciones disponibles en los flujos de trabajo de Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Acerca de las acciones
Las acciones definen lo que ocurre después de que se dispara un activador. Puedes encadenar varias acciones para crear automatizaciones complejas.
<Tip>
* Usa el selector de variables (haz clic en el icono `(x+)`) para explorar los datos disponibles de pasos anteriores
* Pasa el cursor sobre cualquier campo de entrada para ver de qué paso proviene una variable — útil cuando el mismo campo (p. ej., ID) existe en varios pasos anteriores
* Asigna a cada acción un nombre descriptivo para facilitar el mantenimiento
</Tip>
## Acciones con registros
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Crear Registro
Agrega un nuevo registro a un objeto seleccionado.
**Configuración**:
* Seleccione el objeto de destino
* Complete los campos obligatorios y opcionales
* Usa datos de pasos anteriores o introduce valores manualmente para completar los campos
**Salida**: Los datos del registro recién creado están disponibles para su uso en pasos posteriores.
### Actualizar Registro
Modifica un registro existente en un objeto seleccionado.
<img src="/images/user-guide/workflows/update_record.png" style={{width:'100%'}} />
**Configuración**:
* Seleccione el objeto de destino
* Elija el registro específico a actualizar.
* Puedes elegir un registro fijo, usando el menú desplegable que muestra todos los registros disponibles.
* O puedes seleccionar el registro de forma dinámica, designando un registro encontrado en un paso anterior, usando el `(x+)`. No puedes buscar el registro en función de diferentes criterios en esta etapa. Si aún no has identificado el registro, añade un paso `Search Record` antes de este paso `Update Record`.
* Seleccione campos a modificar e ingrese nuevos valores
**Salida**: Los datos del registro actualizado están disponibles para su uso en pasos posteriores.
### Eliminar Registro
Elimina un registro de un objeto seleccionado.
**Configuración**:
* Seleccione el objeto de destino
* Elija el registro específico a eliminar
**Salida**: Los datos del registro eliminado permanecen disponibles para su uso en pasos posteriores.
### Buscar Registros
Encuentra registros dentro de un objeto seleccionado usando condiciones de filtro.
**Configuración**:
* Seleccione el objeto a buscar
* Establezca criterios de filtro para restringir resultados
* Configure la clasificación y los límites
**Salida**: Devuelve registros coincidentes que se pueden usar en pasos posteriores.
<Note>
**Límite**: Search Records devuelve un máximo de **200 registros**. Si necesitas procesar más, añade filtros específicos para reducir los resultados o utiliza flujos de trabajo programados para procesar por lotes.
</Note>
**Mejor práctica**: Usa [ramas](/l/es/user-guide/workflows/capabilities/workflow-branches) después de Search Records para manejar escenarios de "encontrado" vs "no encontrado".
### Insertar o actualizar registro
Crea un registro nuevo o actualiza uno existente según criterios de coincidencia. Esto es útil cuando no estás seguro de si un registro ya existe.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Configuración**:
* Seleccione el objeto de destino
* Ten en cuenta qué campos pueden usarse para la coincidencia: email para Personas, dominio para Empresas, ID para cualquier objeto o cualquier campo marcado como Único. Deberás completar al menos uno de los siguientes.
* Completa los valores de los campos. No olvides completar al menos uno de los identificadores únicos.
<Note>
**La coincidencia suele funcionar aún mejor al agregar solo un identificador único.** Por ejemplo, la captura de pantalla a continuación hará coincidir empresas según su dominio. El ID no es estrictamente necesario.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
* Utilice datos de pasos anteriores para completar los campos
**Cómo funciona**:
1. Busca un registro que coincida con sus criterios
2. Si se encuentra → actualiza el registro existente
3. Si no se encuentra → crea un registro nuevo
**Salida**: Los datos del registro creado o actualizado están disponibles para su uso en pasos posteriores.
## Acciones de flujo
### Iterador
**Itera a través de un array de registros** devueltos por un paso anterior, lo que le permite realizar acciones en cada registro de forma individual.
**Configuración**:
* Seleccione la matriz de registros de un paso anterior (por ejemplo, resultados de registros de búsqueda, de un disparador manual con disponibilidad masiva, de un nodo Code). Cuando un paso de Code o de una función lógica devuelve un array de nivel superior, selecciona la opción **Lista completa** para iterar sobre toda la salida.
* Defina las acciones a realizar en cada registro en el bucle.
<Note>
- Puede agregar varias acciones dentro de un Iterador.
- Cuando use ramas dentro de un Iterador, asegúrese de que el último paso de cada rama se conecta de vuelta al Iterador para cerrar el bucle.
</Note>
* Acceda a los campos de `Elemento actual`: para usar campos del registro que se está procesando, haga clic en el paso **Iterador** y luego seleccione **Elemento actual**. Se mostrará la lista de campos disponibles de ese registro y podrá seleccionarlos para usarlos en acciones posteriores. También puedes seleccionar **Usar el elemento completo** para pasar el elemento actual completo a un paso posterior.
<VimeoEmbed videoId="1146577247" title="Demostración en video" />
### Filtro
Filtra registros según condiciones especificadas, permitiendo que solo los registros que cumplan los criterios pasen.
**Configuración**:
* Seleccione el registro a filtrar
* Defina condiciones y criterios de filtro
* Configure qué registros deben pasar a pasos posteriores
<Note>
1. **Salida**: Los nodos de filtro no devuelven datos—actúan como compuertas. Si se cumplen las condiciones, el flujo de trabajo continúa. Si no, el flujo de trabajo se detiene en esa rama.
2. El operador `IS` se puede usar con campos numéricos. Funciona como un `EQUAL`.
</Note>
### Retraso
Pausa la ejecución del flujo de trabajo durante una duración especificada o hasta una fecha/hora específica.
**Tipos de retraso**:
| Tipo | Descripción |
| -------------------- | ------------------------------------------------------------------------ |
| **Duración** | Esperar un período de tiempo específico (días, horas, minutos, segundos) |
| **Fecha programada** | Esperar hasta una fecha y hora específicas |
**Configuración para la duración**:
* Establezca días, horas, minutos y/o segundos
* Combine múltiples unidades (p. ej., 2 días y 4 horas)
**Configuración para la fecha programada**:
* Seleccione una fecha y hora
* Puede hacer referencia a un campo de fecha de un paso anterior (p. ej., hacer seguimiento 3 días después de una reunión)
**Casos de uso**:
* Esperar 24 horas antes de enviar un correo de seguimiento
* Pausar hasta la fecha de cierre de una oportunidad
* Programar acciones para el horario laboral
<Note>
La fecha programada no puede estar en el pasado. Si se usa un campo de fecha de un paso anterior y la fecha ya ha pasado, el flujo de trabajo fallará.
</Note>
**Límites y créditos**:
* **Sin límite máximo de duración**—puede establecer retrasos de minutos, días, semanas o más
* **1 crédito consumido** cuando se ejecuta el nodo Retraso, independientemente de la duración
* **No se consumen créditos** mientras se espera—un retraso de 5 minutos cuesta lo mismo que uno de 5 días
## Acciones de comunicación
### Enviar correo electrónico
Envía un correo electrónico desde su flujo de trabajo. Esto es ideal para correos electrónicos grupales con plantillas. Los correos se verán como los que envía desde su buzón.
No es adecuado para boletines (que requieren un formato más richer) o secuencias de correo electrónico automatizadas.
**Prerrequisitos**: Agregue una cuenta de correo electrónico en Configuración → Cuentas
**Configuración**:
* Seleccione la cuenta de correo del remitente
<Note>
Solo puede enviar correos desde buzones sincronizados con su propia cuenta de Twenty. El envío desde los buzones de otros miembros del equipo (p. ej., el correo del propietario de la cuenta) está en la hoja de ruta.
</Note>
En todos los pasos siguientes, puede hacer referencia a variables de pasos anteriores para la personalización.
* Ingrese la dirección de correo electrónico del destinatario.
<Note>
Por el momento, solo es posible un destinatario.
</Note>
* Establezca la línea de asunto.
* Redacte el cuerpo del mensaje. Puede formatear enlaces, crear listas numeradas, listas de puntos de ballet y añadir archivos adjuntos.
<Note>
No es posible agregar firmas HTML por el momento.
</Note>
### Formulario
Solicita un formulario durante la ejecución del flujo de trabajo para recopilar la entrada del usuario. Las respuestas pueden usarse luego en pasos posteriores para crear registros, enviar correos o ejecutar cualquier otra acción según la entrada.
<Warning>
**Los formularios están diseñados solo para disparadores manuales**. Para flujos de trabajo con otros disparadores (Registro Creado, Actualizado, etc.), los formularios solo son accesibles a través de la interfaz de ejecución de flujos de trabajo, lo cual no es la experiencia de usuario esperada. En 2026 se lanzará un centro de notificación para soportar adecuadamente los formularios en flujos de trabajo automatizados.
</Warning>
**Configuración**:
* Configure los campos que se pedirá a los usuarios que completen. Para cada campo, elija
* un tipo entre texto, número, fecha, un registro dado, un campo de selección. Los campos de todos los objetos están disponibles para su selección.
* una etiqueta
* un valor predeterminado en `Placeholder` (opcional)
* Edite el título del formulario
**Salida**: Las respuestas del formulario están disponibles para su uso en pasos posteriores.
**Ejemplo**: El flujo de trabajo "Quick Lead" está disponible por defecto en todos los espacios de trabajo, disponible en cualquier lugar del menú de comandos `Cmd+K`.
**Cómo completar el formulario**:
* Activa tu flujo de trabajo manual desde el menú de comandos `Cmd+K`
* Complete el formulario que se muestra en el panel lateral y haga clic en `Submit`.
<Note>
Los campos no se pueden hacer obligatorios.
</Note>
<VimeoEmbed videoId="1147277989" title="Demostración en video" />
## Acciones de integración
### Código
Ejecuta JavaScript personalizado dentro de su flujo de trabajo.
Detrás de escena, cada acción de código está respaldada por su propia **función lógica** —una función TypeScript del lado del servidor que se ejecuta en la plataforma Twenty—. Cuando agregas una acción de código, Twenty crea una función lógica dedicada para ese paso y muestra su editor en línea, de modo que el código que escribes queda asociado al flujo de trabajo.
**Configuración**:
* Acceda a variables de pasos anteriores. Puede editar los nombres de las variables dinámicamente.
<VimeoEmbed videoId="1147281795" title="Demostración en video" />
* Escriba el código JavaScript en el editor
* Devuelva variables para su uso en pasos posteriores
* Pruebe el código directamente en el paso
<Note>
Si necesita usar claves de API externas en su código, debe introducirlas directamente en el cuerpo de la función. No puede configurar claves de API en otro lugar y hacer referencia a ellas en la función lógica.
</Note>
<Tip>
**¿Trabaja con arrays?** Los arrays de sistemas externos o de pasos anteriores pueden venir como cadenas. Consulte [Cómo manejar arrays en acciones de código](/l/es/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) para la solución.
</Tip>
<Tip>
Haga clic en el icono cuadrado en la parte superior derecha del editor de código para mostrarlo en pantalla completa — es útil, ya que el ancho predeterminado del editor es limitado.
</Tip>
#### Reutilizar una función lógica en distintos flujos de trabajo
La acción de código en línea es ideal para lógica puntual, pero el código que contiene pertenece a ese único paso. Cuando quieras compartir la misma lógica en varios flujos de trabajo —o mantenerla como código fuente versionado en una app—, define una **función lógica reutilizable** en lugar de copiar y pegar código en cada acción de código.
Una función lógica se define una sola vez en una app (usando el `defineLogicFunction` del SDK) y se expone al generador de flujos de trabajo agregando `workflowActionTriggerSettings`. Una vez que tu app está instalada, esa función aparece como su propia acción en el generador de flujos de trabajo, junto con las acciones integradas. Al seleccionarla se muestran los campos de entrada que declaraste (con selectores de variables, como en las demás acciones) y se ejecuta tu código compartido; no se requiere JavaScript en línea.
| | Acción de código | Función lógica reutilizable |
| ------------------------ | -------------------------------------------------------- | -------------------------------------------------------------- |
| **Dónde vive el código** | Editor en línea, vinculado a un paso de flujo de trabajo | Definida en una app, versionada en el control de código fuente |
| **Reutilización** | Copiada y pegada por paso | Agregada como una acción en cualquier flujo de trabajo |
| **Entradas** | Variables conectadas en el editor | Campos mostrados a partir de tu esquema de entrada declarado |
| **Ideal para** | Lógica rápida y específica de un flujo de trabajo | Lógica compartida usada en varios flujos de trabajo |
Ambas se ejecutan en el mismo entorno de ejecución de funciones lógicas, por lo que una acción de código que hayas prototipado en línea puede luego promocionarse a una función lógica reutilizable con cambios mínimos.
<Tip>
Para la referencia orientada a desarrolladores sobre cómo definir funciones lógicas y exponerlas en el generador de flujos de trabajo, consulta [Logic Functions](/l/es/developers/extend/apps/logic/logic-functions), en particular la sección **Exposing a function as an AI tool or workflow action** y `workflowActionTriggerSettings`.
</Tip>
### Solicitud HTTP
Envía una solicitud a un API externo como parte de su flujo de trabajo.
<img src="/images/user-guide/workflows/http_action.png" style={{width:'100%'}} />
**Configuración**:
* Ingrese la URL del extremo de la API. Es posible usar parámetros de pasos anteriores.
* Seleccione el método HTTP (GET, POST, PUT, PATCH, DELETE)
* Agregue encabezados y valores necesarios
* Proporcione una respuesta de muestra para vista previa de estructura
## Acciones de IA
### Agente de IA - Próximamente
Ejecuta un agente de IA dentro de su flujo de trabajo para realizar tareas inteligentes.
**Configuración**:
* **Agente**: Seleccione un agente de IA existente o use el agente predeterminado
* **Prompt**: Escriba la instrucción para el agente de IA
* Haga referencia a variables de pasos anteriores en el prompt
**Qué pueden hacer los agentes de IA**:
* Analizar y resumir datos
* Clasificar o categorizar registros
* Generar contenido de texto
* Tomar decisiones basadas en datos
* Interactuar con sus datos de CRM usando herramientas
**Salida**: La respuesta del agente de IA está disponible para su uso en pasos posteriores. Si el agente tiene un esquema de salida estructurado, la respuesta seguirá ese formato.
<Note>
Las acciones del agente de IA consumen créditos de flujo de trabajo según el modelo de IA utilizado. Consulte [Créditos de flujo de trabajo](/l/es/user-guide/workflows/capabilities/workflow-credits) para obtener detalles.
</Note>
<Note>
Los agentes de IA respetan los permisos basados en roles. Puede asignar roles específicos a los agentes en **Configuración → Miembros → Roles** para controlar a qué datos pueden acceder. Consulte [Permisos](/l/es/user-guide/permissions-access/capabilities/permissions) para obtener detalles.
</Note>

View File

@@ -0,0 +1,66 @@
---
title: Ramas del flujo de trabajo
description: Crea rutas paralelas y lógica condicional en tus flujos de trabajo.
---
Las ramas te permiten dividir tu flujo de trabajo en varias rutas que pueden ejecutarse simultáneamente o de forma condicional según tus datos.
<img src="/images/user-guide/workflows/branches.png" style={{width:'100%'}} />
## Cómo funcionan las ramas
Cuando creas varias conexiones desde un único nodo, cada ruta se convierte en una rama. De forma predeterminada, **todas las ramas se ejecutan en paralelo**—no esperan unas a otras.
## Crear ramas
### Añadir una nueva rama
1. Haz **clic con el botón derecho en el lienzo principal** del flujo de trabajo (no en un nodo existente)
2. Haz clic en **Añadir nodo**
3. Elige el tipo de nodo para tu nueva rama
4. Arrastra una flecha desde la parte inferior del paso anterior hasta la parte superior de esta nueva acción
5. Repite para añadir más ramas desde el mismo nodo
<Note>
Cada rama es independiente. Añadir una rama no afecta a otras rutas existentes desde ese nodo.
</Note>
### Diseño visual
Las ramas aparecen como rutas paralelas en el editor de flujos de trabajo. Puedes arrastrar nodos para reorganizar el diseño visual sin afectar la ejecución.
## Ramas condicionales
Dado que todas las ramas se ejecutan de forma predeterminada, usa nodos **Filter** para controlar qué rutas se ejecutan realmente:
| Rama | Condición del filtro | Acción |
| ---- | --------------------- | ----------------------------- |
| A | Etapa = "Ganada" | Enviar correo de felicitación |
| B | Etapa = "Perdida" | Crear tarea de seguimiento |
| C | Etapa = "Negociación" | Notificar al gerente |
1. Crea ramas desde tu disparador o acción
2. Añade un nodo **Filter** como el primer paso de cada rama
3. Configura cada filtro con condiciones mutuamente excluyentes
4. Añade tus acciones después de cada filtro
Solo continuarán ejecutándose las ramas en las que se cumpla la condición del filtro.
## Combinar ramas
**Las ramas no se combinan automáticamente.** Cada rama se ejecuta de forma independiente hasta que termina. Tienes total flexibilidad para gestionar esto:
* **Opción 1: Mantener las ramas separadas**
Cada rama gestiona sus propias acciones de seguimiento de forma independiente. Este es el enfoque más sencillo cuando las ramas no necesitan converger.
* **Opción 2: Combinar ramas manualmente**
Al crear tu flujo de trabajo, puedes conectar manualmente varias ramas a la misma acción posterior. Simplemente arrastra flechas desde el final de cada rama hasta un nodo común.
<Note>
Aunque puedes usar un nodo [Delay](/l/es/user-guide/workflows/capabilities/workflow-actions#delay) para pausar la ejecución, actualmente no se puede configurar para esperar "hasta que otra rama termine".
</Note>
## Relacionado
* [Cómo usar las ramas en flujos de trabajo](/l/es/user-guide/workflows/capabilities/use-branches-in-workflows) - Guía paso a paso
* [Acciones de flujo de trabajo](/l/es/user-guide/workflows/capabilities/workflow-actions) - Acciones disponibles, incluyendo Filter

View File

@@ -0,0 +1,75 @@
---
title: Créditos de Workflow
description: Comprender el consumo y la gestión de los créditos de flujo de trabajo.
---
Los créditos de workflow potencian tus automatizaciones en Twenty. Comprender cómo funcionan te ayuda a optimizar costos y gestionar de manera efectiva tu presupuesto de automatización.
## Asignación de créditos
Los créditos de flujo de trabajo se asignan según tu ciclo de facturación, no según tu nivel de plan:
| Ciclo de facturación | Créditos |
| ----------------------- | ------------------- |
| **Suscripción mensual** | 5 créditos por mes |
| **Suscripción anual** | 50 créditos por año |
<Note>
5 créditos mensuales son generosos para las automatizaciones estándar. La mayoría de los equipos no superarán este límite con un uso típico de flujos de trabajo. Los créditos adicionales se necesitan principalmente para acciones avanzadas de Code y flujos de trabajo impulsados por IA.
</Note>
## Cómo Funciona el Consumo de Créditos
Los créditos se consumen cuando se ejecutan los workflows, no cuando los creas. Cada acción de workflow consume créditos en base a su complejidad:
### Consumo de Créditos por Tipo de Acción
* **Operaciones internas básicas**: Consumo de créditos muy bajo
* Buscar Registros
* Crear Registro
* Actualizar Registro
* Eliminar Registro
* Acciones de formulario
* **Operaciones complejas**: Mayor consumo de créditos
* Acciones de código (ejecución de JavaScript)
* Solicitudes HTTP a servicios externos
* **Funciones de IA**: mayor consumo de créditos
* Las acciones del agente de IA consumen créditos según el modelo de IA utilizado
* Los prompts más complejos y las respuestas más largas usan más créditos
* **Acciones de Delay**: consumo mínimo de créditos
* El nodo Delay consume **1 crédito** cuando se ejecuta
* **No se consumen créditos** durante el período de espera
* Un retraso de 5 minutos cuesta lo mismo que un retraso de 5 días
### Deducción en Tiempo Real
Los créditos se deducen en tiempo real a medida que se ejecutan los workflows. Esto significa:
* Los workflows en borrador no consumen créditos
* Solo los workflows activos y en ejecución utilizan la asignación de créditos
* Los workflows fallidos aún consumen créditos para los pasos completados
## Gestión de Créditos
### Verificar Uso de Créditos
1. Ir a **Ajustes → Facturación**
2. Ve tu consumo actual de créditos y saldo restante
3. Monitorea patrones de uso para optimizar tus workflows
### Adquirir Créditos Adicionales
Si necesitas más créditos adicionales a la asignación de tu plan:
1. Ir a **Ajustes → Facturación**
2. Haz clic en la opción para adquirir créditos adicionales. Hay paquetes de diferentes tamaños disponibles.
3. Los créditos se suman a tu saldo actual
## Mejores prácticas
* **Procesamiento por lote**: Usa operaciones a granel e Iterador de forma eficiente para reducir las llamadas de acción individuales
* **Optimización de disparadores manuales**: Para los disparadores manuales, elige la disponibilidad `Bulk` para procesar varios registros en una sola ejecución de un flujo de trabajo
* Optimiza acciones de Código para eficiencia

View File

@@ -0,0 +1,93 @@
---
title: Ejecuciones de flujos de trabajo
description: Supervise y gestione las ejecuciones de flujos de trabajo.
---
## Acerca de las ejecuciones
Una **Ejecución** es un registro de la ejecución de un flujo de trabajo. Cada vez que se activa un flujo de trabajo—ya sea por un evento de registro, una programación, una acción manual o un webhook—se crea una nueva ejecución.
## Visualización de ejecuciones
### Desde el editor de flujos de trabajo
1. Abra el flujo de trabajo que desea supervisar
2. Haga clic en el panel **Ejecuciones** en el lado derecho
3. Vea una lista de ejecuciones recientes con su estado
### Desde la vista de ejecuciones de flujos de trabajo
1. Vaya a **Ejecuciones de flujos de trabajo** en la barra lateral
2. Vea ejecuciones en todos los flujos de trabajo
3. Filtre por estado, flujo de trabajo o fecha
## Estados de las ejecuciones
| Estado | Descripción |
| ---------------- | ------------------------------------------------------------------------------------------------------- |
| **En ejecución** | El flujo de trabajo se está ejecutando actualmente |
| **Completado** | El flujo de trabajo finalizó correctamente |
| **Fallido** | El flujo de trabajo encontró un error y se detuvo |
| **En espera** | El flujo de trabajo está en pausa (p. ej., esperando una acción de Retardo o el envío de un Formulario) |
## Detalles de la ejecución
Haga clic en cualquier ejecución para ver:
* **Estado**: Estado actual de la ejecución
* **Iniciado**: Momento en que comenzó la ejecución
* **Duración**: Tiempo que tardó la ejecución
* **Datos del disparador**: La entrada que inició el flujo de trabajo
* **Salidas de los pasos**: Datos devueltos por cada paso
* **Mensajes de error**: Si la ejecución falló, qué salió mal
## Ejecución paso a paso
Cada ejecución muestra el progreso a través de su flujo de trabajo:
1. Vea qué pasos se completaron correctamente
2. Identifique dónde se produjeron fallos
3. Vea los datos transferidos entre pasos
4. Depure problemas examinando las entradas y salidas de los pasos
## Gestión de errores
Cuando una ejecución falla:
1. Abra la ejecución fallida
2. Encuentre el paso que causó el fallo
3. Revise el mensaje de error para obtener detalles
Problemas comunes:
* Faltan campos obligatorios
* Formato de datos no válido
* Errores de API externa
* Problemas de permisos
## Volver a ejecutar workflows
Si una ejecución falla, puedes:
* Corregir el problema subyacente y esperar al siguiente disparador
* Para flujos de trabajo manuales, se activa de nuevo con los mismos datos o actualizados
* Revisar la lógica del flujo de trabajo para prevenir futuras fallas
## Consejos de rendimiento
### Gestionar Historial de Ejecución
* Las ejecuciones se mantienen para referencia histórica
* Las ejecuciones muy antiguas pueden ser archivadas automáticamente
* Exportar datos de ejecución si necesita mantener registros
### Monitoreo de Mejores Prácticas
* Comprobar que se ejecuta regularmente después de activar nuevos flujos de trabajo
* Revisar ejecuciones fallidas para identificar patrones
## Relacionado
* [Disparadores de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-triggers)
* [Acciones de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-actions)
* [Solución de problemas de flujo de trabajo](/l/es/user-guide/workflows/how-tos/need-more-help/workflow-troubleshooting)

View File

@@ -0,0 +1,137 @@
---
title: Disparadores de Flujos de Trabajo
description: Obtén información sobre los distintos activadores que inician tus flujos de trabajo.
---
## Acerca de los activadores
Los flujos de trabajo siempre comienzan con un solo disparador que define cuándo debe ejecutarse la automatización.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**¡Se admiten objetos avanzados!** Más allá de los objetos estándar de CRM (Personas, Empresas, Oportunidades), también puedes activar flujos de trabajo y ejecutar acciones sobre:
* Miembros del espacio de trabajo
* Eventos del calendario
* Mensajes (correos electrónicos)
* Tareas, notas y muchos otros objetos del sistema
Esto abre potentes automatizaciones como notificar a los miembros del equipo cuando se crean eventos del calendario o procesar automáticamente los correos electrónicos entrantes.
</Tip>
## Se crea un registro
Inicia el flujo de trabajo cuando se crea un nuevo registro en un objeto seleccionado (Personas, Empresas, Oportunidades o cualquier objeto personalizado).
**Configuración**: Selecciona el tipo de objeto para monitorear nuevos registros.
<Note>
* Este disparador es ideal para registros creados por CSV, buzón de correo y sincronización de calendario, o API.
* **No se recomienda para registros creados manualmente**: con este activador, los flujos de trabajo comienzan tan pronto como se crea el registro. Ya que la interfaz de usuario veinte ofrece guardado automático en la marcha (no hay modo de edición y luego una validación para guardar registros), el flujo de trabajo se activará antes de que el usuario introduzca todos los campos.
Para activar este flujo de trabajo en registros creados manualmente, se recomienda usar el activador `Record is created or updated` en su lugar.
</Note>
## Se actualiza un registro
Inicia el flujo de trabajo cuando se realizan cambios en un registro existente.
**Configuración**:
* Selecciona el tipo de objeto
* Opcionalmente especifica qué campos monitorear para cambios
## Se actualiza o se crea un registro
Inicia el flujo de trabajo cuando un registro es creado o actualizado en un objeto seleccionado.
**¿Por qué esto es importante?**:
* **Importaciones API/CSV**: Los registros se crean con todos los campos poblados inmediatamente
* **Creación manual**: Los registros se crean primero, luego los campos se agregan en actualizaciones posteriores
**Configuración**:
* Selecciona el tipo de objeto para monitorear
* Opcionalmente especifica qué campos monitorear para cambios
* El flujo de trabajo se activará tanto en la creación inicial como en cualquier actualización posterior
## Se elimina un registro
Inicia el flujo de trabajo cuando un registro es eliminado de un objeto.
**Configuración**: Selecciona el tipo de objeto para monitorear eliminaciones.
## Activador manual
Inicia el flujo de trabajo cuando es desencadenado por una acción del usuario. Se puede acceder a este activador a través del menú `Cmd+K` o mediante un botón personalizado que se mostrará en la barra de navegación superior después de seleccionar uno o varios registros.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Configuración de Disponibilidad**:
Elige cómo debe manejar el flujo de trabajo la selección de registros:
* **Global**: No se requiere ningún registro para activar este flujo de trabajo. El flujo de trabajo se activa desde el menú de comandos `Cmd+K` en cualquier lugar (desde cualquier objeto) y no utiliza registros como entrada.
Para una disponibilidad **única** y **masiva**, los registros seleccionados se pasarán a tu flujo de trabajo. Esto está configurado para un objeto dado, y se pueden seleccionar varios registros antes de activar el flujo de trabajo.
* **Single**: El flujo de trabajo se ejecutará de principio a fin tantas veces como haya registros seleccionados.
<Note>
**Límite flexible: 100 ejecuciones/minuto**. A partir de ese punto, los flujos de trabajo permanecen en estado "Not Started" y se procesan gradualmente—ya sea mediante un trabajo en segundo plano o cuando otro flujo de trabajo entra en la cola. Esto significa que puedes seleccionar más de 100 registros con un único activador; la ejecución solo será más lenta.
</Note>
* **Bulk**: El flujo de trabajo se ejecutará una vez, proporcionando la lista completa de registros como entrada. Esto significa que el flujo de trabajo debe contener una [Acción Iterator](/l/es/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
Esto es más avanzado y es ideal para quienes quieren optimizar la cantidad de ejecuciones del flujo de trabajo.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
**Configuración Adicional**:
* Selecciona el objeto de destino (para disponibilidad individual y en masa)
* Elige un ícono de comando para el disparador del flujo de trabajo
* Configura la ubicación en la barra de navegación (fijado o no fijado)
**Métodos de Acceso**:
* Menú `Cmd+K` para encontrar e iniciar flujos de trabajo manuales
* Botón personalizado en la barra de navegación superior (si está configurado)
## Activador basado en tiempo: según un horario
Inicia el flujo de trabajo de forma recurrente según lo defina.
**Configuración**:
* Selecciona la unidad de tiempo (minutos, horas, días)
* Ingresa un valor o usa expresiones cron personalizadas para una programación avanzada
<Note>
**Zona horaria**: Los flujos de trabajo programados se ejecutan en **UTC**. Al configurar las horas para programaciones diarias, convierte tu hora local a UTC.
</Note>
## Activador externo: Webhook
Inicia el flujo de trabajo cuando se recibe una solicitud GET o POST de un servicio externo.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Configuración**:
* El flujo de trabajo proporciona una URL de webhook única—cópiala y agrégala a tu sistema externo como el endpoint a invocar.
* Para solicitudes POST, define la estructura del cuerpo esperada para que Twenty sepa qué datos esperar. Añade aquí los campos que recibirás y que se necesitarán más abajo en tu flujo de trabajo.
* Configura la autenticación (próximamente).
## Elegir el activador correcto
| Caso de uso | Activador recomendado |
| ------------------------------------------------- | ---------------------------------- |
| Los nuevos leads necesitan procesamiento | Se crea un registro |
| Los cambios en los datos requieren sincronización | Se actualiza un registro |
| Importación/gestión manual de datos | Se actualiza o se crea un registro |
| Limpieza después de la eliminación | Se elimina un registro |
| Acción iniciada por el usuario | Iniciar manualmente |
| Informes recurrentes | Según una programación |
| Integración externa | Webhook o según un horario |

View File

@@ -0,0 +1,84 @@
---
title: Versiones del flujo de trabajo
description: Gestiona versiones y borradores de flujos de trabajo.
---
## Acerca de las versiones
Cada vez que activas un flujo de trabajo, se crea una nueva versión. Esto te permite hacer un seguimiento de los cambios a lo largo del tiempo y revertir a configuraciones anteriores si es necesario.
## Estados de la versión
| Estado | Descripción |
| --------------- | ---------------------------------------------- |
| **Borrador** | En edición, aún no publicado |
| **Activo** | Versión en vivo respondiendo a activadores |
| **Desactivado** | Anteriormente activo pero detenido manualmente |
| **Archivado** | Versiones pasadas guardadas para historial |
## Trabajar con borradores
Cuando editas un flujo de trabajo activo, tus cambios se guardan como un **borrador**. La versión activa sigue ejecutándose mientras trabajas en las actualizaciones.
Cuando termines de editar, puedes:
* **Activar**: Publica el borrador como la nueva versión activa (la versión anterior se archiva)
* **Descartar**: Elimina el borrador y conserva la versión activa actual
## Historial de versiones
### Ver versiones anteriores
1. Abre el flujo de trabajo
2. Haz clic en la pestaña **Versiones**
3. Consulta todas las versiones anteriores con marcas de tiempo
### Restaurar una versión
1. Encuentra la versión que quieres restaurar
2. Haz clic en **Usar como borrador**
3. La versión se copia a un nuevo borrador
4. Realiza las actualizaciones necesarias
5. Activa cuando esté lista
## Mejores prácticas
### Gestión de versiones
* Activa solo cuando esté lista para producción
* Mantén cambios significativos entre versiones
* Documenta los cambios importantes en los nombres o descripciones de los flujos de trabajo
* Prueba en modo borrador antes de activar
### Revertir cambios
* Si una nueva versión causa problemas, restaura la versión anterior
* Usa el historial de versiones para ver qué cambió
* Siempre prueba las versiones restauradas antes de activar
## Flujos de Trabajo comunes
### Edición rápida
1. Realiza cambios menores en un flujo de trabajo activo
2. Prueba en modo borrador
3. Activa la nueva versión
### Revisión importante
1. Usa la versión anterior como punto de partida
2. Realiza cambios significativos en el borrador
3. Prueba a fondo todos los escenarios
4. Activa cuando estés seguro
### Reversión
1. Identifica el problema con la versión actual
2. Encuentra la última versión funcional en el historial
3. Haz clic en **Usar como borrador**
4. Activa para restaurar el comportamiento anterior
## Relacionado
* [Primeros pasos con Flujos de Trabajo](/l/es/user-guide/workflows/overview)
* [Ejecuciones de flujos de trabajo](/l/es/user-guide/workflows/capabilities/workflow-runs)

View File

@@ -0,0 +1,82 @@
---
title: Manejar arrays en acciones de Code
description: Aprende a manejar correctamente las entradas de arrays en las acciones de Code de flujos de trabajo.
---
Al trabajar con arrays en acciones de Code, puedes encontrarte con dos desafíos comunes:
1. **Arrays pasados como cadenas** — los datos de sistemas externos o pasos anteriores llegan como una cadena en lugar de un array real
2. **No se pueden seleccionar elementos individuales** — solo puedes seleccionar el array completo, no campos específicos dentro de él
Ambos se pueden resolver con un nodo Code.
## Analizar arrays a partir de cadenas
A menudo, los arrays se pasan entre pasos de un flujo de trabajo como cadenas o JSON en lugar de arrays nativos. Esto ocurre cuando:
* Se reciben datos de APIs externas mediante HTTP Request
* Procesar cargas útiles de webhooks
* Pasar datos entre pasos del flujo de trabajo
**Solución**: agrega este patrón al comienzo de tu acción de Code:
```javascript
export const main = async (params: {
users: any;
}): Promise<object> => {
const { users } = params;
// Handle input that may come as a string or an array
const usersFormatted = typeof users === "string" ? JSON.parse(users) : users;
// Now you can safely work with usersFormatted as an array
return {
users: usersFormatted.map((user) => ({
...user,
activityStatus: String(user.activityStatus).toUpperCase(),
})),
};
};
```
La línea clave `typeof users === "string" ? JSON.parse(users) : users` verifica si la entrada es una cadena, la analiza si es necesario o la usa directamente si ya es un array.
## Extraer campos individuales de arrays
Un webhook podría devolver un array como `answers: [...]`, pero en pasos posteriores del flujo de trabajo solo puedes seleccionar el **array completo**, no elementos individuales dentro de él.
**Solución**: agrega un nodo Code para extraer campos específicos y devolverlos como un objeto estructurado:
```javascript
export const main = async (params: {
answers: any;
}): Promise<object> => {
const { answers } = params;
// Handle input that may come as a string or an array
const answersFormatted = typeof answers === "string"
? JSON.parse(answers)
: answers;
// Extract specific fields from the array
const firstname = answersFormatted[0]?.text || "";
const name = answersFormatted[1]?.text || "";
return {
answer: {
firstname,
name
}
};
};
```
El nodo Code devuelve un objeto estructurado en lugar de un array. En los pasos posteriores, ahora puedes seleccionar campos individuales como `answer.firstname` y `answer.name` desde el selector de variables.
<Tip>
**¿Quieres iterar sobre el array en lugar de extraer campos?** Cuando un paso de Code o Logic Function devuelve un array de nivel superior, puedes pasarlo directamente a un [Iterator](/l/es/user-guide/workflows/capabilities/use-iterator): selecciona la opción **Whole list** del paso como la entrada del Iterator y luego haz referencia a cada elemento con `{{iterator.currentItem}}` dentro del bucle. En ese caso, no necesitas reestructurar el array en un objeto.
</Tip>
<Tip>
Haz clic en el icono cuadrado en la parte superior derecha del editor de código para mostrarlo en pantalla completa — es útil, ya que el ancho predeterminado del editor es limitado.
</Tip>

Some files were not shown because too many files have changed in this diff Show More