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,76 @@
---
title: Tratamento de erros e validação
description: Revise e corrija os erros de importação diretamente na IU antes de confirmar.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Validação pré-importação
Depois de carregar o seu ficheiro e mapear os campos, o Twenty valida os seus dados **antes** de os importar. Isto permite detetar e corrigir erros sem afetar os seus dados existentes.
## Como Funciona
1. **Carregue** o seu ficheiro CSV
2. **Mapeie** as suas colunas para os campos do Twenty
3. **Revise** os potenciais erros destacados em amarelo
4. **Corrija os erros** diretamente na IU
5. **Confirme** a importação
<VimeoEmbed videoId="1145273857" title="Demonstração em vídeo" />
## Apresentação de erros
As linhas com erros são destacadas em **amarelo**. Pode:
* **Edite a célula diretamente** para corrigir o erro
* **Remova a linha** para a ignorar por completo
Esta edição em linha poupa tempo — não é necessário voltar à sua folha de cálculo, corrigir os erros e voltar a carregar.
## Tipos de erro comuns
### Valores duplicados
**Causa**: Um campo único (email, domínio) já existe no Twenty ou aparece duas vezes no seu ficheiro.
**Correção**:
* Edite o valor duplicado na IU de importação
* Remova uma das linhas duplicadas
Consulte [Restrições de unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints) para mais detalhes sobre como a unicidade é aplicada.
### Formato inválido
**Causa**: Os dados não correspondem ao formato esperado (por exemplo, email inválido, formato de data incorreto).
**Correção**: Edite a célula para usar o formato correto.
Consulte [Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping) para o formato esperado de cada tipo de campo.
### Campos obrigatórios ausentes
**Causa**: Um campo obrigatório está vazio.
**Correção**: Introduza um valor no campo obrigatório ou remova a linha.
### Relação não encontrada
**Causa**: O registo referenciado não existe (por exemplo, um domínio de Empresa que não foi importado).
**Correção**:
* Importe primeiro os registos pai
* Ou corrija o valor de referência
Consulte [Importar relações](/l/pt/user-guide/data-migration/capabilities/import-relations) para conhecer a ordem correta de importação e como ligar registos.
## Dicas para reduzir erros
1. **Baixe o modelo** para ver o formato esperado antes de importar o seu arquivo
2. **Limpe os seus dados** primeiro na folha de cálculo
3. **Importe os ficheiros na ordem correta** para importar relações (Empresas → Pessoas → Oportunidades)
4. **Teste com pequenos lotes** antes da importação completa
5. **Verifique se existem duplicados** antes de carregar
6. **Limite de cada arquivo a 10.000 registros**

View File

@@ -0,0 +1,198 @@
---
title: Mapeamento de Campos
description: Como o mapeamento de campos funciona durante a importação de dados.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Como funciona o mapeamento de campos
Ao fazer upload de um arquivo, a Twenty analisa as suas colunas e tenta associá-las aos campos existentes.
### Mapeamento automático
A Twenty tenta associar as colunas com base em:
* Nomes dos cabeçalhos das colunas (correspondências exatas ou semelhantes)
* Detecção de tipo de dados (datas, números, e-mails)
* Padrões comuns de campos
<Note>**Dica rápida:** Exporte algumas linhas do objeto que você deseja importar. O arquivo exportado terá exatamente os nomes de coluna que a Twenty espera, facilitando o mapeamento automático durante a importação.</Note>
### Opções de mapeamento manual
Para cada coluna, você pode:
* **Mapear para um campo**: selecione o campo correspondente da Twenty em um menu suspenso
* **Não mapear**: ignore a coluna completamente (os dados não serão importados)
<Note>**Os campos devem existir antes da importação.** A importação cria registros, não campos. Crie campos personalizados em **Configurações → Modelo de Dados** antes de importar.</Note>
## Compatibilidade de tipos de campo
Todos os tipos de campos disponíveis no Modelo de Dados são compatíveis com a importação.
Você também pode importar valores de `id` para atribuir um ID específico a novos registros ou atualizar os existentes.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Requisitos de formato de dados
<Note>**Alguns campos têm sintaxe especial.** Recomendamos baixar o arquivo de exemplo antes de preparar sua importação para ver a sintaxe esperada para cada tipo de campo.</Note>
### Campos de Endereço
Endereço é um campo aninhado com várias colunas. Algumas podem ficar em branco.
* **Endereço / Endereço 1**: Linha 1 do endereço
* **Endereço / Endereço 2**: Linha 2 do endereço
* **Endereço / Cidade**: Nome da cidade
* **Endereço / Estado**: Estado ou província
* **Endereço / País**: Nome do país
* **Endereço / Código Postal**: Código Postal/CEP
### Campos de Array
Use o seguinte formato:
```
["value1","value2"]
```
### Campos Booleanos
Use `TRUE` ou `FALSE` (em maiúsculas) - não `true` ou `false`
### Campos de Moeda
Moeda é um campo aninhado com duas colunas que **ambas devem ser preenchidas**:
* **Valor / Valor**: O valor numérico (por exemplo, `1234.56`)
* **Valor / Moeda**: O código da moeda (por exemplo, `USD`, `EUR`)
### Campos de Data
Formatos suportados:
* `YYYY-MM-DD` (recomendado)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* Formato ISO 8601
### Campos de Domínio
* Recomenda-se usar o formato `https://domain.com` para evitar a criação de duplicatas, pois esse é o formato usado para Empresas criadas pelas sincronizações da caixa de correio e do calendário
* Um `Domain Label` e uma `Domain URL` podem ser preenchidos: a boa prática é preencher `domain.com` no rótulo e `https://domain.com` na URL
* Domínios devem ser exclusivos no objeto Empresas
* **Os domínios devem ser exclusivos dentro do arquivo a ser importado**
### Campos de E-mail
* Deve estar em um formato de e-mail válido
* Os e-mails devem ser exclusivos dentro do objeto Pessoas
* **Os e-mails devem ser exclusivos dentro do arquivo a ser importado**
* Para e-mails adicionais: use **E-mails / E-mail principal** para o e-mail principal e **E-mails / E-mails adicionais** com este formato:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Campos de ID
Especificar um `id` durante a importação é opcional. A Twenty gera um automaticamente se não for fornecido.
Casos de uso para mapear uma coluna `id`:
* **Definir um ID específico**: escolha o UUID para registros recém-criados
* **Atualizar registros existentes**: faça a correspondência com registros existentes para atualizá-los, em vez de criar duplicatas. Nesse caso, recomenda-se não mapear os outros campos exclusivos: mapear apenas um campo exclusivo garante uma importação mais tranquila.
<Note>Se você fornecer um `id`, ele deve estar no formato UUID (por exemplo, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Campos JSON
Use um formato JSON válido:
```
{"key":"value","key2":"value2"}
```
### Campos de Links
Semelhante aos campos de Domínio:
* Preencha as colunas de rótulo e URL: **Links / URL do link** e **Links / Rótulo do link**
* Use o formato completo de URL: `https://example.com`
* Para links secundários, use a coluna **Links / Links Secundários** com este formato:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Campos de Seleção Múltipla
Use os **nomes da API** (não os rótulos de exibição) no seguinte formato:
```
["VALUE1","VALUE2"]
```
Veja [aqui](#finding-api-names-for-select-fields) onde encontrar os nomes da API.
<Note>Novas opções de seleção não serão criadas automaticamente pela importação. Elas devem ser adicionadas em **Configurações → Modelo de Dados** antes de importar.</Note>
<Warning>
**Importar sobrescritas; ele não adiciona.**
Se um registro já tiver `VALUE2` e `VALUE3` selecionados e você importar `["VALUE1"]`, o registro terá apenas `VALUE1` após a importação. As seleções anteriores são substituídas, não mescladas.
</Warning>
### Campos Numéricos
* Apenas números
* Decimais usam ponto: `1234.56`
* Sem separadores de milhares
### Campos de Telefone
Telefone é um campo aninhado com várias colunas que devem ser preenchidas
* **Telefones / Número de telefone principal**: O número de telefone (por exemplo, `4159095555`)
* **Telefones / Código do país do telefone principal**: Código do país (por exemplo, `US`)
* **Telefones / Código de chamada do telefone principal**: Código de discagem (por exemplo, `+1`)
### Campos de Classificação
Use o formato de nome da API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Campos de Relação
Consulte nosso artigo dedicado: [Importar relações entre objetos](/l/pt/user-guide/data-migration/capabilities/import-relations)
### Campos de Seleção
Use o **nome da API** da opção (não o rótulo de exibição):
```
VALUE1
```
Veja [aqui](#finding-api-names-for-select-fields) onde encontrar os nomes da API.
<Note>Novas opções de seleção não serão criadas automaticamente pela importação. Elas devem ser adicionadas em **Configurações → Modelo de Dados** antes de importar.</Note>
### Campos de Texto
* Nenhuma formatação especial é necessária
* Espaços no início e no fim são removidos
## Encontrar Nomes da API
Para campos Select, Multi-Select e Array com opções predefinidas, você deve usar os **nomes da API**, não os rótulos de exibição.
### Como encontrar nomes da API
1. Vá para **Configurações → Modelo de Dados**
2. Selecione o objeto e o campo
3. Ative o **Modo Avançado** (alternador no canto inferior direito da página de configurações)
4. Visualize o nome da API de cada opção
<VimeoEmbed videoId="1144910809" title="Demonstração em vídeo" />

View File

@@ -0,0 +1,48 @@
---
title: Formatos de Ficheiro Suportados
description: Formatos de ficheiro suportados para importação de dados no Twenty.
---
## Formatos Suportados
O Twenty suporta três formatos de ficheiro para importação:
| Formato | Extensão | Notas |
| ------------------ | -------- | ---------------------------- |
| **CSV** | .csv | Recomendado, mais compatível |
| **Excel** | .xlsx | Formato moderno do Excel |
| **Excel (Legado)** | .xls | Formato antigo do Excel |
## Requisitos do Ficheiro
| Requisito | Valor |
| ---------------------- | ------------------------------------------------------ |
| **Codificação** | UTF-8 recomendado |
| **Limite de registos** | 10 000 registos por ficheiro |
| **Estrutura** | A primeira linha deve conter os cabeçalhos das colunas |
| **Conteúdo** | Um tipo de objeto por ficheiro |
## Melhores Práticas para CSV
* **Delimitador**: Utilize vírgula (`,`) ou ponto e vírgula (`;`)
* **Qualificador de texto**: Utilize aspas duplas (`"`) para texto que contenha vírgulas
* **Finais de linha**: Windows (CRLF) ou Unix (LF), ambos são suportados
* **Valores vazios**: Deixe as células em branco, não utilize "NULL" ou "N/A"
## Melhores Práticas para o Excel
Ao exportar do Excel:
* Remova as fórmulas (exporte apenas valores)
* Elimine as linhas vazias no final
* Garanta que não existam células combinadas
* Utilize apenas a primeira folha
## Grandes Conjuntos de Dados
Para conjuntos de dados com mais de 10 000 registos:
* Divida em vários ficheiros
* Ou utilize a [importação via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api) para registos ilimitados
<Note>Para migrações muito grandes (100 000+ registos), a API é significativamente mais rápida e fiável do que as importações em CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: Importar Relações Entre Objetos
description: Importar relações entre registos via CSV.
---
## Visão Geral
O Twenty suporta a importação de relações entre objetos durante a importação por CSV. Isto permite-lhe ligar registos (por exemplo, associar Pessoas a Empresas) como parte da sua migração de dados.
<Note>**Atualmente suportado para importação**: Relações um-para-muitos que apontam para um único tipo de objeto de cada lado (por exemplo, Pessoas → Empresas). Relações que apontam para vários tipos de objeto ainda não são suportadas na importação/exportação.</Note>
## Como funcionam as relações no Twenty
### Um para Muitos / Muitos para Um
O Twenty suporta relações padrão em que um registo se liga a muitos outros:
* **Uma Empresa → Muitas Pessoas**: Uma empresa pode ter vários colaboradores, mas cada pessoa pertence a uma empresa
* **Uma Empresa → Muitas Oportunidades**: Uma empresa pode ter vários negócios, mas cada oportunidade pertence a uma empresa
### Relações que podem apontar para vários tipos de objeto
Algumas relações podem ligar-se a diferentes tipos de objetos. Isto funciona de duas formas:
**Padrão 1: Muitos registos a ligar-se, cada um, a um registo de diferentes tipos de objeto**
Várias Notas ou Tarefas podem ser anexadas a vários tipos de objeto de uma só vez:
* **Notas** podem ser ligadas a uma Pessoa, uma Empresa e uma Oportunidade em simultâneo
* **Tarefas** podem ser ligadas a uma Pessoa, uma Empresa e uma Oportunidade em simultâneo
Aqui, as Notas/Tarefas estão do lado "muitos". Cada uma liga-se a um registo por tipo de objeto.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Padrão 2: Um registo a receber ligações de muitos registos de diferentes tipos de objeto**
Um Projeto pode receber ligações de vários registos de diferentes tipos de objeto:
* **Um Projeto** pode ter muitas Pessoas ligadas a ele, muitas Empresas ligadas a ele e muitas Notas anexadas a ele
Aqui, o Projeto está do lado "um". Vários registos de diferentes objetos podem ligar-se todos ao mesmo Projeto.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Limitação de Importação/Exportação**: Relações que apontam para vários tipos de objeto (como Notas → Pessoas/Empresas/Oportunidades) **ainda não são suportadas** na importação ou exportação por CSV.
* **Importação**: Apenas podem ser importadas relações um-para-muitos que apontem para um único tipo de objeto de cada lado
* **Exportação**: As colunas para relações que apontam para vários tipos de objeto são, atualmente, deixadas em branco
Isto está no nosso roadmap.
</Warning>
### O que não é suportado hoje
**Relações muitos-para-muitos** ainda não estão disponíveis. Por exemplo, atualmente não pode criar uma relação em que:
* Muitas Pessoas estão ligadas a muitos Projetos
<Note>Relações muitos-para-muitos estão planeadas para o 2.º semestre de 2026.</Note>
## Ligar registos durante a importação
<Note>**Lembrete**: Só podem ser importadas relações um-para-muitos que apontem para um único tipo de objeto (por exemplo, Pessoas → Empresas). Relações que apontem para vários tipos de objeto (por exemplo, Notas → Pessoas/Empresas/Oportunidades) ainda não são suportadas.</Note>
### Passo 1: Identificar os lados "Um" e "Muitos"
Primeiro, determine qual o objeto que está do lado "um" e qual está do lado "muitos" da relação.
**Exemplo**:
* **Empresa** é o lado "um" (uma empresa tem muitos colaboradores)
* **Pessoas** é o lado "muitos" (cada pessoa pertence a uma empresa)
### Passo 2: Garanta que existem os registos do lado "Um"
Antes de importar o lado "muitos", os registos do lado "um" já devem existir no Twenty.
* Importe ou crie primeiro os registos do lado "um" (por exemplo, Empresas)
* Valide o seu identificador único. Isto pode ser:
* O `id` (UUID do Twenty)
* Um campo definido como único (por exemplo, `domain` para Empresas, ou um ID externo do seu sistema anterior)
<Warning>A importação falhará se for feita referência a um registo que não existe.</Warning>
### Passo 3: Prepare o seu ficheiro CSV
Adicione uma coluna no seu ficheiro CSV do lado "muitos" que referencia o registo do lado "um".
**Exemplo**: Para um ficheiro CSV de Pessoas ligado a Empresas:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Importante**:
* O valor deve **corresponder exatamente** ao campo único no registo da Empresa
* Para domínios, use o **URL de domínio** (por exemplo, `https://acme.com`), não o rótulo do domínio
* Mapeie apenas **um** identificador único por relação: isto leva a uma importação mais fluida
### Passo 4: Verifique se o campo de relação existe
Antes de carregar o seu ficheiro, garanta que o campo de relação existe entre os seus objetos.
Se não existir:
1. Vá a **Definições → Modelo de Dados**
2. Selecione o seu objeto (por exemplo, Pessoas)
3. Crie um campo de relação que aponte para o objeto de destino (por exemplo, Empresa)
### Passo 5: Carregue e mapeie a relação
1. Carregue o seu ficheiro CSV através da interface de importação
2. No passo de mapeamento de campos, encontre a sua coluna de relação (por exemplo, `companyDomain`)
3. Mapeie-a para o campo de relação (por exemplo, Empresa)
4. O Twenty ligará automaticamente cada registo ao pai correspondente
### Campos únicos disponíveis para relações
| Objeto | Campos únicos disponíveis |
| ------------------------------------------ | -------------------------------------------------- |
| **Empresas** | `id`, `domain`, qualquer campo único personalizado |
| **Pessoas** | `id`, `email`, qualquer campo único personalizado |
| **Membros do Espaço de Trabalho** | `id`, `email` (não o nome) |
| **Outros objetos padrão e personalizados** | `id`, qualquer campo marcado como único |
<Note>**Ligação a Membros do Espaço de Trabalho**: Quando a relação aponta para Membros do Espaço de Trabalho (a sua equipa que inicia sessão no Twenty), refira-os pelo seu **endereço de email**, não pelo nome.</Note>
<Note>Recomendamos usar `domain` para Empresas e `email` para Pessoas, pois são legíveis para humanos e fáceis de manter em folhas de cálculo.</Note>
<Note>**Lembrete**: Registos suavemente eliminados (visíveis em Menu de Comandos → Ver registos eliminados) contam para os critérios de unicidade. Se importar um registo com o mesmo valor único que um registo eliminado, o registo eliminado será restaurado. Veja [Restrições de unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints) para mais detalhes.</Note>
## Regra da Ordem de Importação
<Warning>
**Importe sempre primeiro o lado "um"!**
1. **Empresas** primeiro (sem dependências)
2. **Pessoas** em segundo (ligadas a Empresas)
3. **Oportunidades** em terceiro (ligadas a Empresas/Pessoas)
4. **Objetos personalizados** seguindo as suas dependências
O registo pai deve existir antes de o poder referenciar.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: Restrições de Unicidade
description: Como o Twenty impõe a unicidade dos dados durante a importação.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Visão geral
O Twenty impõe unicidade em determinados campos para evitar registos duplicados e garantir a integridade dos dados. Compreender estas restrições é essencial para importações bem-sucedidas.
## Campos Únicos por Predefinição
| Objeto | Campos Únicos |
| -------------------------- | ------------------------------ |
| **Pessoas** | `id`, `email` |
| **Empresas** | `id`, `domain` |
| **Objetos personalizados** | `id` apenas (por predefinição) |
<Note>O campo `id` é o identificador interno do Twenty, gerado automaticamente para cada registo. Utiliza o formato UUID (por exemplo, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## Campos Únicos Personalizados
Pode definir campos únicos adicionais em **Definições → Modelo de Dados**:
1. Vá a **Definições → Modelo de Dados**
2. Selecione o objeto
3. Clique num campo
4. Ative **Único** nas definições do campo
### Casos de Utilização para Campos Únicos Personalizados
* **IDs externos**: Guardar IDs de outros sistemas (Salesforce ID, HubSpot ID)
* **Identificadores empresariais**: Números de colaborador, códigos de cliente
* **Informações de contacto alternativas**: Perfil do LinkedIn, número de telefone
<Note>O nome do campo `id` é reservado para o ID interno do Twenty. Utilize um nome diferente, como `externalId` ou `legacyId`, para identificadores externos.</Note>
## Comportamento da Importação
### Criação de Novos Registos
Se o valor de um campo único não existir, é criado um novo registo.
### Atualização de Registos Existentes
Se o valor de um campo único corresponder a um registo existente, esse registo é **atualizado** com os novos dados.
<Warning>Para **atualizar registos existentes**, recomenda-se **corresponder apenas a um campo único**.</Warning>
### Registos Eliminados Logicamente
<Warning>
**Os registos eliminados contam para a unicidade.**
Registos eliminados logicamente (visíveis em Menu de Comandos → Ver registos eliminados) são incluídos nas verificações de unicidade. Se importar um registo com o mesmo valor único que um registo eliminado, o registo eliminado será **restaurado** com os novos dados.
</Warning>
## Deteção de Duplicados Durante a Importação
Durante a fase de validação:
* Os duplicados no seu ficheiro são realçados a amarelo
* Pode editar ou remover linhas duplicadas na interface antes de iniciar a importação
<VimeoEmbed videoId="1145246326" title="Demonstração em vídeo" />
## Melhores Práticas
1. **Remova os duplicados** do seu ficheiro antes de importar
2. **Verifique se existem registos** no Twenty antes de importar
3. **Utilize IDs externos** ao migrar de outros sistemas
4. **Inclua campos únicos** se quiser atualizar registos existentes

View File

@@ -0,0 +1,32 @@
---
title: Exportar FAQ
description: Perguntas frequentes sobre a exportação de dados.
---
<AccordionGroup>
<Accordion title="Podemos exportar todos os dados do espaço de trabalho antes do cancelamento, incluindo objetos personalizados, campos personalizados, relações, notas, tarefas, oportunidades, anexos, fluxos de trabalho, permissões e histórico de auditoria?">
Os dados da Área de Trabalho podem ser exportados antes do cancelamento com algumas exceções: painéis, fluxos de trabalho e permissões devem ser transferidos manualmente; os logs de auditoria não podem ser transferidos.
</Accordion>
<Accordion title="Quais elementos não podem ser exportados ou migrados?">
A maioria dos elementos pode ser exportada ou migrada com algumas exceções:
* workflows, dashboards e todas as configurações (chaves API, webhooks, logs de auditoria, configurações de usuário, etc.) deve ser migrado manualmente
* objetos e campos criados pelo app podem ser migrados instalando o aplicativo dito em um espaço de trabalho diferente. Eles não deveriam ser migrados manualmente
* alguns registros, como versões do fluxo de trabalho e execução de fluxo de trabalho, não são transferíveis e espera-se que sejam perdidos
* alguns objetos como mensagem e objetos relacionados à agenda não devem ser exportados como são criados quando uma conta é conectada e sincronizada periodicamente. Eles serão sincronizados novamente assim que você conectar sua conta (desde que você tenha acesso a essa conta, se é uma conta de um membro da equipe que deixou a sua empresa, então essas mensagens devem ser exportadas, caso contrário serão perdidas)
</Accordion>
<Accordion title="Existe uma nuvem oficial para o procedimento de migração auto-hospedado ou um serviço de migração assistido?">
A partir de agora, não existe um procedimento oficial de migração em nuvem por auto-hospedado. A ideia geral é:
* primeiramente, instale aplicativos para introduzir objetos e campos do app
* replicar objetos e campos personalizados adicionados por usuários
* usar um script com chaves de API ou ferramentas de IA para migrar todos os dados de uma área de trabalho para outra
* todos os objetos não transferíveis devem ser migrados manualmente
Peço-lhe que esteja ciente de algumas coisas:
* você pode enviar até 50 solicitações por minuto no plano Pro ou 100 solicitações por minuto no plano da Organização antes de atingir o limite de uma solicitação/min
* Cada solicitação de API pode ter até 200 registros
* alguns dados em campos como criados por atividades da Linha do tempo e atualizados serão perdidos durante a importação e substituídos pelo sistema
</Accordion>
<Accordion title="Os arquivos exportados são fornecidos em formatos abertos e documentados?">
Os arquivos exportados na interface do usuário estão no formato Excel, e todas as solicitações de API podem ser salvas no formato JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
title: Exporte Seus Dados
description: Guia completo passo a passo para exportar dados do Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Visão geral
Exporte os dados do seu espaço de trabalho para CSV para backups, relatórios ou migração.
**Casos de uso:**
* **Backups regulares** — mantenha cópias dos seus dados
* **Relatórios externos** — analise os dados no Excel, Google Sheets ou em ferramentas de BI
* **Migração** — mova dados para outro sistema
* **Atualizações em massa** — exporte, edite e reimporte para atualizar registros
## O Que Você Precisa Saber
### Limites de Exportação
* **Máximo de 20,000 registros** por exportação
* Apenas **as colunas visíveis** são exportadas
* Apenas **os registros filtrados** são exportados (com base na sua visualização atual)
<Note>Para exportações maiores (20,000+ registros), use filtros para exportar em lotes ou use a [API](/l/pt/developers/extend/api).</Note>
### Permissões
Você precisa da permissão **"Export CSV"** para exportar dados. Entre em contato com o administrador do seu espaço de trabalho se você não tiver essa opção.
## Etapa 1: Navegue até o Objeto
Vá para o objeto que você deseja exportar:
* **Pessoas** — para contatos
* **Empresas** — para organizações
* **Oportunidades** — para negócios
* **Objetos personalizados** — qualquer objeto que você criou
## Etapa 2: Configure Sua Visualização
**Importante:** A exportação inclui apenas o que está visível na sua visualização atual.
### Adicionar/Remover Colunas
1. Clique em **Opções → Campos** (ou no **+** no final das colunas)
2. Marque os campos que você deseja exportar
3. Desmarque os campos de que você não precisa
### Filtrar Registros (Opcional)
Se você precisa apenas de um subconjunto de dados:
1. Clique em **Filtrar**
2. Adicione condições de filtro (ex.: "Data de criação > 1 de janeiro de 2024")
3. Somente os registros correspondentes serão exportados
### Ordenar Registros (Opcional)
1. Clique no cabeçalho de uma coluna para ordenar
2. A exportação seguirá sua ordem de classificação
<Note>**Crie uma visualização dedicada para exportação.** Salve uma visualização configurada especificamente para exportações para que você não precise reconfigurar a cada vez.</Note>
## Etapa 3: Exporte os Dados
1. Clique no ícone **⋮** no canto superior direito da tabela
2. Selecione **Exportar visualização**
3. Escolha onde salvar o arquivo CSV
4. Aguarde a conclusão do download
## O Que É Exportado
| Incluído | Não incluído |
| --------------------------------------------- | ------------------------------------ |
| Todas as colunas visíveis | Colunas ocultas |
| Registros que correspondem aos filtros atuais | Registros excluídos pelos filtros |
| Valores de campos personalizados | Campos que não estão na visualização |
| IDs dos registros | Anexos de arquivo |
| IDs de relacionamento | Imagens |
### Campos de Relação
IDs de relacionamento são exportados apenas no **lado "muitos"** de um relacionamento:
* **Exportação de Pessoas** inclui uma coluna `companyId` (relação Pessoas → Empresa)
* **Exportação de Empresas** NÃO inclui `peopleIds` (Empresas é o lado "um")
Isso significa que você pode usar a exportação de Pessoas para reimportar e manter o vínculo com Empresas, mas será necessário reimportar Pessoas após Empresas para recriar os relacionamentos.
## Exportação para Finalidades Específicas
### Para Backups
1. Crie uma visualização com **todos os campos** visíveis
2. Remova todos os filtros para incluir todos os registros
3. Exporte cada tipo de objeto separadamente
4. Armazene as exportações em um local seguro
5. Defina um lembrete recorrente (semanal/mensal)
### Para Relatórios Externos
1. Inclua apenas os campos necessários para a análise
2. Aplique filtros para focar nos dados relevantes
3. Considere ordenar pelo campo que você analisará
### Para Atualizações em Massa
1. Exporte os registros que você deseja atualizar
2. Inclua o identificador único (`email`, `domain` ou `id`)
3. Edite o arquivo exportado
4. Reimporte para atualizar os registros
Veja: [Como Atualizar Registros Existentes](/l/pt/user-guide/data-migration/how-tos/update-existing-records-via-import)
### Para Migração
Se você está exportando para migrar para outro sistema:
1. **Exporte cada objeto separadamente** — Pessoas, Empresas, Oportunidades, etc.
2. **Inclua campos de ID** — eles ajudam a manter os relacionamentos
3. **Documente os mapeamentos de campos** — observe como os campos do Twenty se mapeiam para o seu sistema de destino
## Como Lidar com Conjuntos de Dados Grandes (20,000+ Registros)
O limite de exportação é de 20,000 registros. Para conjuntos de dados maiores:
### Opção 1: Exportar em Lotes
1. Adicione um filtro (por exemplo, intervalos de "Data de criação")
2. Exporte o primeiro lote
3. Altere o filtro
4. Exporte o próximo lote
5. Combine os arquivos na sua planilha
**Exemplos de filtros para lotes:**
* Por intervalo de datas (janeiro, fevereiro, março...)
* Por responsável (Membro da equipe A, Membro da equipe B...)
* Por status (Ativo, Inativo...)
### Opção 2: Usar a API
A API não tem limite de registros:
1. Obtenha sua chave de API em **Configurações → Desenvolvedores**
2. Use a API GraphQL para consultar registros
3. Processe os resultados no seu aplicativo
Veja: [Documentação da API](/l/pt/developers/extend/api)
## Dicas e Boas Práticas
### Crie Visualizações de Exportação
Salve visualizações configuradas especificamente para exportações:
1. Configure colunas e filtros
2. Clique em **Opções da visualização** → **Salvar como nova visualização**
3. Nomeie como "Export - [Finalidade]"
### Proteja Suas Exportações
Arquivos exportados podem conter dados sensíveis:
* Armazene em locais seguros
* Exclua exportações antigas quando não forem mais necessárias
* Tenha cuidado ao compartilhar arquivos de exportação
### Verifique Antes de Exportar
<Check>As colunas corretas estão visíveis</Check>
<Check>Os filtros estão configurados corretamente (ou removidos para exportação completa)</Check>
<Check>Você tem permissão de Exportação</Check>
## Perguntas frequentes
<AccordionGroup>
<Accordion title="Por que algumas colunas estão ausentes na minha exportação?">
Apenas as colunas visíveis são exportadas. Adicione as colunas necessárias em **Opções → Campos** antes de exportar.
</Accordion>
<Accordion title="Por que minha exportação não tem todos os registros?">
Verifique seus filtros. A exportação inclui apenas registros que correspondem aos filtros da sua visualização atual. Remova os filtros para exportar todos os registros.
</Accordion>
<Accordion title="Posso exportar mais de 20,000 registros?">
Não em uma única exportação. Use filtros para exportar em lotes ou use a API para conjuntos de dados maiores.
</Accordion>
<Accordion title="Qual é o formato do arquivo de exportação?">
CSV (valores separados por vírgula). Abre no Excel, Google Sheets ou qualquer aplicativo de planilha.
</Accordion>
<Accordion title="Os IDs de relacionamento são incluídos?">
Sim, mas apenas no lado "muitos" dos relacionamentos. Por exemplo, uma exportação de Pessoas inclui `companyId`, mas uma exportação de Empresas não inclui IDs de pessoas.
</Accordion>
<Accordion title="Posso automatizar exportações?">
Não diretamente pela interface. Use a API para criar fluxos de trabalho de exportação automatizados.
</Accordion>
</AccordionGroup>
## Próximos Passos
* [Como Atualizar Registros Existentes](/l/pt/user-guide/data-migration/how-tos/update-existing-records-via-import) — edite e reimporte sua exportação
* [Como Importar Dados via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api) — para conjuntos de dados grandes
* [Documentação da API](/l/pt/developers/extend/api) — crie fluxos de trabalho de exportação personalizados

View File

@@ -0,0 +1,430 @@
---
title: Corrigir erros de importação
description: Guia completo de solução de problemas para corrigir erros de importação de CSV.
---
## Visão Geral
A importação não está funcionando? Este guia ajuda-o a identificar e corrigir, passo a passo, erros comuns de importação.
## Como funciona a validação da importação
Depois de carregar o seu ficheiro e mapear as colunas, o Twenty valida os seus dados:
1. **A validação é executada** — o Twenty verifica cada linha quanto a erros
2. **Os erros são realçados** — as linhas problemáticas aparecem a **amarelo**
3. **Pode corrigir no local** — edite as células diretamente na interface de importação
4. **Ou remova linhas** — ignore completamente os registos problemáticos
<Note>**Corrija os erros na interface.** Não precisa de voltar à sua folha de cálculo. Edite as células diretamente durante a importação para poupar tempo.</Note>
## Resolução de problemas passo a passo
### Passo 1: Identifique o tipo de erro
Clique numa linha realçada para ver a mensagem de erro específica. Tipos de erro comuns:
| Mensagem de Erro | O que significa |
| --------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| Valores duplicados realçados a amarelo | O valor já existe no Twenty ou aparece duas vezes no seu ficheiro |
| `{field} is not a valid {type}` (passe o cursor sobre a célula amarela) | Os dados não correspondem ao formato esperado |
| Campo obrigatório realçado | O campo obrigatório está vazio |
| `Can't connect to {object}. No unique record found...` (a importação falha) | O registo referenciado não existe |
| `Too many records. Up to 10000 allowed` (carregamento bloqueado) | O ficheiro tem mais de 10 000 registos |
### Passo 2: Corrija o erro
Siga as instruções específicas abaixo para cada tipo de erro.
---
## Erro: Valor duplicado
### O Que Você Verá
As linhas com valores duplicados são realçadas a amarelo na interface de importação antes de a importação começar.
### O que significa
Um campo único (email, domínio) pode:
* Já existe no Twenty
* Aparece duas vezes no seu ficheiro
### Como corrigir
**Opção 1: Edite o valor duplicado**
1. Clique na célula com o erro
2. Altere para um valor único
3. Continue com a importação
**Opção 2: Remova a linha duplicada**
1. Clique no X ao lado da linha
2. A linha será ignorada durante a importação
**Opção 3: Deixe o Twenty atualizar o registo existente**
1. Garanta que o seu ficheiro inclui um identificador único (`email`, `domain` ou `id`)
2. Mapeie o campo do identificador único
3. O Twenty atualizará o registo existente em vez de criar um duplicado
<Note>
**Também pode atualizar campos únicos.**
* Se mantiver o `id` mas alterar o `email` → o email será atualizado
* Se mantiver o `email` mas alterar o `id` → o id será atualizado
Desde que um identificador único corresponda, o Twenty atualiza o registo.
</Note>
### Como prevenir este erro
Antes de importar:
1. Ordene a sua folha de cálculo pelo campo único
2. Remova linhas duplicadas
3. Verifique se os registos já existem no Twenty
<Warning>
**Registos eliminados logicamente contam para a unicidade.**
Verifique o Menu de Comandos → Ver registos eliminados. Os registos lá continuam a impor a unicidade. Elimine-os permanentemente ou restaure e atualize.
</Warning>
Para mais detalhes: [Restrições de Unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Erro: Formato inválido
### O Que Você Verá
O valor da célula está realçado a amarelo. Passe o cursor sobre ele para ver a mensagem de erro:
```
{field name} is not a valid {field type}
```
### O que significa
Os dados não correspondem ao formato esperado para esse tipo de campo.
### Como corrigir — Por tipo de campo
#### E-mail
**Problema:** Formato de email inválido
**Solução:** Use o formato `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### Domínio
**Problema:** Formato inconsistente pode causar duplicados
**Solução:** Use o formato `https://domain.com` (recomendado)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<Note>Todos os formatos são válidos, mas `https://domain.com` é recomendado porque corresponde ao formato usado pela sincronização de email/calendário. Usar outros formatos pode criar empresas duplicadas.</Note>
#### Data
**Problema:** Formato de data não reconhecido
**Solução:** Use o formato `YYYY-MM-DD` de forma consistente em todo o ficheiro
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### Telefone
**Problema:** Colunas obrigatórias em falta
**Solução:** Inclua todas as colunas de telefone
| Coluna | Exemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### Booleano
**Problema:** Valor booleano incorreto
**Solução:** Use `TRUE` ou `FALSE` em maiúsculas
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### Seleção / Seleção múltipla
**Problema:** O valor não corresponde às opções existentes
**Solução:** Use **nomes da API**, não rótulos de exibição
Como encontrar nomes da API:
1. Vá a **Definições → Modelo de Dados**
2. Selecione o objeto e o campo
3. Ative o **Modo Avançado** (alternador no canto inferior direito)
4. Use o nome da API (por exemplo, `OPTION_1`, não "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### Moeda
**Problema:** Valor ou código de moeda em falta
**Solução:** Preencha ambas as colunas
| Coluna | Exemplo |
| ----------------- | --------- |
| **Valor / Valor** | `1234.56` |
| **Valor / Moeda** | `USD` |
#### Número
**Problema:** Caracteres não numéricos
**Solução:** Apenas números; ponto para decimais
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
Para referência completa de formatos: [Referência de Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping)
---
## Erro: Campo obrigatório em falta
### O Que Você Verá
A linha está realçada a amarelo com a célula do campo obrigatório assinalada.
### O que significa
Um campo obrigatório está vazio nesta linha.
### Como corrigir
**Opção 1: Introduza um valor**
1. Clique na célula vazia
2. Introduza um valor
3. Continue com a importação
**Opção 2: Remova a linha**
1. Se não tiver os dados, clique em X para ignorar a linha
### Como prevenir este erro
Antes de importar, identifique os campos obrigatórios:
1. Vá a **Definições → Modelo de Dados**
2. Selecione o seu objeto
3. Verifique quais os campos marcados como obrigatórios
---
## Erro: Relação não encontrada
### O Que Você Verá
Este erro aparece após o início da importação — a importação falha com uma mensagem como:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
Isto significa que não existe nenhuma Empresa no Twenty com esse identificador específico.
<Note>Ao contrário de outros erros, este não é detetado durante a etapa de revisão dos dados. A importação começará e depois falhará quando encontrar a relação em falta.</Note>
### O que significa
Está a tentar ligar a um registo que não existe no Twenty.
### Como corrigir
**Opção 1: Importe primeiro os registos pai**
1. Cancele a importação atual
2. Importe os registos pai (por exemplo, Empresas)
3. Depois, importe os registos filho (por exemplo, Pessoas)
**Opção 2: Corrija o valor de referência**
1. Verifique o valor de referência no seu ficheiro
2. Garanta que corresponde exatamente a um registo existente
3. Verifique o formato: os domínios devem ser `https://domain.com`
**Opção 3: Remova a relação**
1. Limpe a célula para importar sem a relação
2. Adicione a relação manualmente mais tarde
### Como prevenir este erro
1. **Importe na ordem correta:**
* Empresas primeiro
* Pessoas em segundo (com referências à empresa)
* Oportunidades em terceiro
2. **Verifique os valores de referência:**
* Exporte os registos pai para obter identificadores exatos
* Use o formato de domínio `https://domain.com`
* Verifique erros de digitação e sensibilidade a maiúsculas/minúsculas
<Warning>
**A importação falhará se for feita referência a um registo inexistente.**
Importe sempre os objetos pai antes dos objetos filho.
</Warning>
Para mais detalhes: [Importação de Relações](/l/pt/user-guide/data-migration/capabilities/import-relations)
---
## Erro: Ficheiro demasiado grande
### O Que Você Verá
Este erro aparece ao carregar o seu ficheiro — o carregamento é totalmente bloqueado:
```
Too many records. Up to 10000 allowed
```
Não poderá avançar para a etapa de revisão dos dados até reduzir o tamanho do ficheiro.
### O que significa
O seu ficheiro tem mais de 10 000 registos.
### Como corrigir
**Opção 1: Divida em vários ficheiros**
1. Divida os seus dados em ficheiros de 10 000 registos ou menos
2. Importe cada ficheiro separadamente
3. Mantenha a ordem de importação (Empresas antes de Pessoas)
**Opção 2: Use a importação via API**
Para conjuntos de dados muito grandes, use a API, que não tem limite de registos.
Consulte: [Como Importar Dados via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api)
---
## Erro: Campo não reconhecido
### O que significa
Uma coluna no seu ficheiro não pode ser mapeada porque o campo não existe no Twenty.
### Como corrigir
1. Vá a **Definições → Modelo de Dados**
2. Selecione o objeto que está a importar
3. Clique em **+ Adicionar campo**
4. Crie o campo personalizado com o tipo apropriado
5. Carregue novamente o seu ficheiro
<Note>A importação de CSV cria registos, não campos. Todos os campos devem existir antes de importar.</Note>
---
## Erro: Relação de utilizador vazia
### O que significa
Está a tentar atribuir um registo a um utilizador (Proprietário, Responsável), mas a relação não está a ser mapeada.
### Causas comuns
1. **O utilizador não aceitou o convite** — o utilizador ainda não existe no Twenty
2. **A usar o ID de utilizador do sistema antigo** — o Twenty não consegue corresponder IDs de outro sistema
3. **Formato de email incorreto** — o email não corresponde à conta do utilizador no Twenty
### Como corrigir
1. Garanta que todos os utilizadores aceitaram o convite para o seu espaço de trabalho no Twenty
2. Use o **endereço de email** do utilizador (não o nome nem o ID do sistema antigo)
3. Use o mesmo email que utilizaram para aderir ao Twenty
<Warning>
**Os utilizadores devem aceitar os convites antes de importar.**
Se um utilizador não tiver aceite o convite, os registos que o referenciem terão relações de utilizador vazias.
</Warning>
---
## Lista de verificação antes da importação
Evite erros verificando isto antes de importar:
### Requisitos do ficheiro
<Check>O ficheiro está no formato CSV, XLSX ou XLS</Check>
<Check>O ficheiro tem menos de 10 000 registos</Check>
<Check>O ficheiro usa codificação UTF-8</Check>
### Qualidade dos dados
<Check>Sem emails duplicados (para Pessoas)</Check>
<Check>Sem domínios duplicados (para Empresas)</Check>
<Check>Todas as datas usam um formato consistente</Check>
<Check>Todos os domínios usam o formato `https://domain.com`</Check>
### Formatos de campos
<Check>Campos booleanos usam `TRUE` ou `FALSE` (maiúsculas)</Check>
<Check>Campos de seleção usam nomes da API, não rótulos de exibição</Check>
<Check>Campos de telefone têm todas as colunas necessárias</Check>
<Check>Campos de moeda têm tanto o Valor como o Código da Moeda</Check>
### Relações
<Check>Registos pai importados antes dos registos filho</Check>
<Check>Colunas de relação referenciam registos existentes</Check>
<Check>O formato de domínio corresponde exatamente ao formato do Twenty</Check>
### Modelo de dados
<Check>Todos os campos personalizados existem em Definições → Modelo de Dados</Check>
<Check>As opções de seleção existem antes de importar</Check>
---
## Ainda com problemas?
Se já tentou as soluções acima:
1. **Transfira o ficheiro de exemplo** — veja o formato exato que o Twenty espera
2. **Exporte os registos existentes** — compare o seu ficheiro com dados funcionais
3. **Teste com um pequeno lote** — experimente primeiro 5–10 linhas
4. **Consulte os artigos de referência:**
* [Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping)
* [Restrições de Unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Importação de Relações](/l/pt/user-guide/data-migration/capabilities/import-relations)
* [Tratamento de Erros](/l/pt/user-guide/data-migration/capabilities/error-handling)

View File

@@ -0,0 +1,201 @@
---
title: Importar Empresas via CSV
description: Guia completo passo a passo para importar empresas para o Twenty.
---
## Visão Geral
Este guia explica como importar as suas empresas para o Twenty. **As empresas devem ser importadas primeiro** porque Pessoas e Oportunidades se ligam a Empresas.
## Antes de Começar
### Lista de Verificação de Pré-requisitos
<Check>
O seu ficheiro está no formato CSV, XLSX ou XLS
</Check>
<Check>
O ficheiro tem menos de 10 000 registos
</Check>
<Check>
Sem domínios duplicados no seu ficheiro
</Check>
<Check>
Todos os campos personalizados existem em **Settings → Data Model**
</Check>
<Note>
Precisa de importar mais de 10 000 empresas? Divida em vários ficheiros ou use a [importação via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Passo 1: Prepare os seus dados de empresas
### Campos Obrigatórios e Recomendados
| Campo | Obrigatório? | Formato | Notas |
| ------------------------- | ------------ | -------------------- | ------------------------------- |
| **Name** | Recomendado | Texto | Nome de apresentação da empresa |
| **Domínio** | Recomendado | `https://domain.com` | Identificador único |
| **Endereço** | Opcional | Várias colunas | Veja abaixo |
| **Empregados** | Opcional | Número | Número de empregados |
| **Campos personalizados** | Opcional | Varia | Deve existir no Data Model |
### Formato de Domínio
<Warning>
**Use o formato `https://domain.com` para domínios.**
Isto corresponde ao formato utilizado quando as Empresas são criadas automaticamente a partir da sincronização de e-mail/calendário, evitando duplicados posteriormente.
</Warning>
**Colunas de domínio:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Formato de Endereço
Endereço é um campo aninhado com várias colunas:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Exemplo de estrutura de CSV
```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>
**Dica profissional:** Clique em **Download sample file** durante a importação para ver os nomes de colunas exatos que o Twenty espera.
</Note>
## Passo 2: Aceda à funcionalidade de importação
**Opção 1: A partir da vista Empresas**
1. Navegue até **Empresas** na barra lateral esquerda
2. Clique no ícone **⋮** no canto superior direito
3. Selecione **Import records**
**Opção 2: Utilizando o Menu de Comando**
1. Prima `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Escreva "import"
3. Selecione **Import records**
4. Escolha **Empresas**
## Passo 3: Carregue o seu ficheiro
1. Clique em **Select file**
2. Escolha o seu ficheiro CSV, XLSX ou XLS
3. Aguarde que o Twenty analise o seu ficheiro
## Passo 4: Mapeie as suas colunas
O Twenty tenta automaticamente corresponder as suas colunas aos campos. Revise e ajuste:
1. **Verifique os mapeamentos automáticos** — confirme que estão corretos
2. **Corrija mapeamentos incorretos** — clique no menu suspenso para selecionar o campo correto
3. **Ignorar colunas** — selecione **Do not map** para as colunas que não quer importar
### Regras Importantes de Mapeamento
* **Domínio**: Faça o mapeamento para **Domain / Domain URL** (não para Domain Label)
* **Endereço**: Mapeie cada parte para a respetiva coluna (Cidade, Estado, etc.)
* **Campos Select**: Os valores devem corresponder às opções existentes (ou irá mapeá-los no passo seguinte)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Passo 5: Mapear valores de campos Select
Se tiver campos Select ou Multi-Select:
1. O Twenty mostra os seus valores ao lado das opções existentes
2. Relacione cada valor no seu ficheiro a uma opção do Twenty
3. Ou crie novas opções, se necessário
<Note>
As opções de Select usam **nomes de API**, não os rótulos de apresentação. Em **Settings → Data Model** → Ative o **Modo avançado** para ver os nomes de API.
</Note>
## Passo 6: Rever e corrigir erros
Antes de concluir a importação, o Twenty valida os seus dados:
1. Clique em **Next Steps**
2. As linhas com erros são destacadas em **amarelo**
3. **Corrija os erros diretamente** — clique numa célula e edite o valor
4. **Remova as linhas problemáticas** — clique no X para ignorar essa linha
### Erros comuns na importação de empresas
| Erro | Causa | Solução |
| ------------------------------- | ------------------------------ | -------------------------------------------------- |
| **Domínio duplicado** | O domínio já existe no Twenty | Remova do ficheiro ou atualize o registo existente |
| **Formato de domínio inválido** | Formato incorreto | Use `https://domain.com` |
| **Campo obrigatório ausente** | O campo obrigatório está vazio | Preencha o valor ou remova a linha |
## Passo 7: Concluir a importação
1. Revise o resumo da importação
2. Clique em **Confirm** para importar
3. Aguarde a conclusão da importação
4. Verifique consultando alguns registos
## Após importar empresas
Agora pode importar registos que se ligam a Empresas:
1. **[Importar Pessoas](/l/pt/user-guide/data-migration/how-tos/import-contacts-via-csv)** — ligue-as a Empresas utilizando o domínio
2. **Importar Oportunidades** — ligue-as a Empresas
3. **Verifique a importação** — faça uma verificação pontual de alguns registos para garantir que os dados estão corretos
## Atualizar Empresas existentes
Para atualizar empresas em vez de criar novas:
1. Inclua a coluna `domain` ou `id` no seu ficheiro
2. O Twenty faz a correspondência dos registos por este identificador único
3. As empresas existentes são atualizadas; as novas são criadas
Veja [Como Atualizar Registos Existentes](/l/pt/user-guide/data-migration/how-tos/update-existing-records-via-import) para obter detalhes.
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="Porque é que duas Empresas não podem ter o mesmo domínio?">
O domínio é um identificador único no Twenty. Isto evita empresas duplicadas e garante que a sincronização de e-mail associe corretamente os e-mails à empresa certa.
</Accordion>
<Accordion title="E se tiver empresas sem domínio?">
Pode deixar o domínio em branco. No entanto, recomendamos adicionar domínios quando possível para melhorar a qualidade dos dados e a ligação automática de e-mails.
</Accordion>
<Accordion title="Posso importar empresas sem quaisquer Pessoas associadas?">
Sim! Pode importar as empresas primeiro, depois importar as Pessoas e associá-las usando o domínio da empresa.
</Accordion>
<Accordion title="O que acontece se importar um domínio que já existe?">
Se incluir um identificador único (domínio ou id) que corresponda a uma empresa existente, a Twenty atualiza essa empresa em vez de criar um duplicado.
</Accordion>
<Accordion title="Como corrijo erros de 'domínio duplicado'?">
Remova o duplicado do seu ficheiro ou inclua o `id` da empresa para, em vez disso, atualizar o registo existente.
</Accordion>
</AccordionGroup>
## Resolução de Problemas
Está a ter problemas? Consulte:
* [Como Corrigir Erros de Importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors)
* [Referência de Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping)
* [Restrições de Unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,242 @@
---
title: Importar contactos via CSV
description: Guia completo passo a passo para importar pessoas/contactos para o Twenty.
---
## Visão Geral
Este guia explica como importar os seus contactos (People) para o Twenty.
## Antes de Começar
### Lista de Verificação de Pré-requisitos
<Check>
O seu ficheiro está no formato CSV, XLSX ou XLS
</Check>
<Check>
O ficheiro tem menos de 10 000 registos
</Check>
<Check>
Sem endereços de e-mail duplicados no seu ficheiro
</Check>
<Check>
**Empresas importadas primeiro** (se estiver a associar Pessoas a Empresas)
</Check>
<Check>
Todos os campos personalizados existem em **Settings → Data Model**
</Check>
<Warning>
**Importe Empresas Antes de Pessoas**
Se quiser associar Pessoas a Empresas, importe primeiro as Empresas. A Empresa deve existir antes de poder referenciá-la.
</Warning>
## Passo 1: Prepare os seus dados de contactos
### Campos Obrigatórios e Recomendados
| Campo | Obrigatório? | Formato | Notas |
| ------------------------- | ------------ | ----------------- | -------------------------- |
| **Email** | Recomendado | `name@domain.com` | Deve ser único |
| **Nome** | Recomendado | Texto | |
| **Apelido** | Recomendado | Texto | |
| **Empresa** | Opcional | Domínio ou ID | Liga à Empresa existente |
| **Telefone** | Opcional | Várias colunas | Veja abaixo |
| **Cargo** | Opcional | Texto | |
| **Campos personalizados** | Opcional | Varia | Deve existir no Data Model |
### Formato de E-mail
* Deve estar num formato de e-mail válido: `name@domain.com`
* **Deve ser único** — sem duplicados no seu ficheiro ou no Twenty
* Para e-mails adicionais, utilize a coluna **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Formato de Telefone
Telefone é um **campo aninhado** que requer várias colunas:
| Coluna | Exemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### A associar a Empresas
Adicione uma coluna com o identificador único da Empresa:
| Nome da Coluna | Formato | Exemplo |
| --------------- | -------------- | -------------------------------------- |
| `companyDomain` | Formato de URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use o formato de URL de domínio** (`https://acme.com`), não o rótulo. Isto corresponde à forma como as Empresas são armazenadas no Twenty.
</Note>
### Exemplo de estrutura de CSV
```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>
**Dica profissional:** Clique em **Download sample file** durante a importação ou exporte algumas Pessoas existentes para ver os nomes de colunas exatos que o Twenty espera.
</Note>
## Passo 2: Aceda à funcionalidade de importação
**Opção 1: A partir da vista Pessoas**
1. Navegue até **Pessoas** na barra lateral esquerda
2. Clique no ícone **⋮** no canto superior direito
3. Selecione **Import records**
**Opção 2: Utilizando o Menu de Comando**
1. Prima `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Escreva "import"
3. Selecione **Import records**
4. Escolha **Pessoas**
## Passo 3: Carregue o seu ficheiro
1. Clique em **Select file**
2. Escolha o seu ficheiro CSV, XLSX ou XLS
3. Aguarde que o Twenty analise o seu ficheiro
## Passo 4: Mapeie as suas colunas
O Twenty tenta automaticamente corresponder as suas colunas aos campos. Revise e ajuste:
1. **Verifique os mapeamentos automáticos** — confirme que estão corretos
2. **Corrija mapeamentos incorretos** — clique no menu suspenso para selecionar o campo correto
3. **Ignorar colunas** — selecione **Do not map** para as colunas que não quer importar
### Regras Importantes de Mapeamento
| Tipo de Coluna | Mapear Para | Notas |
| --------------------- | ------------------------------ | ----------------------------------------- |
| Referência de Empresa | campo de relação **Empresa** | Use domínio OU ID, não ambos |
| E-mail | **Email** | Endereço de e-mail principal |
| E-mails adicionais | **Emails / Additional Emails** | Formato de array |
| Telefone | Colunas separadas | Número, Código do País, Código de Chamada |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapeamento da Relação com a Empresa
Ao mapear a coluna de empresa:
1. Encontre a sua coluna de referência de empresa (por exemplo, `companyDomain`)
2. Mapeie-a para o campo de relação **Empresa**
3. O Twenty irá associar cada Pessoa à Empresa correspondente
<Warning>
**Mapeie apenas UM identificador único para relações.**
Não mapeie ambos `companyId` E `companyDomain`. Escolha um — de preferência o domínio, pois é legível para humanos.
</Warning>
## Etapa 5: Mapear valores de campos Select
Se você tiver campos Select ou Multi-Select (como Origem do lead):
1. O Twenty exibe seus valores ao lado das opções existentes
2. Relacione cada valor no seu arquivo a uma opção do Twenty
3. Ou crie novas opções, se necessário
<Note>
As opções de Select usam **nomes de API**, não os rótulos de exibição. Em **Configurações → Modelo de dados** → Ative o **Modo avançado** para ver os nomes de API.
</Note>
## Etapa 6: Revisar e corrigir erros
Antes de concluir a importação, o Twenty valida seus dados:
1. Clique em **Próximos Passos**
2. As linhas com erros são destacadas em **amarelo**
3. **Corrija os erros diretamente** — clique em uma célula e edite o valor
4. **Remova as linhas problemáticas** — clique no X para ignorar essa linha
### Erros comuns na importação de contatos
| Erro | Causa | Solução |
| ------------------------------ | ------------------------------------------ | ---------------------------------------------------- |
| **E-mail duplicado** | O e-mail já existe no Twenty ou no arquivo | Remova o duplicado ou atualize o registro existente |
| **Formato de e-mail inválido** | Formato de e-mail incorreto | Corrija para `name@domain.com` |
| **Relação não encontrada** | A empresa não existe | Importe as Empresas primeiro ou corrija a referência |
| **Campo obrigatório ausente** | O campo obrigatório está vazio | Preencha o valor ou remova a linha |
## Etapa 7: Concluir a importação
1. Revise o resumo da importação
2. Clique em **Confirmar** para importar
3. Aguarde a conclusão da importação
4. Verifique conferindo alguns registros e seus vínculos com a Empresa
## Após importar contatos
Seus contatos agora estão no Twenty! Próximos passos:
1. **Verifique os vínculos com a Empresa** — abra alguns registros de Pessoas para confirmar que estão vinculados à Empresa correta
2. **Importe Oportunidades** — se necessário, vincule-as a Pessoas e Empresas
3. **Configure a sincronização de e-mail** — conecte sua caixa de correio para ver o histórico de e-mails nos registros de contato
## Atualizando contatos existentes
Para atualizar contatos em vez de criar novos:
1. Inclua a coluna `email` ou `id` no seu arquivo
2. O Twenty faz a correspondência dos registros por esse identificador único
3. Os contatos existentes são atualizados; os novos são criados
Veja [Como Atualizar Registros Existentes](/l/pt/user-guide/data-migration/how-tos/update-existing-records-via-import) para obter detalhes.
## Perguntas frequentes
<AccordionGroup>
<Accordion title="Por que duas Pessoas não podem ter o mesmo e-mail?">
O e-mail é um identificador único no Twenty. Isso evita contatos duplicados e garante que a sincronização de e-mail vincule corretamente os e-mails à pessoa certa.
</Accordion>
<Accordion title="E se eu tiver pessoas sem e-mail?">
Você pode deixar o e-mail em branco. No entanto, recomendamos adicionar e-mails quando possível para melhorar a qualidade dos dados e a funcionalidade de sincronização de e-mail.
</Accordion>
<Accordion title="Como vinculo Pessoas a Empresas durante a importação?">
Adicione uma coluna com o domínio da Empresa (por exemplo, `https://acme.com`) ou o ID. Durante o mapeamento, conecte essa coluna ao campo de relação da Empresa.
</Accordion>
<Accordion title="E se a Empresa ainda não existir?">
Importe as Empresas primeiro e, depois, as Pessoas. A Empresa deve existir antes que você possa referenciá-la.
</Accordion>
<Accordion title="Posso importar o ID do meu CRM anterior?">
Sim! Crie um campo personalizado marcado como "único" no seu modelo de dados para armazenar o ID externo. Observação: o nome do campo `id` é reservado para o ID interno do Twenty.
</Accordion>
<Accordion title="Como corrijo erros de 'relação não encontrada'?">
A Empresa que você está referenciando não existe. Importe a Empresa primeiro ou verifique se o domínio/ID corresponde exatamente a uma Empresa existente.
</Accordion>
</AccordionGroup>
## Resolução de Problemas
Com problemas? Confira:
* [Como corrigir erros de importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors)
* [Como importar relações](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referência de mapeamento de campos](/l/pt/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,176 @@
---
title: Importar dados via API
description: Quando e como usar as APIs da Twenty para importações de dados em larga escala.
---
## Visão Geral
A Twenty oferece tanto **GraphQL** como **APIs REST** para a importação programática de dados. Use a API quando a importação por CSV não for prática para o seu volume de dados ou quando precisar de importações automatizadas e recorrentes.
## Quando usar a importação via API
| Cenário | Método recomendado |
| ---------------------------------- | ----------------------------------------- |
| Menos de 10 000 registos | Importação CSV |
| 10 000 - 50 000 registos | Importação CSV (dividida em ficheiros) |
| **Mais de 50 000 registos** | **Importação via API** |
| Migração única | Qualquer um dos dois (com base no volume) |
| **Importações recorrentes** | **Importação via API** |
| **Sincronização em tempo real** | **Importação via API** |
| **Integração com outros sistemas** | **Importação via API** |
<Note>Para conjuntos de dados na casa das centenas de milhares, a API é significativamente mais rápida e mais fiável do que múltiplas importações CSV.</Note>
## Limites de taxa da API
A Twenty impõe limites de taxa para assegurar a estabilidade do sistema:
| Limite | Valor |
| -------------------------------- | ---------------------- |
| **Pedidos por minuto** | 100 |
| **Registos por chamada em lote** | 60 |
| **Taxa de transferência máxima** | ~6 000 registos/minuto |
<Warning>
**Planeie a sua importação em função destes limites.**
Para 100 000 registos à taxa de transferência máxima, conte com aproximadamente 17 minutos de tempo de importação. Adicione tempo de margem para tratamento de erros e novas tentativas.
</Warning>
## Primeiros passos
### Passo 1: Obtenha a sua chave de API
1. Vá para **Configurações → Programadores**
2. Clique em **+ Criar chave de API**
3. Dê à sua chave um nome descritivo
4. Copie imediatamente a chave de API (não será mostrada novamente)
5. Guarde-a em segurança
<Warning>
**Mantenha a sua chave de API em segredo.**
Qualquer pessoa com a sua chave de API pode aceder e modificar os dados do seu espaço de trabalho. Nunca a faça commit em repositórios de código nem a partilhe publicamente.
</Warning>
### Passo 2: Escolha a sua API
A Twenty suporta dois tipos de API:
| API | Melhor para | Documentação |
| ----------- | ------------------------------------------------------------------------ | --------------------------------------------- |
| **GraphQL** | Consultas flexíveis, obtenção de dados relacionados, operações complexas | [Documentação da API](/l/pt/developers/extend/api) |
| **REST** | Operações CRUD simples, padrões REST familiares | [Documentação da API](/l/pt/developers/extend/api) |
Ambas as APIs suportam:
* Criar, ler, atualizar e eliminar registos
* **Operações em lote** — criar ou atualizar até 60 registos por chamada
**Para importações, use operações em lote** para maximizar a taxa de transferência dentro dos limites de taxa.
### Passo 3: Planeie a ordem da importação
Tal como nas importações por CSV, **a ordem importa** para as relações:
1. **Empresas** primeiro (sem dependências)
2. **Pessoas** em segundo (podem ligar-se a Empresas)
3. **Oportunidades** em terceiro (podem ligar-se a Empresas e Pessoas)
4. **Tarefas/Notas** (podem ligar-se a qualquer um dos anteriores)
5. **Objetos personalizados** (seguindo as suas dependências)
## Melhores Práticas
### Agrupe os seus pedidos
* Não envie registos um de cada vez
* Agrupe até **60 registos por chamada de API**
* Isto maximiza a taxa de transferência dentro dos limites de taxa
### Lide com os limites de taxa
* Implemente atrasos entre pedidos (mínimo de 600 ms para importações contínuas)
* Use backoff exponencial quando atingir os limites
* Monitorize respostas 429 (Too Many Requests)
### Valide os dados primeiro
* Limpe e valide os seus dados antes de importar
* Verifique se os campos obrigatórios estão preenchidos
* Verifique se os formatos correspondem aos requisitos da Twenty (veja [Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping))
### Registe tudo
* Registe cada registo importado (incluindo IDs)
* Registe erros com todo o contexto
* Isto ajuda a depurar problemas e a verificar a conclusão
### Teste primeiro
* Teste com um pequeno lote (10-20 registos)
* Verifique se os dados aparecem corretamente na Twenty
* Depois, execute a importação completa
### Upsert para evitar duplicados
A API GraphQL suporta **upsert em lote** — atualize se o registo existir, crie se não existir. Isto evita duplicados ao voltar a executar importações.
## Encontrar nomes de objetos e campos
Para ver os objetos e campos disponíveis:
1. Vá para **Configurações → API e Webhooks**
2. Explore a **API de Metadados**
3. Veja todos os objetos padrão e personalizados com os seus campos
A documentação mostra todos os objetos padrão e personalizados, os seus campos e os tipos de dados esperados.
## Serviços Profissionais
Para migrações de API complexas, os nossos parceiros podem ajudar:
| Serviço | O que está incluído |
| ------------------------------------- | -------------------------------------------- |
| **Conceção do Modelo de Dados** | conceber a sua estrutura de dados ideal |
| **Scripts de migração** | escrever e executar os scripts de importação |
| **Transformação de dados** | tratar de mapeamentos complexos e limpeza |
| **Validação e Garantia de Qualidade** | verificar que a migração está concluída |
**Melhor para:**
* Migrações de mais de 100 000 registos
* Transformações de dados complexas
* Prazos apertados
* Equipas sem recursos de programadores
Contacte-nos em [contact@twenty.com](mailto:contact@twenty.com) ou explore os nossos [Serviços de Implementação](/l/pt/user-guide/getting-started/capabilities/implementation-services).
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="Qual é a diferença entre GraphQL e REST?">
O GraphQL permite solicitar exatamente os dados de que precisa numa única consulta e é melhor para operações complexas. O REST utiliza métodos HTTP padrão (GET, POST, PUT, DELETE) e pode ser mais familiar se já trabalhou com APIs tradicionais.
</Accordion>
<Accordion title="Posso atualizar registos existentes via API?">
Sim! Utilize mutations de atualização (GraphQL) ou pedidos PUT/PATCH (REST) com o `id` do registo.
</Accordion>
<Accordion title="Como devo lidar com duplicados?">
Pesquise primeiro por registos existentes usando identificadores únicos (email, domínio). Atualize se existir, crie se não existir.
</Accordion>
<Accordion title="Posso eliminar registos via API?">
Sim, utilize mutations de eliminação (GraphQL) ou pedidos DELETE (REST).
</Accordion>
<Accordion title="Existe um SDK para Python ou Node.js?">
De momento não, mas ambas as APIs funcionam com qualquer cliente HTTP em qualquer linguagem.
</Accordion>
</AccordionGroup>
## Documentação da API
Para detalhes completos de implementação, exemplos de código e referência de esquema:
* [Documentação da API](/l/pt/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: Importar Relações Entre Objetos via CSV
description: Guia completo, passo a passo, para associar registos durante a importação de CSV.
---
## Visão Geral
Este guia orienta-o na importação de relações entre objetos — por exemplo, ligar Pessoas a Empresas ou Oportunidades a Pessoas.
<Note>**O que pode ser importado:** Apenas relações um-para-muitos que apontem para um único tipo de objeto. Relações que apontam para vários tipos de objeto (como Notas ligadas a Pessoas E Empresas) ainda não são suportadas para importação.</Note>
## Compreender as Relações
### O que é uma relação "Um-para-Muitos"?
Numa relação um-para-muitos:
* **Uma** Empresa tem **muitas** Pessoas (colaboradores)
* **Uma** Empresa tem **muitas** Oportunidades
* **Uma** Pessoa tem **muitas** Tarefas
O lado "um" é o **pai**. O lado "muitos" é o **filho**.
### Relações Comuns no Twenty
| Relação | Lado "Um" (Pai) | Lado "Muitos" (Filho) |
| ------------------------ | --------------- | --------------------- |
| Empresas → Pessoas | Empresa | Pessoas |
| Empresas → Oportunidades | Empresa | Oportunidades |
| Pessoas → Tarefas | Pessoa | Tarefas |
| Pessoas → Notas | Pessoa | Notas |
## Passo 1: Identificar os lados "Um" e "Muitos"
Antes de importar, determine qual objeto é o pai e qual é o filho.
**Pergunte a si mesmo:** "UM [Objeto A] tem MUITOS [Objeto B]?"
* Uma Empresa → Muitas Pessoas ✓ (A Empresa é o pai)
* Uma Pessoa → Muitas Empresas ✗ (Isto está errado — uma pessoa pertence a uma empresa)
## Passo 2: Importe primeiro os registos pai
O pai (lado "um") deve existir no Twenty antes de poder referenciá-lo.
**Ordem de importação:**
1. **Empresas** primeiro (sem dependências)
2. **Pessoas** em segundo (ligar a Empresas)
3. **Oportunidades** em terceiro (ligar a Empresas e/ou Pessoas)
4. **Tarefas/Notas** (ligar a qualquer um dos anteriores)
<Warning>
**Se o registo pai não existir, a importação falhará.**
Verifique sempre que as Empresas são importadas antes de importar Pessoas com referências a empresas.
</Warning>
## Passo 3: Anote o identificador único do pai
Precisa de referenciar o registo pai usando um **identificador único**. Opções disponíveis:
| Objeto Pai | Identificadores Únicos Disponíveis |
| -------------------------- | ------------------------------------------------------------------------- |
| **Empresas** | `id` (UUID), `domain` (recomendado) ou qualquer campo único personalizado |
| **Pessoas** | `id` (UUID), `email` ou qualquer campo único personalizado |
| **Membros do Workspace** | `id` (UUID), `email` (não o nome) |
| **Objetos personalizados** | `id` (UUID) ou qualquer campo marcado como único |
<Note>**Recomendado:** Use `domain` para Empresas e `email` para Pessoas. São legíveis por humanos e fáceis de verificar na sua folha de cálculo.</Note>
### Encontrar o identificador
Se precisar do `id`:
1. Exporte os registos pai do Twenty
2. A exportação inclui a coluna `id`
3. Use estes IDs no seu ficheiro de registos filho
## Passo 4: Verifique se o campo de relação existe
Antes de importar, garanta que o campo de relação existe entre os seus objetos.
**Para verificar ou criar:**
1. Vá a **Definições → Modelo de Dados**
2. Selecione o seu objeto filho (por exemplo, Pessoas)
3. Procure um campo de relação que aponte para o pai (por exemplo, Empresa)
4. Se não existir, crie-o:
* Clique em **+ Adicionar campo**
* Selecione o tipo **Relação**
* Escolha o objeto pai
## Passo 5: Prepare o seu ficheiro CSV
Adicione uma coluna ao seu CSV de registos filho que faça referência ao pai utilizando o seu identificador único.
### Exemplo: Pessoas ligadas a Empresas
**O seu CSV de Pessoas:**
```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
```
A coluna `companyDomain` faz referência ao domínio da Empresa.
### Requisitos de Formato
| Identificador | Formato | Exemplo |
| ------------- | -------------- | -------------------------------------- |
| Domínio | Formato de URL | `https://acme.com` |
| E-mail | Email padrão | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**O formato do domínio é importante!**
Use `https://domain.com` (não apenas `domain.com`). Isto corresponde à forma como a Twenty armazena domínios de Empresas e evita erros de correspondência.
</Warning>
### Regras Importantes
1. **Correspondência exata obrigatória** — o valor deve corresponder exatamente ao registo pai
2. **Mapeie apenas UM identificador único** — não inclua `companyId` E `companyDomain`
3. **Sensível a maiúsculas/minúsculas** — `Acme.com` ≠ `acme.com`
## Passo 6: Carregue e mapeie a relação
1. Navegue até ao objeto filho (por exemplo, Pessoas)
2. Clique em **⋮** → **Importar registos**
3. Carregue o seu ficheiro CSV
4. Na etapa de mapeamento de campos:
* Encontre a sua coluna de relação (por exemplo, `companyDomain`)
* Mapeie-a para o campo de relação **Empresa**
5. Conclua o mapeamento restante
6. Revise os erros e confirme
A Twenty ligará automaticamente cada registo filho ao pai correspondente.
## Passo 7: Verifique a importação
Após a importação:
1. Abra alguns registos filho (por exemplo, Pessoas)
2. Verifique se o campo de relação mostra o pai correto (por exemplo, Empresa)
3. Abra um registo pai e verifique a secção de registos relacionados
## Erros Comuns a Evitar
| Erro | Problema | Solução |
| ---------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------- |
| **Ordem de importação incorreta** | Importar Pessoas antes de Empresas | Importe sempre primeiro os pais e depois os filhos |
| **Formato de domínio incorreto** | Usar `acme.com` em vez de `https://acme.com` | Use o formato completo de URL com `https://` |
| **Vários campos únicos** | Mapear ambos `companyId` E `companyDomain` | Mapeie apenas UM identificador único |
| **Campo de relação em falta** | O campo de relação não existe no modelo de dados | Crie-o em **Definições → Modelo de Dados** antes de importar |
| **Registos inexistentes** | O registo pai não existe no Twenty | Importe primeiro os registos pai ou verifique se há erros ortográficos |
| **Incompatibilidade de maiúsculas/minúsculas** | `Acme.com` no ficheiro mas `acme.com` no Twenty | Garanta correspondência exata de maiúsculas/minúsculas |
## Ligar a Membros do Espaço de Trabalho
Ao ligar a Membros do Espaço de Trabalho (a sua equipa):
* Use o **endereço de email** deles, não o nome
* Exemplo: `owner@yourcompany.com`, não "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="E se o meu registo pai não tiver um domínio ou email?">
Tem duas opções:
1. Use o `id` da Twenty (exporte os registos pai para obter os respetivos IDs)
2. Crie um campo único personalizado no seu modelo de dados para armazenar um ID externo do seu sistema anterior
</Accordion>
<Accordion title="Posso atualizar relações em registos existentes?">
Sim! Inclua o identificador único do registo filho (por exemplo, `email` para Pessoas) e o novo valor da relação. A importação atualizará a relação.
</Accordion>
<Accordion title="Posso importar relações muitos-para-muitos?">
Relações muitos-para-muitos ainda não são suportadas para importação. Isto está planeado para o 1.º semestre de 2026.
</Accordion>
<Accordion title="Posso ligar a vários tipos de objeto (como Notas a Pessoas E Empresas)?">
Relações que apontam para vários tipos de objeto ainda não são suportadas para importação/exportação. Isto está no nosso roadmap.
</Accordion>
<Accordion title="O que acontece se um registo pai não existir?">
A importação mostrará um erro para essa linha. Você pode:
* Importe primeiro o registo pai e depois volte a importar
* Corrija o valor de referência
* Remova a linha da importação
</Accordion>
<Accordion title="Porque é que a minha relação não está a ligar corretamente?">
Causas comuns:
* Formato incorreto (use `https://domain.com` para domínios)
* Incompatibilidade de maiúsculas/minúsculas (verifique a grafia exata)
* O pai não existe (importe primeiro os pais)
* Mapeamento de vários identificadores (use apenas um)
</Accordion>
</AccordionGroup>
<Warning>
**Lembre-se: registos eliminados logicamente contam para a unicidade.**
Se estiver a receber erros de "not found", mas o registo parece existir, verifique Menu de Comandos → Ver registos eliminados. O pai pode ter sido eliminado logicamente.
</Warning>
## Resolução de Problemas
Está a ter problemas? Consulte:
* [Como Corrigir Erros de Importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors)
* [Capacidades de Importação de Relações](/l/pt/user-guide/data-migration/capabilities/import-relations)
* [Restrições de Unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,289 @@
---
title: Migração de Outros CRMs
description: Guia passo a passo para migrar os seus dados de qualquer CRM para o Twenty.
---
## Visão Geral
Este guia explica como migrar os seus dados de qualquer CRM para o Twenty. O processo envolve auditar os seus dados, preparar o seu espaço de trabalho no Twenty, exportar do seu sistema atual e importar para o Twenty.
<Note>Vistas, fluxos de trabalho e permissões devem ser recriados manualmente após a migração. Reserve tempo para este trabalho de configuração.</Note>
## Passo 1: Auditar os seus dados atuais
A migração é uma oportunidade para um novo começo. Não traga dados desnecessários.
**O que manter:**
* Contactos ativos e empresas ativas
* Oportunidades e negócios em aberto
* Notas e atividades importantes
* Campos personalizados que realmente utiliza
**O que deixar para trás:**
* Contactos desatualizados (sem atividade há mais de 2 anos)
* Registos duplicados
* Dados de teste
* Campos personalizados não utilizados
## Passo 2: Mapear o seu modelo de dados
Crie um documento de mapeamento entre o seu CRM atual e o Twenty:
| O seu CRM | Twenty |
| ---------------------- | ------------------------ |
| Conta / Organização | **Empresa** |
| Contacto / Pessoa | **Pessoas** |
| Negócio / Oportunidade | **Oportunidade** |
| Atividade | **Tarefa** ou **Nota** |
| Objeto personalizado | **Objeto personalizado** |
**Para cada campo, documente:**
* O nome do campo de origem
* O campo de destino no Twenty
* Quaisquer transformações de formato necessárias (datas, números de telefone, etc.)
<Note>Mantenha este documento de mapeamento à mão durante a importação — irá referenciá-lo ao mapear as colunas.</Note>
## Passo 3: Configure o seu espaço de trabalho no Twenty
Antes de importar dados, prepare o seu espaço de trabalho no Twenty:
### Crie objetos e campos personalizados
1. Vá a **Definições → Modelo de Dados**
2. Crie todos os objetos personalizados de que necessita
3. Adicione campos personalizados a objetos padrão e personalizados
4. Configure as definições dos campos (único, obrigatório, opções de seleção, etc.)
<Warning>
**Os campos devem existir antes da importação.**
A importação de CSV cria registos, não campos. Crie todos os campos personalizados em Definições → Modelo de Dados antes de importar.
</Warning>
### Convide a sua equipa
<Warning>
**Convide os utilizadores ANTES de importar dados.**
Se os seus dados incluírem referências a utilizadores (Proprietário da conta, Responsável, etc.), esses utilizadores devem existir no Twenty antes da importação. Caso contrário, essas relações não podem ser mapeadas.
</Warning>
1. Vá para **Configurações → Membros**
2. Convide todos os membros da equipa
3. **Aguarde que todos aceitem** o convite
4. Verifique se todos os utilizadores aparecem na sua lista de Membros
## Passo 4: Exporte a partir do seu CRM atual
Exporte os seus dados do seu CRM atual:
1. Procure uma função **Exportar** (normalmente em Definições, Gestão de Dados ou Administração)
2. Exporte para o **formato CSV** sempre que possível
3. Exporte cada tipo de objeto separadamente (Empresas, Contactos, Negócios, etc.)
4. Inclua todos os campos que pretende migrar
**Exporte estes objetos (nesta ordem, para referência):**
1. Empresas / Contas / Organizações
2. Contactos / Pessoas
3. Negócios / Oportunidades
4. Notas e Atividades
5. Objetos personalizados
## Passo 5: Limpe e formate os seus dados
Abra cada CSV exportado numa aplicação de folha de cálculo e prepare-o para o Twenty.
### Remova duplicados
1. Ordene pelo campo único (e-mail para Pessoas, domínio para Empresas)
2. Remova ou una linhas duplicadas
3. Verifique se não existem já duplicados no Twenty
### Formate os campos corretamente
| Tipo de campo | Formato obrigatório |
| --------------------- | ------------------------------------------------------- |
| **Domínio** | `https://domain.com` |
| **Email** | `name@domain.com` (deve ser único) |
| **Data** | `YYYY-MM-DD` |
| **Telefone** | Três colunas: Número, Código do País, Código de Chamada |
| **Booleano** | `TRUE` ou `FALSE` (maiúsculas) |
| **Campos de seleção** | Use nomes de API, não os rótulos de apresentação |
<Warning>
**O formato do domínio é crítico.**
Use `https://domain.com` (não `domain.com` nem `www.domain.com`). Isto corresponde ao formato do Twenty e evita duplicados quando ligar a sincronização de e-mail/calendário.
</Warning>
Veja [Como preparar os seus ficheiros CSV](/l/pt/user-guide/data-migration/how-tos/prepare-your-csv-files) para requisitos completos de formatação para todos os tipos de campo.
### Adicione colunas de relação
Para ligar registos (por exemplo, Pessoas a Empresas), adicione uma coluna com o identificador único do registo pai.
**Exemplo: CSV de Pessoas com ligação à Empresa**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
Veja [Como importar relações](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para instruções detalhadas sobre como ligar registos.
### Atualize as referências a utilizadores
Se os seus dados incluírem atribuições de utilizador (Proprietário, Responsável):
1. Adicione uma coluna com o **e-mail do utilizador** (não apenas o ID dele do sistema antigo)
2. Use os mesmos endereços de e-mail que os utilizadores usaram para aderir ao seu espaço de trabalho no Twenty
Veja [Como preparar os seus ficheiros CSV](/l/pt/user-guide/data-migration/how-tos/prepare-your-csv-files) para o guia completo de formatação.
## Passo 6: Importe para o Twenty
<Warning>
**A ordem de importação é importante!**
Importe sempre por esta ordem:
1. **Empresas** primeiro (sem dependências)
2. **Pessoas** em segundo (ligadas a Empresas)
3. **Oportunidades** em terceiro (ligadas a Empresas/Pessoas)
4. **Notas e Tarefas** (ligadas a registos)
5. **Objetos personalizados** seguindo as suas dependências
O registo pai deve existir antes de o poder referenciar.
</Warning>
### Importe cada objeto
Para cada ficheiro CSV, por ordem:
1. Navegue até ao objeto no Twenty
2. Clique em **⋮ → Importar registos**
3. Carregue o ficheiro CSV
4. Mapeie as colunas para os campos:
* Mapeie as colunas de e-mail do utilizador para os campos de relação apropriados
* Mapeie as colunas de relação (como `companyDomain`) para campos de relação
5. Revise e corrija quaisquer erros na interface
6. Confirme a importação
7. Verifique alguns registos antes de avançar para o ficheiro seguinte
**Guias detalhados:**
* [Como importar empresas](/l/pt/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Como importar contactos](/l/pt/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Como importar relações](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Passo 7: Migrações de grande dimensão (50 000+ registos)
Para migrações de grande dimensão:
| Volume | Abordagem recomendada |
| ------------------------ | ------------------------------ |
| Menos de 10 000 registos | Uma única importação CSV |
| 10 000 - 50 000 registos | Divida em vários ficheiros CSV |
| Mais de 50 000 registos | Utilize a API |
**Para importações via API:**
* Mais rápido e fiável para conjuntos de dados grandes
* Suporta operações em lote (até 60 registos por chamada)
* Consulte [Como importar dados via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api)
## Passo 8: Configuração pós-migração
Após importar os dados, complete a configuração do seu espaço de trabalho:
### Recrie vistas
* Configure vistas guardadas com filtros, ordenações e configurações de colunas
* Crie quaisquer vistas kanban ou de calendário de que necessite
### Recriar Fluxos de Trabalho
* Recrie as suas automatizações em **Definições → Fluxos de trabalho**
* Comece pelos fluxos de trabalho mais críticos
* Teste cada um antes de confiar nele
### Configure funções e permissões
* Configure as funções em **Definições → Membros → Funções**
* Atribua os utilizadores às funções apropriadas
### Ligue o e-mail e o calendário
* Cada utilizador liga a sua própria conta em **Definições → Contas**
* O Twenty começará a sincronizar e-mails com os registos de contactos
* Consulte [E-mail e Calendário](/l/pt/user-guide/calendar-emails/overview)
### Forme a sua equipa
* Percorram juntos a nova interface
* Documente quaisquer processos específicos da equipa
## Problemas Comuns e Soluções
| Problema | Causa | Solução |
| ------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Erros de duplicados** | E-mail/domínio já existe | Remova os duplicados do ficheiro ou inclua um identificador único para atualizar os registos existentes |
| **Relação não encontrada** | O registo pai não existe | Importe primeiro os objetos pai (Empresas antes de Pessoas) |
| **Campos em falta** | O campo personalizado não existe | Crie o campo em Definições → Modelo de Dados antes de importar |
| **Erros em campos de seleção** | Utilização de rótulos de apresentação | Use nomes de API (ative o modo Avançado em Definições para os encontrar) |
| **Relação de utilizador vazia** | O utilizador não aceitou o convite | Garanta que todos os utilizadores aceitam os convites antes de importar |
Consulte [Como Corrigir Erros de Importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors) para passos detalhados de resolução de problemas.
## Lista de Verificação Pós-Migração
### Integridade dos dados
<Check>Todos os registos importados (compare contagens com o sistema de origem)</Check>
<Check>Relações a funcionar corretamente (Pessoas ligadas a Empresas)</Check>
<Check>Atribuições de utilizador mapeadas corretamente (Proprietário, Responsável)</Check>
<Check>Campos personalizados preenchidos</Check>
<Check>Sem duplicados inesperados</Check>
### Configuração
<Check>Vistas recriadas</Check>
<Check>Fluxos de trabalho recriados e testados</Check>
<Check>Funções e permissões configuradas</Check>
<Check>Sincronização de e-mail/calendário ligada</Check>
### Preparação da equipa
<Check>Equipa formada no novo sistema</Check>
<Check>Plano de acesso ao CRM antigo decidido (manter para referência? Quando desativar?)</Check>
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="Posso migrar fluxos de trabalho automaticamente?">
De momento, não. Os fluxos de trabalho devem ser recriados manualmente no Twenty.
</Accordion>
<Accordion title="E quanto aos anexos de ficheiros?">
Os anexos de ficheiros não estão incluídos nas exportações CSV. Terá de voltar a carregá-los manualmente, migrá-los via API ou contactar a nossa equipa para obter assistência.
</Accordion>
<Accordion title="Posso manter ambos os sistemas a funcionar durante a migração?">
Sim, recomendamos manter o seu CRM antigo a funcionar até verificar que a migração está concluída. Apenas tenha cuidado para não criar novos dados em ambos os locais.
</Accordion>
<Accordion title="Quanto tempo demora normalmente a migração?">
Depende do volume e da complexidade dos dados. Migrações pequenas (menos de 10 000 registos) podem ser feitas em poucas horas. Migrações grandes podem demorar vários dias, incluindo limpeza de dados e testes.
</Accordion>
</AccordionGroup>
## Precisa de ajuda?
<Tip>
Quer ajuda com a sua migração? [Encontre um Vinte Parceiro certificado](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) para mover seus dados, pipelines e usuários de ponta a ponta.
</Tip>

View File

@@ -0,0 +1,173 @@
---
title: Migração de Auto-Hospedagem para Nuvem
description: Guia passo a passo para migrar a sua instância Twenty auto-hospedada para a Twenty Cloud.
---
## Visão Geral
Este guia orienta-o na migração dos seus dados de uma instância Twenty auto-hospedada para a Twenty Cloud. O processo envolve configurar o seu espaço de trabalho na cloud, exportar os seus dados e voltar a importá-los.
<Note>Vistas, fluxos de trabalho e funções devem ser recriados manualmente após a migração. Reserve tempo para este trabalho de configuração.</Note>
## Passo 1: Crie o seu espaço de trabalho na Cloud
1. Aceda a [app.twenty.com](https://app.twenty.com) e crie um novo espaço de trabalho
2. Conclua o assistente de configuração inicial
3. Anote o URL do seu novo espaço de trabalho
## Passo 2: Recrie o seu Modelo de Dados
Antes de importar os dados, recrie os seus objetos e campos personalizados:
1. Aceda a **Configurações → Modelo de Dados** na sua instância na cloud
2. Crie objetos personalizados que correspondam à sua configuração auto-hospedada
3. Adicione campos personalizados a objetos padrão e personalizados
4. Configure as definições dos campos (único, obrigatório, etc.)
<Note>Tire capturas de ecrã do seu modelo de dados auto-hospedado para referência ou mantenha ambas as instâncias abertas lado a lado.</Note>
## Passo 3: Convide todos os utilizadores
<Warning>
**Crítico: Convide os utilizadores ANTES de importar dados.**
Os utilizadores devem aceitar os convites antes de importar quaisquer registos que os referenciem (como campos Account Owner). Se os utilizadores ainda não existirem, essas relações não poderão ser mapeadas.
</Warning>
1. Aceda a **Configurações → Membros** na sua instância na cloud
2. Convide todos os membros da equipa que tinham contas na instância auto-hospedada
3. **Aguarde que todos aceitem** o convite
4. Verifique se todos os utilizadores aparecem na sua lista de Membros
## Passo 4: Exportar dados da instância auto-hospedada
Exporte cada objeto da sua instância auto-hospedada:
1. Aceda a cada objeto (Empresas, Pessoas, Oportunidades, etc.)
2. Configure a vista para mostrar **todas as colunas** que pretende migrar
3. Clique em **⋮ → Export view**
4. Guarde cada ficheiro CSV com um nome claro (por exemplo, `companies-export.csv`)
**Exporte nesta ordem** (para referência durante a importação):
1. Empresas
2. Pessoas
3. Oportunidades
4. Objetos personalizados (seguindo as suas dependências)
5. Tarefas, Notas
## Passo 5: Atualizar referências de Membros do espaço de trabalho
Os CSV exportados contêm IDs de utilizador da sua instância auto-hospedada. Esses IDs não corresponderão à sua instância na cloud, por isso precisa de os substituir por endereços de e-mail.
**Para cada ficheiro CSV com referências a utilizadores (Owner, Assignee, etc.):**
1. Abra o CSV numa aplicação de folha de cálculo
2. Adicione uma nova coluna ao lado de cada coluna de ID de utilizador (por exemplo, `accountOwnerEmail` ao lado de `accountOwnerId`)
3. Preencha o **endereço de e-mail** de cada utilizador
4. Pode apagar a coluna de ID antiga ou deixá-la (será ignorada durante a importação)
**Exemplo:**
Antes:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
Depois:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>Use os mesmos endereços de e-mail que os utilizadores usaram para aceitar o convite do espaço de trabalho na cloud.</Note>
## Passo 6: Planeie a ordem de importação
Importe os ficheiros na ordem correta para manter as relações:
1. **Empresas** primeiro (sem dependências)
2. **Pessoas** em segundo (ligadas a Empresas)
3. **Oportunidades** em terceiro (ligadas a Empresas e Pessoas)
4. **Objetos personalizados** (seguindo as suas dependências)
5. **Tarefas e Notas** por último (ligadas a outros registos)
Veja [Como importar relações](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para detalhes sobre a manutenção das relações.
## Passo 7: Importar para a Cloud
Para cada ficheiro CSV, por ordem:
1. Aceda ao objeto na sua instância na cloud
2. Clique em **⋮ → Import records**
3. Carregue o ficheiro CSV
4. Mapeie as colunas para os campos:
* Mapeie as colunas de e-mail do utilizador para os campos de relação apropriados
* Mapeie as outras colunas como de costume
5. Revise e corrija quaisquer erros
6. Confirme a importação
7. Verifique alguns registos antes de avançar para o ficheiro seguinte
## Passo 8: Recriar a configuração
Depois de importar os dados, recrie manualmente:
### Visualizações
* Recrie vistas guardadas com filtros, ordenações e configurações de colunas
* Configure quaisquer vistas kanban ou de calendário
### Fluxos de trabalho
* Recrie automatizações em **Configurações → Fluxos de trabalho**
* Teste cada fluxo de trabalho antes de confiar nele
### Funções e Permissões
* Configure as funções em **Definições → Membros → Funções**
* Atribua os utilizadores às funções apropriadas
### Integrações
* Volte a ligar a sincronização de e-mail e calendário para cada utilizador
* Reconfigure quaisquer integrações de API com novas chaves de API
## Lista de Verificação Pós-Migração
<Check>Todos os dados importados com sucesso</Check>
<Check>Relações entre objetos a funcionar corretamente</Check>
<Check>Atribuições de utilizadores (Owner, Assignee) mapeadas corretamente</Check>
<Check>Vistas recriadas</Check>
<Check>Fluxos de trabalho recriados e testados</Check>
<Check>Funções e permissões configuradas</Check>
<Check>Sincronização de e-mail/calendário restabelecida</Check>
<Check>Integrações de API atualizadas com novas chaves</Check>
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="Posso migrar fluxos de trabalho automaticamente?">
De momento, não. Os fluxos de trabalho devem ser recriados manualmente na sua instância na cloud.
</Accordion>
<Accordion title="E quanto a anexos de ficheiros e imagens?">
Os anexos de ficheiros não estão incluídos nas exportações CSV. Terá de voltar a carregar quaisquer anexos manualmente, migrá-los via API ou contactar a nossa equipa para obter assistência em migrações de grande dimensão.
</Accordion>
<Accordion title="Posso manter ambas as instâncias a funcionar durante a migração?">
Sim, recomendamos manter a sua instância auto-hospedada em funcionamento até verificar que a migração para a cloud está concluída. Apenas tenha cuidado para não criar novos dados em ambos os locais.
</Accordion>
<Accordion title="E se um utilizador ainda não tiver aceite o convite?">
Os registos que referenciam esse utilizador não serão importados ou a relação ficará vazia. Garanta que todos os utilizadores aceitam os convites antes de importar os dados.
</Accordion>
</AccordionGroup>
## Precisa de ajuda?
<Tip>
Migrando um espaço de trabalho grande ou complexo? [Encontre um parceiro Twenty certificado](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud) para cuidar da migração de ponta a ponta. *(Ou envolva a nossa equipe: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: Prepare seus arquivos CSV
description: Guia completo passo a passo para formatar seus dados para importação no Twenty.
---
## Visão Geral
Este guia orienta você na preparação do seu arquivo CSV para uma importação bem-sucedida. Siga estas etapas para evitar erros.
## Etapa 1: Verifique os requisitos do arquivo
Antes de começar, verifique se o seu arquivo atende a estes requisitos:
| Requisito | Detalhes |
| --------------------- | ----------------------------- |
| **Formato** | CSV, XLSX ou XLS |
| **Limite de tamanho** | 10.000 registros por arquivo |
| **Codificação** | UTF-8 recomendado |
| **Estrutura** | Um tipo de objeto por arquivo |
<Note>Para conjuntos de dados maiores que 10.000 registros, divida em vários arquivos ou use a [importação via API](/l/pt/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Etapa 2: Baixe o arquivo de exemplo
**Esta é a etapa mais importante.** O arquivo de exemplo mostra os nomes exatos das colunas e o formato que o Twenty espera.
1. Navegue até qualquer objeto (Pessoas, Empresas, etc.)
2. Clique em **⋮** → **Importar registros**
3. Clique em **Baixar arquivo de exemplo**
4. Use este arquivo como seu modelo
<Note>**Dica de especialista:** Em vez disso, exporte alguns registros existentes. Isso fornece exemplos reais de como os dados devem ser formatados, e os nomes das colunas serão mapeados automaticamente durante a importação.</Note>
## Etapa 3: Remova valores duplicados
O Twenty impõe unicidade em determinados campos. Duplicados causarão erros de importação.
| Objeto | Campos exclusivos |
| -------------------------- | ------------------------------------------------------------------ |
| **Pessoas** | `id`, `email` |
| **Empresas** | `id`, `domain` |
| **Objetos personalizados** | `id`, além de qualquer campo que você tenha marcado como exclusivo |
**Antes de importar:**
1. Ordene sua planilha pelo campo exclusivo (email ou domínio)
2. Remova ou mescle linhas duplicadas
3. Verifique se há duplicados que já existem no Twenty
<Warning>**Registros excluídos logicamente contam para a unicidade.** Registros em Menu de Comando → Ver registros excluídos causarão erros de duplicação. Exclua-os permanentemente ou restaure e atualize-os.</Warning>
## Etapa 4: Formate corretamente cada tipo de campo
Tipos de campo diferentes exigem formatos específicos. Aqui está a referência completa:
### Campos de texto
* Nenhuma formatação especial é necessária
* Espaços no início/fim são automaticamente removidos
### Campos de email
* Deve estar em um formato de email válido: `name@domain.com`
* Deve ser exclusivo (sem duplicados no arquivo ou no Twenty)
* Para emails adicionais, use este formato na coluna **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Campos de domínio
* **Formato recomendado**: `https://domain.com`
* Isso corresponde ao formato usado pela sincronização de caixa de correio/calendário (evita duplicados)
* Preencha ambas as colunas:
* **Domain / Domain Label**: `domain.com`
* **Domain / Domain URL**: `https://domain.com`
* Deve ser exclusivo dentro do seu arquivo e no Twenty
### Campos de telefone
Telefone é um **campo aninhado** que requer várias colunas:
| Coluna | Exemplo |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Campos de Endereço
Endereço é um **campo aninhado** com várias colunas (algumas podem ficar em branco):
* **Endereço / Endereço 1**: Linha 1 do endereço
* **Endereço / Endereço 2**: Linha 2 do endereço (opcional)
* **Endereço / Cidade**: Nome da cidade
* **Endereço / Estado**: Estado ou província
* **Endereço / País**: Nome do país
* **Endereço / Código Postal**: Código Postal/CEP
### Campos de Data
Use formatação consistente em todo o seu arquivo:
* `YYYY-MM-DD` (recomendado): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### Campos Numéricos
* Apenas números (sem texto)
* Use ponto para decimais: `1234.56`
* Sem separadores de milhares (não `1,234.56`)
### Campos de Moeda
Moeda é um **campo aninhado** que requer duas colunas que **ambas devem ser preenchidas**:
| Coluna | Exemplo |
| ----------------- | --------- |
| **Valor / Valor** | `1234.56` |
| **Valor / Moeda** | `USD` |
### Campos Booleanos
Use maiúsculas: `TRUE` ou `FALSE`
<Warning>`true` ou `false` em minúsculas não funcionam.</Warning>
### Campos de Seleção
Use o **nome da API** da opção, não o rótulo de exibição.
**Como encontrar nomes da API:**
1. Vá para **Configurações → Modelo de Dados**
2. Selecione o objeto e o campo
3. Ative o **Modo Avançado** (alternador no canto inferior direito)
4. Copie o nome da API (por exemplo, `OPTION_1`, não "Option 1")
<Note>Novas opções de seleção não são criadas automaticamente. Adicione-as em **Configurações → Modelo de Dados** antes de importar.</Note>
### Campos de Seleção Múltipla
Use os nomes da API no formato de array:
```
["VALUE1","VALUE2"]
```
### Campos de Array
Use o formato de array JSON:
```
["value1","value2"]
```
### Campos de Classificação
Use o formato: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` ou `RATING_5`
### Campos de Links/URL
Preencha ambas as colunas:
* **Links / Rótulo do Link**: `Twenty`
* **Links / URL do Link**: `https://twenty.com`
Para links secundários, use a coluna **Links / Links Secundários**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Campos JSON
Use um formato JSON válido:
```
{"key":"value","key2":"value2"}
```
### Campos de ID
* **Opcional**: a Twenty gera IDs automaticamente se não forem fornecidos
* **Formato**: UUID (por exemplo, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Caso de uso**: Inclua o ID para atualizar registros existentes em vez de criar novos
## Etapa 5: Adicione Colunas de Relação (se estiver vinculando registros)
Para vincular registros a outros objetos (por exemplo, Pessoas a Empresas), adicione uma coluna com o identificador exclusivo do registro relacionado.
**Exemplo**: Vinculando Pessoas a Empresas
Adicione uma coluna ao seu CSV de Pessoas:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Regras importantes para relações:**
* O registro pai já deve existir na Twenty
* Use o formato **URL de domínio** (`https://domain.com`), não o rótulo
* Mapeie apenas UM identificador exclusivo (não inclua `companyId` E `companyDomain`)
* Para Membros do Workspace, use o **email** deles (não o nome)
<Warning>
**A ordem de importação é importante!**
Importe o lado "um" antes do lado "muitos":
1. **Empresas** primeiro
2. **Pessoas** em segundo (com referência à empresa)
3. **Oportunidades** em terceiro
O registro pai deve existir antes de você poder referenciá-lo.
</Warning>
Veja [Como importar relações](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para instruções detalhadas.
## Etapa 6: Garanta que os campos existam na Twenty
A importação cria registros, não campos. Todos os campos que você deseja importar já devem existir no seu modelo de dados.
**Antes de importar:**
1. Vá para **Configurações → Modelo de Dados**
2. Selecione o seu objeto
3. Crie todos os campos personalizados necessários
4. Anote os nomes exatos dos campos (eles devem corresponder aos cabeçalhos das suas colunas)
## Etapa 7: Lista de Verificação Final
Antes de enviar seu arquivo, verifique:
<Check>O arquivo está no formato CSV, XLSX ou XLS</Check>
<Check>O arquivo tem menos de 10.000 registros</Check>
<Check>A codificação é UTF-8</Check>
<Check>Sem emails duplicados (para Pessoas) ou domínios (para Empresas)</Check>
<Check>As datas usam formato consistente em todo o arquivo</Check>
<Check>Os domínios usam o formato `https://domain.com`</Check>
<Check>Os campos booleanos usam `TRUE` ou `FALSE` (maiúsculas)</Check>
<Check>Os campos de Seleção usam nomes da API, não rótulos de exibição</Check>
<Check>Todos os campos personalizados existem em Configurações → Modelo de Dados</Check>
<Check>Registros pai importados antes dos registros filho</Check>
<Check>As colunas de relação referenciam registros existentes</Check>
## Erros Comuns a Evitar
| Erro | Solução |
| ----------------------------------------------- | ----------------------------------------------- |
| Usar `true` em vez de `TRUE` | Valores booleanos devem estar em maiúsculas |
| Usar rótulos de exibição para campos de Seleção | Encontre e use os nomes da API em Configurações |
| Importar Pessoas antes de Empresas | Sempre importe os objetos pai primeiro |
| Falta o código de moeda nos campos de Moeda | Preencha as colunas Valor e Moeda |
| Formato de domínio incorreto | Use `https://domain.com` de forma consistente |
| Mapeando vários campos exclusivos para relações | Mapeie apenas UM (domínio OU ID, não ambos) |
## Próximos Passos
Seu arquivo está pronto! Agora:
* [Importar Empresas](/l/pt/user-guide/data-migration/how-tos/import-companies-via-csv) (importe-as primeiro)
* [Importar Contatos](/l/pt/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Corrigir quaisquer erros de importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
title: Atualizar Registos Existentes via Importação
description: Guia completo passo a passo para atualizar em massa registos através da importação de CSV.
---
## Visão Geral
Precisa de atualizar muitos registos de uma só vez? Em vez de os editar um a um, utilize a importação CSV para atualizar em massa os registos existentes.
**Casos de uso:**
* Atualizar cargos para várias pessoas
* Alterar informações da empresa em massa
* Adicionar dados a novos campos personalizados
* Corrigir erros de dados em muitos registos
## Como Funciona
Quando importar um ficheiro que contenha um **identificador único** que corresponde a um registo existente, a Twenty atualiza esse registo em vez de criar um duplicado.
| Se o identificador único... | A Twenty irá... |
| ---------------------------------- | --------------------------------------------------------- |
| Corresponde a um registo existente | **Atualizar** o registo existente |
| Não corresponde a nenhum registo | **Criar** um novo registo |
| Está em falta no ficheiro | **Criar** um novo registo (com ID gerado automaticamente) |
<Warning>
**Os campos de seleção múltipla são substituídos, não combinados.**
Se um registo tiver `Option A` e `Option B` selecionadas, e importar `["Option C"]`, o registo terá apenas `Option C` após a importação. A importação substitui todas as seleções anteriores — não as adiciona.
Para manter os valores existentes, inclua-os todos na sua importação: `["Option A","Option B","Option C"]`
</Warning>
## Passo 1: Exportar os Seus Dados Atuais
Primeiro, exporte os registos que pretende atualizar:
1. Navegue até ao objeto (Pessoas, Empresas, etc.)
2. **Adicione as colunas de que precisa** — clique em **Options → Fields** para mostrar os campos que quer atualizar
3. **Filtre se necessário** — restrinja apenas aos registos que pretende atualizar
4. Clique em **⋮** → **Export view**
5. Guarde o ficheiro CSV
<Note>**Porquê exportar primeiro?** O ficheiro exportado tem o formato correto, inclui identificadores únicos e é mapeado automaticamente durante a importação.</Note>
### O Que É Exportado
* Todas as colunas visíveis na sua vista atual
* Os identificadores únicos do registo (`id`, `email`, `domain`)
* Valores atuais de campos que pode modificar
## Passo 2: Editar o Ficheiro CSV
Abra o ficheiro exportado na sua aplicação de folha de cálculo (Excel, Google Sheets, etc.):
1. **Mantenha a coluna do identificador único** — não elimine `id`, `email` ou `domain`
2. **Atualize os valores** nas colunas que quer alterar
3. **Remova as colunas que não precisa de atualizar** (opcional, mas mais limpo)
4. **Não altere os valores do identificador único** — caso contrário a Twenty criará novos registos
### Exemplo: Atualizar Cargos
**Ficheiro 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
```
**Após as suas alterações:**
```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>
**Não altere os valores do identificador único.**
Se alterar `john@acme.com` para `john.smith@acme.com`, a Twenty criará um novo registo em vez de atualizar o existente.
</Warning>
## Passo 3: Importar o Ficheiro Atualizado
1. Navegue até ao objeto
2. Clique em **⋮** → **Import records**
3. Carregue o seu ficheiro CSV editado
4. **Garanta que o identificador único está mapeado** — verifique se `email`, `domain` ou `id` está mapeado corretamente
5. Revise o mapeamento dos campos
6. Verifique se há erros
7. Clique em **Confirm**
A Twenty faz a correspondência dos registos pelo identificador único e atualiza-os com novos valores.
## Escolher o Identificador Único Correto
| Objeto | Recomendado | Alternativa | Notas |
| -------------------------- | -------------------- | ----------- | ----------------------------------- |
| **Pessoas** | `email` | `id` | O email é legível por humanos |
| **Empresas** | `domínio` | `id` | O domínio é legível por humanos |
| **Objetos personalizados** | Qualquer campo único | `id` | Use o seu campo único personalizado |
<Note>**Utilize apenas UM identificador único.** Não mapeie `email` E `id`. Isto pode causar confusão e erros.</Note>
### Utilizar Campos Únicos Personalizados
Se tiver um campo personalizado marcado como único (como um ID externo de outro sistema):
1. Inclua esse campo na exportação e importação
2. Mapeie-o durante a importação
3. A Twenty fará a correspondência com base nesse campo
## Passo 4: Verificar as Atualizações
Após a importação:
1. Abra alguns registos atualizados
2. Verifique se as alterações foram aplicadas
3. Confirme que não foram criados registos duplicados
## E os Campos que Não Estão no seu Ficheiro?
**Os campos não incluídos no seu ficheiro de importação permanecem inalterados.**
| O seu ficheiro inclui... | Resultado |
| ---------------------------- | ------------------------------------------------------------------ |
| `email`, `jobTitle` | Apenas `jobTitle` é atualizado; os outros campos permanecem iguais |
| `email`, `jobTitle`, `phone` | `jobTitle` e `phone` são atualizados |
Isto significa que só precisa de incluir os campos que pretende alterar (além do identificador único).
## Combinar Atualizações e Novos Registos
Pode atualizar registos existentes e criar novos na mesma importação:
```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)
```
## Erros Comuns a Evitar
| Erro | Problema | Resultado | Solução |
| ---------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------------- |
| **Alterar o identificador único** | Alterado de `john@acme.com` para `john.smith@acme.com` | Cria um novo registo em vez de atualizar | Mantenha os identificadores únicos inalterados |
| **Vários campos únicos** | Mapear `email` E `id` | Potenciais conflitos de correspondência | Mapeie apenas UM identificador único |
| **Sem identificador único** | O ficheiro tem apenas `firstName`, `lastName`, `jobTitle` | Todas as linhas criam novos registos | Inclua sempre `email`, `domain` ou `id` |
| **Incompatibilidade de maiúsculas/minúsculas** | O ficheiro tem `John@acme.com`, mas a Twenty tem `john@acme.com` | Cria novo registo | Exporte da Twenty para obter os valores exatos |
## Perguntas Frequentes
<AccordionGroup>
<Accordion title="E se alguns registos ainda não existirem?">
Registos com identificadores únicos que não correspondam a registos existentes serão criados como novos registos. Isto permite-lhe atualizar e criar na mesma importação.
</Accordion>
<Accordion title="Posso limpar/esvaziar o valor de um campo?">
Sim, deixe a célula vazia no seu CSV. A importação irá limpar o valor desse campo no registo existente.
</Accordion>
<Accordion title="O que acontece aos campos que não incluo na importação?">
Os campos que não estão no ficheiro de importação permanecem inalterados nos registos existentes. Apenas os campos que incluir são atualizados.
</Accordion>
<Accordion title="Posso atualizar campos de relação (como Empresa)?">
Sim! Inclua o identificador único da relação (por exemplo, `companyDomain`) e faça o mapeamento para o campo de relação. A relação será atualizada.
</Accordion>
<Accordion title="Como sei quais os registos que serão atualizados vs. criados?">
Durante a etapa de revisão da importação, a Twenty mostra quantos registos serão atualizados vs. criados com base nas correspondências do identificador único.
</Accordion>
<Accordion title="Posso desfazer uma atualização em massa?">
Não existe desfazer automático. Recomendamos exportar os seus dados como cópia de segurança antes de fazer atualizações em massa.
</Accordion>
</AccordionGroup>
## Melhores Práticas
1. **Exporte primeiro** — comece sempre a partir de uma exportação para garantir o formato correto
2. **Faça uma cópia de segurança antes de atualizar** — exporte os seus dados antes de fazer alterações em massa
3. **Teste com alguns registos** — tente atualizar primeiro 5–10 registos antes de fazer um lote grande
4. **Utilize identificadores legíveis por humanos** — `email` e `domain` são mais fáceis de verificar do que `id`
5. **Inclua apenas as colunas necessárias** — menos colunas significa menor probabilidade de erros
## Resolução de Problemas
Está a ter problemas? Consulte:
* [Como Corrigir Erros de Importação](/l/pt/user-guide/data-migration/how-tos/fix-import-errors)
* [Restrições de Unicidade](/l/pt/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referência de Mapeamento de Campos](/l/pt/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,83 @@
---
title: Migração de dados
description: Importe e exporte os seus dados de CRM através de ficheiros CSV ou da API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Métodos de importação
A Twenty suporta dois métodos principais para importar dados:
| Método | Melhor para | Limite de volume |
| ---------------------- | ----------------------------------------- | ---------------------------- |
| **Importação de CSV** | Migrações padrão, atualizações regulares | 10 000 registos por ficheiro |
| **Importação via API** | Migrações em grande escala, automatização | Sem limite |
<Note>Para conjuntos de dados muito grandes (centenas de milhares de registos), utilize a API. Os nossos [parceiros de implementação](/l/pt/user-guide/getting-started/capabilities/implementation-services) podem ajudar a executar estes scripts, se necessário.</Note>
## Noções básicas da importação de CSV
Pode importar dados para qualquer objeto utilizando ficheiros CSV, XLSX ou XLS. Cada ficheiro deve conter **apenas um tipo de objeto** (por exemplo, apenas registos de Pessoas).
<Note>**Os campos têm de existir antes da importação.** Carregar um CSV cria registos, mas não cria campos. Se precisar de campos personalizados, crie-os primeiro em **Definições → Modelo de dados**.</Note>
### Passos
1. Navegue até ao objeto onde pretende importar dados
2. Clique no ícone **⋮** no canto superior direito (este é o Menu de Comandos) e clique em **Importar registos**
3. Descarregue o ficheiro de modelo para garantir que os seus dados estão no formato esperado
4. Carregue o seu ficheiro CSV formatado
5. Mapeie as suas colunas para os campos da Twenty
6. Revise os erros (realçados a amarelo) e corrija-os, editando diretamente na interface
7. Confirme a importação
### Importar Relações Entre Objetos
Você pode importar relações entre objetos usando a função de importação CSV. Tem de referenciar o objeto relacionado utilizando um campo único desse objeto: o `id`, o `email` para Pessoas e Membros do espaço de trabalho, o `domain` para empresas, ou qualquer outro campo definido como único no modelo de dados para qualquer outro objeto.
<Note>**Os registos eliminados contam para a unicidade.** Os registos eliminados logicamente (visíveis no Menu de Comandos → Ver registos eliminados) são incluídos nas verificações de unicidade. Se importar um registo com o mesmo valor único que um registo eliminado, o registo eliminado será restaurado.</Note>
<Warning>
**A ordem de importação é importante!**
Ao importar objetos relacionados, carregue os ficheiros por esta ordem:
1. **Empresas** primeiro (o lado "um" das relações)
2. **Pessoas** em segundo (ligadas a Empresas via companyId)
3. **Oportunidades** em terceiro (ligadas a Empresas/Pessoas)
4. **Objetos personalizados** com relações por último
Porquê? O lado "um" de uma relação um-para-muitos tem de existir antes de o poder referenciar. Por exemplo, o registo da Empresa tem de existir antes de importar uma Pessoa com o ID dessa empresa.
</Warning>
Consulte [este artigo](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) para um guia passo a passo sobre como proceder.
## Exportar Dados
Exporte os dados do seu espaço de trabalho para cópias de segurança, relatórios ou migração.
### Passos
1. Navegue até ao objeto que pretende exportar
2. Configure a visualização com as colunas de que necessita
3. Clique em **⋮** → **Exportar visualização**
4. Guarde o ficheiro CSV
<Note>**Apenas as colunas visíveis são exportadas.** O ficheiro CSV conterá apenas as colunas apresentadas na sua visualização atual. Adicione ou oculte colunas antes de exportar para controlar que dados são incluídos.</Note>
<Note>**Limites de exportação**: Até 20 000 registos por exportação.</Note>
## Permissões
A importação e a exportação de dados requerem permissões específicas:
* **Importar**: Requer a permissão "Import CSV"
* **Exportar**: Requer a permissão "Export CSV"
Contacte o administrador do seu espaço de trabalho se não tiver estas permissões.
## Próximos Passos
* [Prepare os seus ficheiros CSV](/l/pt/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Importar relações entre objetos](/l/pt/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Importar via API para conjuntos de dados de grande dimensão](/l/pt/user-guide/data-migration/how-tos/import-data-via-api)