Workflow columns

Uma tabela é uma grade de colunas tipadas. Normalmente você digita os valores de uma coluna. Uma workflow column é diferente: seus valores vêm de um workflow que roda uma vez por linha. Para cada linha, o workflow lê as colunas que você escolheu como entrada, executa seus blocks e escreve os resultados de volta em colunas dessa mesma linha.

É isso que torna uma tabela ativa. Em vez de executar um workflow na mão e colar os resultados, você conecta o workflow à tabela e ele preenche cada linha por conta própria — um pouco como uma macro de planilha que roda em toda linha, só que cada passo é um workflow completo.

O exemplo desta página é uma tabela de startups de IA, ai_startup_customers. A empresa é digitada; três grupos de workflow preenchem todo o resto:

  • Company Domain encontra o domain de cada empresa.
  • Company Info lê o domínio e preenche employee_count e description.
  • Lead Score Enrichment executa o workflow de pontuação de leads e escreve lead_score, priority e score_reasoning.

O cabeçalho de cada grupo abrange as colunas que ele controla, cada linha tem um botão de execução (▷) e a barra de ferramentas mostra o trabalho em andamento: aqui, 21 running, com Stop all ao lado.

domain            │ employee_count │ lead_score │ priority
──────────────────┼────────────────┼────────────┼─────────
openai.com        │ 5K-10K         │ 75         │ Warm
gominimal.ai      │ Not found      │ 92         │ Hot
genspark.net      │ 51-250         │ 20         │ Cold

Dois tipos de grupo

A unidade que você configura é um grupo: algo que roda uma vez por linha, alimentado por colunas de entrada e escrevendo colunas de saída. Há dois tipos, e o menu + New column oferece os dois — Enrichments acima dos tipos de coluna simples, Workflow abaixo deles. Ambos compartilham toda a mecânica de execução descrita a seguir.

Enrichments

Um enrichment é uma consulta pronta que o Studio fornece e mantém — abra o painel Enrichments para ver o que está disponível. Escolha um, ligue suas entradas a colunas e nomeie as colunas que suas saídas devem preencher; não há workflow para construir. Nos bastidores, um enrichment tenta uma cascata de provedores de dados em ordem, e é por isso que uma célula pode voltar como Not found: todos os provedores rodaram e nenhum tinha a resposta.

Grupos de workflow

Um grupo de workflow executa um dos seus próprios workflows por linha — use quando o trabalho por linha é algo que você mesmo construiu, como o avaliador de leads. O painel Configure workflow reúne tudo o que o define, com uma prévia do workflow que será executado:

  • Workflow escolhe qual workflow roda por linha; aqui, Lead Score Enrichment.
  • Add column inputs mapeia colunas para as entradas do workflow, que chegam pelo trigger Start.
  • Output columns escolhe quais saídas do workflow serão escritas de volta; aqui, 3 estão selecionadas.
  • Auto-run workflow e Run after controlam quando as linhas rodam (ambos abaixo).

Um único grupo pode produzir várias colunas de resultado a partir de uma execução por linha: Lead Score Enrichment preenche lead_score, priority e score_reasoning de uma vez.

Como os grupos rodam

Tudo daqui para frente vale para os dois tipos. A configuração de um grupo é um conjunto de vínculos: cada entrada está ligada a uma coluna, e cada saída está ligada ao nome da coluna em que escreve. Aqui, a entrada obrigatória Company domain do Company Info lê a coluna domain, e suas saídas escrevem em employee_count_0 e description:

Quando um grupo roda uma linha, os valores das colunas vinculadas se tornam suas entradas; ele só vê as colunas que você mapeou, o resto da linha fica intocado, e as entradas ficam somente leitura durante a execução. Toda saída que você selecionou é escrita na sua coluna, e as saídas que você não selecionou são descartadas.

Run after

Run after é o conjunto de colunas que precisam estar preenchidas antes de o grupo rodar em uma linha. Company Info roda depois de domain: uma linha com domain vazio espera e, no momento em que Company Domain o preenche, essa linha se torna elegível. Lead Score Enrichment roda depois das colunas de informação, as seis dependências do painel acima.

Uma dependência pode ser uma coluna tipada ou a coluna de saída de outro grupo. É esse segundo caso que faz as cascatas funcionarem (abaixo). Pelo menos uma dependência é obrigatória quando o auto-run está ativado.

Auto-run

Auto-run decide se um grupo dispara por conta própria. Com auto-run ativado, um grupo roda uma linha assim que as colunas de Run after dessa linha estiverem preenchidas, sem precisar de clique; é assim que 21 linhas acabam rodando ao mesmo tempo no exemplo. Com ele desativado, você dispara manualmente.

Você dispara um grupo pelo menu do cabeçalho da coluna:

  • Run this row roda apenas aquela linha.
  • Run all rows roda todas as linhas, e roda de novo as que já haviam terminado.
  • Run empty rows roda apenas as linhas cujas colunas de saída ainda estão vazias.
  • Run selected rows roda as linhas que você marcou.

O auto-run só roda linhas que ainda não tentou. Para rodar uma única linha de novo, use Re-run cell no menu da célula; para rodar tudo de novo, use Run all rows.

Status de execução

Enquanto um grupo trabalha uma linha, suas células de saída mostram o estado em vez de um valor:

EstadoSignificado
PendingEsperando por uma coluna de Run after que ainda não foi preenchida.
QueuedElegível e esperando para começar.
RunningO workflow está executando para esta linha.
ErrorUm block falhou. A célula indica qual block e por quê.
CancelledA execução foi interrompida antes de terminar.
Not foundUm enrichment terminou, mas não encontrou nada para esta linha.

Quando o valor chega, ele substitui o selo, e as células que terminam continuam preenchidas mesmo enquanto outras colunas da linha ainda estão rodando. Você vê isso na tabela do exemplo: a maioria das linhas está totalmente pontuada, enquanto algumas mostram Not found onde um enrichment não achou nada. O avaliador de leads ainda rodou nessas linhas, trabalhando com o que tinha.

Em caso de erro, a linha permanece no estado Error. O auto-run ignora linhas com erro, então uma falha não entra em loop. Para tentar de novo, corrija a entrada e rode a célula outra vez. Uma linha nunca é trabalhada por mais de uma execução ao mesmo tempo, então rodar de novo não gera concorrência.

Inspecionando a execução de uma linha

Todo valor em uma workflow column vem de uma execução real de workflow, e cada uma pode ser inspecionada. Abra o menu de uma célula para agir sobre aquela linha:

View execution abre o trace da execução: cada block com seu status, tempo e custo em créditos, a mesma visão da página Logs. Aqui, a pontuação da linha veio de uma execução de 1.86s do workflow LeadScorer:

Re-run cell roda o grupo de novo apenas para aquela linha, substituindo seus valores quando a execução termina.

Cascatas

Como um grupo pode rodar depois da coluna de saída de outro grupo, você pode encadear grupos ao longo da tabela — misturando enrichments e grupos de workflow livremente. O exemplo é uma cascata de três estágios: Company Domain preenche domain a partir do nome da empresa, Company Info roda depois de domain e preenche as colunas de informação, e o grupo de workflow Lead Score roda depois dessas e escreve a pontuação. Cada linha avança pelos estágios de forma independente: no momento em que suas próprias colunas de Run after estão preenchidas, ela se torna elegível para o grupo seguinte. É por isso que algumas linhas da captura de tela estão totalmente pontuadas enquanto outras ainda estão no meio do caminho.

Quando usar uma workflow column

Escolha uma workflow column quando o trabalho é linha por linha: enriquecer cada registro, classificar cada entrada, pontuar cada lead. O trabalho tem a mesma forma em todas as linhas, e você quer que os resultados fiquem ao lado dos dados de origem.

Use um workflow por conta própria quando a tarefa não é por linha: uma transformação pontual, uma agregação sobre muitas linhas ou uma decisão em tempo real ligada a uma única requisição. Para trazer dados da tabela para dentro de um workflow, em vez de empurrar resultados do workflow para uma tabela, veja usando tabelas em workflows.

Próximos passos