As etapas dentro de uma esteira podem ser configuradas para depender de uma ou mais etapas anteriores. Por exemplo, a etapa de “Análise de Crédito” pode depender do sucesso das etapas de “Verificação de Documentos” e “Prova de Vida”. Nesse cenário, a etapa de “Análise de Crédito” só será ativada se as etapas dependentes forem concluídas com sucesso.

Você pode configurar essas dependências tanto durante a criação inicial da etapa quanto editando uma etapa já existente.

Dependência simples

Para criar uma etapa com uma dependência, você deve utilizar o atributo needs, especificando a chave da etapa da qual ela depende.

Veja abaixo um exemplo onde a etapa “Análise de Crédito” depende da etapa “Verificação de Documentos”. A etapa de “Análise de Crédito” permanecerá com o status pending até que a etapa “Verificação de Documentos” seja finalizada com o status done.

{
  "settings": {
    "steps": {
      "etapa-1": {
        "name": "Verificação de documentos"
        // ...
      },
      "etapa-2": {
        "name": "Análise de crédito",
        "needs": [
          "etapa-1"
        ]
        // ...
      }
    }
  }
}

Múltiplas dependências

É comum que existam etapas que dependam de mais de uma etapa anterior. Não existe um limite de dependências para uma etapa.

Nesse exemplo, a etapa “Análise de Crédito” será ativada apenas quando a etapa “Verificação de Documentos” for concluída com sucesso.

A etapa “Prova de Vida”, apesar de estar listada após “Análise de Crédito”, será executada em paralelo, pois não tem dependências configuradas.

Já a etapa “Desembolso” depende tanto da “Análise de crédito” quanto da “Prova de Vida”. Isso indica que a “Prova de vida” é importante apenas para o desembolso e não impede a “Análise de Crédito”.

A configuração desse fluxo pode ser feita da seguinte forma:

{
  "settings": {
    "steps": {
      "etapa-1": {
        "name": "Verificação de documentos"
        // ...
      },
      "etapa-2": {
        "name": "Análise de crédito",
        "needs": [
          "etapa-1"
        ]
        // ...
      },
      "etapa-3": {
        "name": "Prova de vida"
        // ...
      },
      "etapa-4": {
        "name": "Desembolso",
        "needs": [
          "etapa-1",
          "etapa-3"
        ]
        // ...
      }
    }
  }
}

Este recurso de dependência permite uma flexibilidade considerável na organização das etapas, possibilitando um fluxo de trabalho mais dinâmico e adaptável às necessidades específicas de cada caso.