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 3s

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,61 @@
---
title: Crie uma visualização de calendário para tarefas com vencimento
description: Visualize suas tarefas e prazos em um calendário.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Pré-requisitos
Seu objeto Tasks precisa de um campo **Data de vencimento** (tipo Data ou Data e hora).
## Etapas
1. Navegue até **Tasks**
2. Clique no menu suspenso de visualizações → **+ Adicionar visualização**
3. Nomeie sua visualização (por exemplo, "Calendário de tarefas")
4. Clique em **Criar**
5. Clique em **Opções** e selecione **Calendário** como o layout
6. Escolha **Data de vencimento** como o campo de data
7. Clique em **Salvar**
## Configure seu calendário
### Exiba campos nos eventos
1. Clique em **Opções → Campos**
2. Clique no **ícone de olho** para mostrar/ocultar campos
3. Arraste para reordenar
Campos recomendados para exibir:
* **Título** — nome da tarefa
* **Responsável** — quem é o responsável
* **Status** — progresso atual
### Filtre seu calendário
Crie visualizações focadas:
* **Minhas Tarefas**: Filtrar por Responsável = Eu
* **Esta semana**: Filtrar por Data de Vencimento = Esta semana
* **Em atraso**: Filtrar por Data de Vencimento < Hoje, Estado ≠ Concluído
## Outros casos de uso do calendário
| Objeto | Campo de Data | Finalidade |
| ---------------------- | -------------- | ------------------------------------ |
| Oportunidades | Data de Fecho | Acompanhar fechos esperados |
| Eventos personalizados | Data do Evento | Planear atividades |
| Projetos | Prazo | Monitorizar cronogramas dos projetos |
## Dicas
* **Reveja semanalmente**: Comece cada semana por verificar a sua visualização de calendário
* **Combine com a visualização de tabela**: Utilize o calendário para a visão geral e a tabela para os detalhes
* **Defina a visibilidade**: Mantenha os calendários de tarefas pessoais como Não listados
## Relacionados
* [Visualização de Calendário](/l/pt/user-guide/views-pipelines/capabilities/calendar-view) — todos os recursos do calendário
* [Filtros e ordenação](/l/pt/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtre o seu calendário

View File

@@ -0,0 +1,80 @@
---
title: Crie uma visualização Kanban para projetos
description: Acompanhe projetos por etapas usando um quadro visual.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Use uma visualização Kanban para visualizar os seus projetos (ou qualquer objeto com etapas) como cartões que se movem pelas colunas.
<VimeoEmbed videoId="927888627" title="Demonstração em vídeo" />
## Pré-requisitos
O seu objeto precisa de um **campo Select** para usar como colunas (por exemplo, Estado, Etapa, Fase).
Se não tiver um:
1. Vá a **Definições → Modelo de Dados**
2. Selecione o seu objeto
3. Adicione um campo Select com as suas opções de etapas
## Etapas
1. Aceda ao seu objeto (por exemplo, Projetos, Tarefas)
2. Clique no menu suspenso de visualizações → **+ Adicionar visualização**
3. Nomeie a sua visualização (por exemplo, "Quadro de projetos")
4. Clique em **Criar**
5. Clique em **Opções** e selecione **Kanban** como o layout
6. A visualização usa automaticamente o seu campo Select para as colunas
7. Clique em **Salvar**
## Configure o seu quadro
### Mostrar campos principais nos cartões
1. Clique em **Opções → Campos**
2. Procure campos na secção "Campos Ocultos"
3. Clique no **ícone de olho** para os mostrar nos cartões
4. Arraste para reordenar
<img src="/images/user-guide/kanban-views/filter.png" style={{width:'100%'}} />
### Ativar visualização compacta
Para uma visão geral de alto nível:
1. Clique em **Opções**
2. Ative a opção **Visualização compacta**
Os cartões mostram apenas o nome do registo.
<img src="/images/user-guide/kanban-views/compact-view.png" style={{width:'100%'}} />
### Adicionar agregações
Mostre contagens ou totais no topo de cada coluna:
1. Clique no número ao lado do nome de uma coluna
2. Selecione uma agregação (Contagem, Soma, etc.)
3. Escolha um campo, se necessário
## Mover cartões
Arraste e solte os cartões entre colunas para atualizar o seu estado.
<VimeoEmbed videoId="927888627" title="Demonstração em vídeo" />
## Exemplo: Quadro de tarefas
| Coluna (Estado) | Cartões |
| ---------------- | -------------------- |
| **A Fazer** | Novas tarefas |
| **Em andamento** | Trabalho ativo |
| **Revisão** | A aguardar aprovação |
| **Concluído** | Concluído |
## Relacionados
* [Visualizações Kanban](/l/pt/user-guide/views-pipelines/capabilities/kanban-views) — agregações, visualização compacta, etapas
* [Como configurar um pipeline de vendas](/l/pt/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline) — Kanban para oportunidades

View File

@@ -0,0 +1,51 @@
---
title: Criar uma visualização de tabela com agrupamento
description: Organize seus registros em grupos recolhíveis com base no valor do campo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Agrupe sua visualização de tabela por um campo de seleção para organizar registros em seções recolhíveis.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Etapas
1. Navegue até o objeto (Pessoas, Empresas, etc.)
2. Clique no menu suspenso de visualizações → **+ Adicionar visualização**
3. Nomeie sua visualização (por exemplo, "Empresas por tipo")
4. Clique em **Criar**
5. Clique em **Opções → Agrupar**
6. Escolha um campo de seleção para agrupar
7. Clique em **Salvar**
## Configurar ordem dos grupos
Em **Opções → Agrupar → Ordenação**, escolha como os grupos são ordenados:
| Opção | Descrição |
| ---------------------- | ----------------------------------------------------- |
| **Alfabética** | De A a Z |
| **Alfabética inversa** | De Z a A |
| **Ordem manual** | Arraste os grupos para reordenar em "Grupos visíveis" |
Clique no **ícone de olho** ao lado de um grupo para ocultá-lo da visualização.
<Note>
**Para melhor desempenho, limite a 10-15 grupos visíveis.** Se precisar de mais, considere usar um Painel.
</Note>
## Exemplo: Empresas por indústria
1. Vá para **Empresas**
2. Crie uma nova visualização chamada "Por indústria"
3. Clique em **Opções → Agrupar**
4. Selecione o campo **Indústria**
5. Salvar
Agora suas empresas estão organizadas por indústria, facilitando focar em um segmento por vez.
## Relacionados
* [Visualizações de Tabela](/l/pt/user-guide/views-pipelines/capabilities/table-views) — todos os recursos da visualização de tabela
* [Filtros e ordenação](/l/pt/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine o agrupamento com filtros

View File

@@ -0,0 +1,32 @@
---
title: Restrinja o acesso à sua visualização
description: Controle quem pode ver suas visualizações personalizadas.
---
Cada visualização (exceto as visualizações padrão "Todos(as) [Nome do objeto]") tem sua própria configuração de visibilidade.
## Etapas
1. Abra a visualização que deseja restringir
2. Clique em **Opções** no canto superior direito
3. Clique em **Visibilidade**
4. Selecione **Não listado**
Sua visualização agora está visível apenas para você.
## Opções de visibilidade
| Configuração | Quem pode ver |
| ---------------------- | -------------------------------------- |
| **Espaço de trabalho** | Todos os membros do espaço de trabalho |
| **Não listado** | Apenas você |
## Notas
* As visualizações padrão "Todos(as) [Nome do objeto]" não podem ser definidas como não listadas
* Visualizações não listadas não aparecem nos menus suspensos de visualização de outros usuários
* Você pode alterar a visibilidade de volta para Espaço de trabalho a qualquer momento
## Relacionados
* [Configurações de visualização](/l/pt/user-guide/views-pipelines/capabilities/view-settings) — todas as opções de configuração de visualização

View File

@@ -0,0 +1,120 @@
---
title: Configurar um Pipeline de Vendas
description: Configure seu pipeline de vendas para acompanhar as oportunidades ao longo das etapas.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Um pipeline de vendas no Twenty é uma visualização Kanban do seu objeto Oportunidades, em que cada coluna representa uma etapa do seu processo de vendas.
## Etapa 1: Configure Suas Etapas
As etapas são definidas no campo **Stage** do objeto Oportunidades.
1. Vá para **Configurações → Modelo de Dados**
2. Selecione **Oportunidades**
3. Encontre e clique no campo **Stage**
4. Adicione, remova ou renomeie etapas para corresponder ao seu processo
<VimeoEmbed videoId="927890428" title="Demonstração em vídeo" />
### Etapas Recomendadas
| Etapa | Finalidade |
| --------------------- | --------------------------------- |
| **Novo** | Oportunidades recém-identificadas |
| **Qualificado** | Confirmado como boa adequação |
| **Reunião** | Em discussões |
| **Proposta** | Proposta enviada |
| **Negociação** | Trabalhando nos termos |
| **Fechado - Ganho** | Negócio bem-sucedido |
| **Fechado - Perdido** | Negócio mal-sucedido |
<Note>
**5-7 etapas são ideais.** Muitas etapas tornam o gasoduto difícil de escanear; muito pouca visibilidade é perdida no progresso do negócio.
</Note>
## Etapa 2: Crie uma Visualização de Pipeline
1. Vá para **Oportunidades**
2. Clique no menu suspenso de visualizações → **+ Adicionar visualização**
3. Dê o nome de "Pipeline de Vendas"
4. Clique em **Criar**
5. Abra **Opções** e selecione **Kanban** como o layout
A visualização usa automaticamente o campo Stage para as colunas.
## Etapa 3: Configure Sua Visualização
### Mostrar Campos Principais
1. Clique em **Opções → Campos**
2. Procure campos na seção "Campos Ocultos"
3. Clique no **ícone de olho** para exibir: Empresa, Valor, Data de Fechamento, Responsável
### Ativar Agregações
Mostrar totais no topo de cada coluna:
1. Clique no número exibido ao lado do nome da etapa no topo de uma coluna
2. Selecione o tipo de agregação (Contagem, Soma, Média, etc.)
3. Escolha o campo a agregar (por exemplo, Valor)
**Exemplo:** Mostre o valor total dos negócios por etapa agregando o campo Valor com Soma.
### Use a visão compacta (opcional)
Para uma visão geral de alto nível com conteúdo mínimo nos cartões:
1. Clique em **Opções**
2. Ative a opção **Visualização compacta**
## Etapa 4: Crie Visualizações Pessoais e de Equipe
### "Meu Pipeline"
* **Filtro**: Responsável = Eu
* **Visibilidade**: Não listada (visualização pessoal)
### "Pipeline da Equipe"
* **Filtro**: Nenhum (mostrar tudo)
* **Visibilidade**: Espaço de trabalho (visualização compartilhada)
### "Fechando Este Mês"
* **Tipo**: Tabela
* **Filtro**: Data de Fechamento = Este mês, Etapa ≠ Fechado - Ganho, Etapa ≠ Fechado - Perdido
* **Ordenação**: Data de Fechamento ascendente
## Trabalhando com Oportunidades
### Criando Oportunidades
* Clique em **+ Novo** na visualização de Oportunidades
* Ou clique em **+** na coluna de uma etapa específica
### Avançando pelas Etapas
Arraste e solte os cartões de oportunidade entre colunas para atualizar sua etapa.
<VimeoEmbed videoId="927888627" title="Demonstração em vídeo" />
## Melhores Práticas
### Higiene do Pipeline
* Atualize os negócios diariamente conforme eles avançam
* Mova ou feche rapidamente os negócios estagnados
* Mantenha as datas de fechamento realistas
### Disciplina de Etapas
* Defina critérios claros para cada etapa
* Mova os negócios prontamente quando os critérios forem atendidos
* Não deixe os negócios permanecerem tempo demais nas etapas
## Relacionados
* [Visualizações Kanban](/l/pt/user-guide/views-pipelines/capabilities/kanban-views) — agregações e visualização compacta
* [Filtros e Ordenação](/l/pt/user-guide/views-pipelines/capabilities/filters-and-sorting) — criando visualizações filtradas

View File

@@ -0,0 +1,149 @@
---
title: Mostrar o Valor Esperado no seu pipeline
description: Calcule e exiba valores ponderados de negócios com base na probabilidade da etapa.
---
O Valor Esperado é um valor calculado: **Amount × Probability**. Isso ajuda você a prever a receita, ponderando os negócios com base na probabilidade de fechamento.
<Tip>
Este é um exemplo de criação de [Campos de fórmula](/l/pt/user-guide/workflows/how-tos/crm-automations/formula-fields) usando fluxos de trabalho.
</Tip>
Este guia orienta você na configuração dos campos personalizados e fluxos de trabalho necessários para calcular e exibir valores esperados no seu pipeline.
## Etapa 1: Criar campos personalizados
Você precisa de dois campos personalizados no objeto Oportunidades.
### Crie o campo Probability
1. Acesse **Configurações → Modelo de Dados → Oportunidades**
2. Clique em **+ Adicionar campo**
3. Configurar:
* **Nome**: Probability
* **Tipo**: Número
* **Descrição**: Probabilidade baseada na etapa (0-100%)
4. Clique em **Salvar**
### Crie o campo Expected Amount
1. Clique em **+ Adicionar campo**
2. Configurar:
* **Nome**: Expected Amount
* **Tipo**: Moeda
* **Descrição**: Calculado: Amount × Probability
3. Clique em **Salvar**
### Opcional: tornar os campos somente leitura para os usuários
Se você não quiser que os usuários editem manualmente esses campos calculados:
1. Vá para **Configurações → Membros → Funções**
2. Selecione a função a configurar
3. Encontre o objeto Oportunidades
4. Defina os campos **Probability** e **Expected Amount** como somente leitura
Isso garante que apenas os fluxos de trabalho possam atualizar esses valores.
## Etapa 2: Criar o fluxo de trabalho nº 1 — Atualizar Probability na alteração de etapa
Este fluxo de trabalho define automaticamente o campo Probability quando uma oportunidade é movida para uma nova etapa.
### Criar o fluxo de trabalho
1. Acesse **Fluxos de trabalho**
2. Clique em **+ Novo fluxo de trabalho**
3. Nomeie como "Update Probability on Stage Change"
### Configurar o gatilho
1. Adicione um gatilho **Registro criado ou atualizado**
2. Selecione **Oportunidades** como o objeto
3. Filtre por: o campo **Stage** é atualizado
### Adicione ramificações para cada etapa
Crie uma ramificação para cada etapa com sua probabilidade:
| Etapa | Probabilidade |
| ----------- | ------------- |
| Novo | 10% |
| Qualificado | 25% |
| Meeting | 40% |
| Proposal | 60% |
| Negotiation | 80% |
| Closed Won | 100% |
| Closed Lost | 0% |
<Note>
Para criar uma nova ramificação, clique com o botão direito na tela do fluxo de trabalho e clique em **Nova ação**. Em seguida, vincule essa ação ao nó anterior arrastando a seta do nó anterior para esta nova ação.
</Note>
Para cada etapa:
1. Adicione um nó **Filtro**: Stage = [nome da etapa]
2. Adicione uma ação **Atualizar registro**:
* Registro: a Oportunidade que acionou
* Campo: Probability
* Valor: [probabilidade para essa etapa]
### Calcular o Valor Esperado
Depois que as ramificações se unirem:
1. Adicione um nó **Filtro**: Amount não está vazio
2. Adicione uma ação **Atualizar registro**:
* Registro: a Oportunidade que acionou
* Campo: Expected Amount
* Valor: Amount × Probability
## Etapa 3: Criar o fluxo de trabalho nº 2 — Recalcular na alteração de Amount
Este fluxo de trabalho atualiza o campo Expected Amount quando o Amount do negócio é alterado.
### Criar o fluxo de trabalho
1. Acesse **Fluxos de trabalho**
2. Clique em **+ Novo fluxo de trabalho**
3. Nomeie como "Recalculate Expected Amount on Amount Change"
### Configurar o gatilho
1. Adicione um gatilho **Registro criado ou atualizado**
2. Selecione **Oportunidades** como o objeto
3. Filtre por: o campo **Amount** é atualizado
### Adicione a lógica
1. Adicione um nó **Filtro**: Amount não está vazio
2. Adicione uma ação **Atualizar registro**:
* Registro: a Oportunidade que acionou
* Campo: Expected Amount
* Valor: Amount × Probability
## Etapa 4: Exibir no seu pipeline
Agora mostre os totais de Expected Amount na sua visualização Kanban:
1. Abra a visualização Kanban do seu **Pipeline de Vendas**
2. Clique no **número** ao lado de qualquer nome de Stage no topo de uma coluna
3. Selecione **Soma**
4. Escolha **Expected Amount**
Cada coluna agora mostra o valor total ponderado do pipeline para essa etapa.
## Resumo
| Componente | Finalidade |
| -------------------------- | --------------------------------------------------------------------------------- |
| **Campo Probability** | Armazena a probabilidade de ganho baseada na etapa |
| **Campo Expected Amount** | Armazena Amount × Probability |
| **Fluxo de trabalho nº 1** | Atualiza Probability quando a Stage muda e, em seguida, recalcula Expected Amount |
| **Fluxo de trabalho nº 2** | Recalcula Expected Amount quando Amount muda |
| **Agregação** | Exibe a soma de Expected Amount por etapa |
## Relacionados
* [Campos de fórmula](/l/pt/user-guide/workflows/how-tos/crm-automations/formula-fields) — crie campos calculados usando fluxos de trabalho
* [Visualizações de Kanban](/l/pt/user-guide/views-pipelines/capabilities/kanban-views) — agregações por coluna
* [Como criar campos personalizados](/l/pt/user-guide/data-model/how-tos/create-custom-fields) — configuração de campos

View File

@@ -0,0 +1,231 @@
---
title: Acompanhe por quanto tempo as oportunidades permanecem em cada etapa.
description: Monitore a velocidade do negócio acompanhando quando as oportunidades entram em cada etapa.
---
<Tip>
Este é um exemplo de criação de [Campos de fórmula](/l/pt/user-guide/workflows/how-tos/crm-automations/formula-fields) usando fluxos de trabalho — especificamente cálculos de datas.
</Tip>
Acompanhar quando as oportunidades entram em cada etapa ajuda a identificar gargalos e medir a velocidade do negócio.
Este guia orienta você na configuração de campos personalizados e de um fluxo de trabalho para registrar automaticamente quando uma oportunidade passa para cada etapa e calcular quantos dias ela passou na etapa anterior.
## Etapa 1: Criar campos personalizados
Você precisa de dois tipos de campos para cada etapa:
* **Campos de Data e hora**: registrar quando a oportunidade entrou em cada etapa
* **Campos de Número**: armazenar quantos dias a oportunidade passou em cada etapa
### Criar os campos "Última entrada"
1. Acesse **Configurações → Modelo de Dados → Oportunidades**
2. Para cada etapa, clique em **+ Adicionar campo** e configure:
* **Nome**: Última entrada em [Nome da etapa] (por exemplo, "Última entrada em Novo", "Última entrada em Qualificado")
* **Tipo**: Data e hora
* **Descrição**: Carimbo de data/hora de quando a oportunidade entrou nesta etapa
3. Clique em **Salvar**
Crie estes campos:
* Última entrada em Novo
* Última entrada em Qualificado
* Última entrada em Reunião
* Última entrada em Proposta
* Última entrada em Negociação
* Última entrada em Fechado Ganho
* Última entrada em Fechado Perdido
### Criar os campos "Dias na etapa"
1. Para cada etapa, clique em **+ Adicionar campo** e configure:
* **Nome**: Dias em [Nome da etapa] (por exemplo, "Dias em Novo", "Dias em Qualificado")
* **Tipo**: Número
* **Descrição**: Número de dias passados nesta etapa
2. Clique em **Salvar**
Crie estes campos:
* Dias em Novo
* Dias em Qualificado
* Dias em Reunião
* Dias em Proposta
* Dias em Negociação
<Note>
Você não precisa de campos "Dias em" para Fechado Ganho e Fechado Perdido, pois são etapas finais.
</Note>
### Opcional: tornar os campos somente leitura
Se você não quiser que os usuários editem manualmente esses campos calculados:
1. Vá para **Configurações → Membros → Funções**
2. Selecione a função a configurar
3. Encontre o objeto Oportunidades
4. Defina os campos "Última entrada" e "Dias em" como somente leitura
## Etapa 2: Criar o fluxo de trabalho
Este único fluxo de trabalho trata das duas tarefas:
* Registra o carimbo de data/hora ao entrar em uma nova etapa
* Calcula os dias passados na etapa anterior
### Criar o fluxo de trabalho
1. Acesse **Fluxos de trabalho**
2. Clique em **+ Novo fluxo de trabalho**
3. Dê o nome "Acompanhar tempo por etapa"
### Configurar o gatilho
1. Adicione um gatilho **Registro atualizado**
2. Selecione **Oportunidades** como o objeto
3. Filtrar em: o campo **Fase** é atualizado
### Adicionar ramificações para cada fase
<Note>
Para criar uma nova ramificação, clique com o botão direito no canvas do workflow e clique em **Nova ação**. Em seguida, vincule esta ação ao nó anterior arrastando a seta do nó anterior para esta nova ação.
</Note>
---
**Ramificação 1: Fase = Novo (primeira fase)**
Como esta é a primeira etapa, apenas o carimbo de data e hora de entrada é registrado — não há etapa anterior a partir da qual calcular.
1. Adicione um nó de **Filtro**: Fase = Novo
2. Adicione uma ação de **Código**:
```javascript
export const main = async (): Promise<object> => {
return { now: new Date().toISOString() };
};
```
3. Adicione uma ação de **Atualizar registro**:
* Registro: A Oportunidade disparadora
* Campo: Última entrada em Novo
* Valor: `now` do nó de Código
---
**Ramificação 2: Fase = Qualificado**
Ao mover para Qualificado, registre o momento de entrada E calcule os dias passados em Novo.
1. Adicione um nó de **Filtro**: Fase = Qualificado
2. Adicione uma ação de **Código**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configure a entrada do nó de Código: mapeie `lastEnteredPreviousStage` para o campo **Última entrada em Novo**
4. Adicione uma ação de **Atualizar registro**:
* Registro: A Oportunidade disparadora
* Campos a atualizar:
* Última entrada em Qualificado = `now`
* Dias em Novo = `daysInPreviousStage`
---
**Ramificação 3: Fase = Reunião**
Ao mover para Reunião, registre o momento de entrada E calcule os dias passados em Qualificado.
1. Adicione um nó de **Filtro**: Fase = Reunião
2. Adicione uma ação de **Código**:
```javascript
export const main = async (params: {
lastEnteredPreviousStage: Date;
}): Promise<object> => {
const { lastEnteredPreviousStage } = params;
const now = new Date();
const entryDate = new Date(lastEnteredPreviousStage);
const diffTime = Math.abs(now.getTime() - entryDate.getTime());
const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return {
now: now.toISOString(),
daysInPreviousStage: daysInPreviousStage
};
};
```
3. Configure a entrada do nó de Código: mapeie `lastEnteredPreviousStage` para o campo **Última entrada em Qualificado**
4. Adicione uma ação de **Atualizar registro**:
* Registro: A Oportunidade disparadora
* Campos a atualizar:
* Última entrada em Reunião = `now`
* Dias em Qualificado = `daysInPreviousStage`
---
**Continue para as fases restantes:**
| Etapa | Registra | Calcula |
| ----------------- | --------------------------------- | ------------------ |
| Proposta | Última entrada em Proposta | Dias em Reunião |
| Negociação | Última entrada em Negociação | Dias em Proposta |
| Fechado - Ganho | Última entrada em Fechado Ganho | Dias em Negociação |
| Fechado - Perdido | Última entrada em Fechado Perdido | Dias em Negociação |
As ramificações não precisam se reunir — cada uma é executada independentemente quando a condição da sua fase é atendida.
## Etapa 3: Analisar o tempo na fase
Com carimbos de data e hora e contagens de dias registrados, você pode agora analisar a velocidade dos negócios.
### Criar uma visualização "Negócios lentos"
1. Crie uma visualização de Tabela de Oportunidades
2. Adicione colunas: Nome, Fase, Dias em [fase anterior], Valor
3. Classifique pelo campo "Dias em" (descendente)
4. Filtre por Fase para focar em uma fase por vez
Os negócios no topo passaram mais tempo na fase anterior.
### Use agregações
Na sua visualização Kanban do pipeline:
1. Clique no número ao lado do nome de uma Fase
2. Selecione **Média**
3. Escolha um campo "Dias em"
Isso mostra o tempo médio que os negócios passam em cada fase.
## Resumo
| Componente | Finalidade |
| ------------------------------ | ----------------------------------------------------------------- |
| **Campos "Última entrada em"** | Armazena quando a oportunidade entrou em cada fase |
| **Campos "Dias em"** | Armazena quantos dias foram passados em cada fase |
| **Workflow** | Registra o carimbo de data e hora E calcula os dias de uma só vez |
| **Visualizações e agregações** | Analise a velocidade dos negócios e identifique gargalos |
## Relacionados
* [Workflows](/l/pt/user-guide/workflows/overview) — noções básicas de automação
* [Como criar campos personalizados](/l/pt/user-guide/data-model/how-tos/create-custom-fields) — configuração de campos
* [Visualizações de Kanban](/l/pt/user-guide/views-pipelines/capabilities/kanban-views) — agregações