FlowsGuia

Subflows e passos de AI Scraper

Um flow não precisa fazer tudo sozinho. Um passo Flow roda outro flow do projeto; um passo AI Scraper roda um dos scrapers dele. Nos dois casos quem é chamado mantém as próprias entradas, execuções e versões — quem chama liga as entradas, espera e recebe o resultado como saída do passo.

O que você vai aprender
  • Chamar outro flow como um passo e ligar as entradas do Início dele
  • Saber qual versão quem chama roda, e por que publicar importa
  • Abrir e expandir a execução filha a partir da execução do pai
  • Rodar um AI Scraper publicado como passo e ler as linhas dele

Um passo, um flow inteiro por trás

Divida um flow longo em partes reutilizáveis: um flow que carrega um cliente, outro que envia o relatório, um terceiro que chama os dois. No canvas do pai, a chamada é um único passo; o trabalho acontece no filho, que registra uma execução própria.

Um passo Flow e um passo AI Scraper numa execução: cada um espera a execução que iniciou e depois passa o resultado adiante.

Quem chama sempre roda a versão publicada mais recente de quem é chamado, nunca o rascunho. É esse contrato que torna a reutilização segura: você edita um filho à vontade, e nada que o chama muda até você publicar.

Chame um flow

  1. Adicione um passo Flow

    Clique no + e escolha Flow (“Roda outro flow como um passo”). Chamar um flow abre com todos os flows do projeto e uma busca. Um flow que chamaria este de volta fica desativado — Isso faria um ciclo de flows.

  2. Ligue as entradas

    A aba Parâmetros lista os parâmetros do Início do filho em Entradas, cada um uma linha de vínculo com os quatro modos. Um filho sem parâmetros mostra Esse flow não recebe entradas. Se o filho deixar de ter um parâmetro que você ligou, o painel indica: Ligado a entradas que o flow não tem mais.

  3. Teste o filho sozinho

    Rodar teste → Rodar esse flow roda o filho sozinho com os valores mostrados — o pai não roda. Entradas ligadas a um passo anterior ainda não têm valor, então a aba pede um (só pro teste — não salva nas ligações).

  4. Use a saída

    A saída do passo é a saída do flow filho — o que o último passo dele devolveu. Ligue uma entrada seguinte a output.result, ou ao que o filho devolver.

A execução do filho

Cada chamada cria uma execução separada do filho, ligada ao pai. No canvas da execução do pai, o passo Flow tem o botão Expandir esse flow: os passos executados do filho abrem no próprio canvas, numa região sombreada marcada Flow, com status e tempos; Recolher esse flow fecha de novo. A expansão vai um nível — um subflow dentro do filho expandido continua um passo só ali. Um passo que não rodou não tem o que expandir.

Ver execução do filho abre a execução do filho na página dele, e Editar flow abre o próprio filho. Na página Execuções do projeto, o filho não é uma linha separada: ele aparece dentro do pai.

O filho…O passo do pai
termina com sucessotermina com sucesso e com a saída do filho
falhafalha: flow 'name' failed: … com o erro do filho
termina Concluído com errostermina com sucesso, e a execução do pai também termina Concluído com erros
espera uma aprovaçãoo pai também espera, e segue a decisão do filho

Rode um AI Scraper como passo

Um AI Scraper que você publicou pode ser chamado do mesmo jeito. Escolha AI Scraper no menu de adicionar; Escolha um scraper lista os scrapers publicados do projeto (nenhum ainda: Nenhum scraper publicado nesse projeto ainda — publique um na página de Scrapers).

  • Entradas são as entradas que a versão publicada declara (texto, número ou data), cada uma uma linha de vínculo. Uma constante do tipo errado, ou um vínculo numa entrada que o scraper não declara, é recusado na publicação e na execução com invalid_parameter.
  • Tempo limite do passo limita a execução do scraper: passado esse tempo, ela é cancelada e o passo falha com timeout. Vazio (Sem tempo limite do passo) significa que só vale o tempo limite do próprio flow.
  • Rodar teste → Rodar esse scraper roda o scraper publicado sozinho e informa Teste passou — 20 linhas. Abrir scraper abre o scraper no Studio.

A saída traz as linhas. Quando o resultado é grande demais para ficar na execução (mais de 5 MB), rows vem vazio e downloadPath aponta para o resultado guardado; um loop seguinte ainda lê todas as linhas. Numa execução, Abrir execução do scraper abre a execução do próprio scraper, com as capturas de tela.

Saída esperadaSucessoA saída de um passo AI Scraper; ligue output.rows ou output.count
{
  "rows": [
    {
      "title": "A Light in the Attic",
      "price": 51.77
    }
  ],
  "count": 1,
  "runId": "2f4c…",
  "downloadPath": null
}

Regras e códigos de erro

  • Quem chama roda a versão publicada mais recente do flow filho ou do scraper; o arquivo do flow não fixa versão.
  • scraper_not_found — o scraper não existe ou é de outro projeto; scraper_not_published — ele não tem versão publicada. Os dois são verificados na publicação e na execução.
  • scraper_failed — a execução do scraper falhou; o erro dela vem junto (um problema de créditos continua credit_exhausted).
  • Um tempo limite num passo Flow limita também a execução filha; cancelar o pai, ou estourar o tempo dele, cancela o filho.