Entrada e Saída

Na Hablla, toda entrada e saída de um componente é feita em formato JSON. Isso significa que cada ação dentro do fluxo de automação recebe informações (entrada), processa esses dados e retorna um resultado (saída). Vamos entender melhor como isso funciona e como você pode utilizar essas informações no seu dia a dia.


🏗 Fluxo de Dados na Hablla

1️⃣ Entrada → O componente recebe um conjunto de dados em JSON, vindos de outras etapas do fluxo. 2️⃣ Processamento → O componente manipula os dados e faz requisições internas ou externas. 3️⃣ Saída → O componente retorna um JSON com as informações processadas, incluindo status, detalhes da requisição e resultados obtidos.

📌 Exemplo real na Hablla: Imagine que um componente recebe dados de um contato do WhatsApp e precisa criar um cartão de atendimento no sistema.


📥 Entrada de Dados

A entrada contém todas as informações disponíveis para o componente. Essas informações vêm de componentes anteriores no fluxo.

Exemplo de entrada (JSON):

{
  "whatsapp": {
    "name": "Marcus Barboza",
    "phone_number": "5517997275046"
  },
  "person": {
    "name": "Marcus Barboza",
    "customer_status": "lead",
    "id": "675c7667dc2708736e804575"
  },
  "service": {
    "type": "whatsapp",
    "status": "in_bot",
    "id": "67c7503f15788872a1f61328"
  },
  "content": {
    "body": "Hablla, boa tarde!"
  }
}

Os dados na Hablla são gerados a partir de interações do usuário, capturados de sistemas externos ou adicionados por componentes anteriores no fluxo de automação. As automações na Hablla podem ser iniciadas por eventos disparados a partir de componentes receptivos como WhatsApp, Instagram, Messenger, Telegram, Email, Telefone, além de integrações via Webhooks, CRON e Trigger.

Esses eventos (trigger) podem ser acionados por diferentes tipos de ações dentro da plataforma, como: ✅ Interações com Pessoas → Leads, clientes ou usuários realizando ações no sistema. ✅ Organizações → Atualizações em empresas cadastradas. ✅ Cards → Movimentações dentro de quadros e pipelines. ✅ Bot e Chat → Mensagens enviadas ou recebidas por IA ou operadores humanos. ✅ Chamadas Telefônicas e Emails → Registros e atualizações de comunicações. ✅ Campos Personalizados (Custom Fields) → Mudanças em dados específicos dentro do CRM. ✅ Eventos de Sessão → Login, logout, sessão expirada, status online/offline. ✅ Serviços e Transferências → Atribuições de atendimentos e movimentação entre setores. ✅ Tags e Usuários → Ações relacionadas a segmentação e permissões de usuários. ✅ Tarefas e Dicionário de Dados → Atualizações em tarefas ou informações estruturadas. ✅ Conversões e Alterações de Status → Mudanças em estágios do funil de vendas e atendimento.

Sempre que um desses eventos é ativado na Hablla, ele dispara uma trigger que recebe os dados do evento e executa ações configuradas, como: Criar, Atualizar, Excluir, Mesclar, entre outras. 🚀


Processamento de Dados

Entre a entrada e a saída, o componente manipula os dados recebidos. Ele pode: ✅ Consultar um banco de dados → Buscar informações de clientes, pedidos, etc. ✅ Fazer uma chamada para uma API externa → Como integrar um ERP ou outro sistema de API aberta. ✅ Aplicar regras de automação → Criar, atualizar ou excluir registros na Hablla conforme regras do fluxo.


📤 Saída de Dados

A saída contém o resultado da operação do componente. Ela segue sempre o mesmo formato e inclui:

1️⃣ value → Resultado da operação (exemplo: sucesso ou erro). 2️⃣ headers → Cabeçalhos da requisição (útil para depuração e segurança). 3️⃣ config → Configuração da requisição, como URL e tempo de resposta. 4️⃣ request → Caminho da chamada feita pelo componente. 5️⃣ data → O resultado final da operação.

Exemplo de saída (JSON):

{
  "status": "fulfilled",
  "value": {
    "status": 200,
    "statusText": "OK",
    "headers": {
      "content-type": "application/json; charset=utf-8",
      "date": "Tue, 04 Mar 2025 19:10:56 GMT"
    },
    "config": {
      "method": "GET",
      "url": "https://api.hablla.com/v3/workspaces/643d802021b6aa9234eb9797/cards"
    },
    "request": {
      "method": "GET",
      "path": "/v3/workspaces/643d802021b6aa9234eb9797/cards?person=675c7667dc2708736e804575"
    },
    "data": {
      "results": [],
      "count": 0,
      "totalItems": 0
    }
  }
}

🔹 O que esses dados significam?status: Indica se a operação foi bem-sucedida (fulfilled) ou se houve erro. ✅ value.status: O código de resposta HTTP (200 significa sucesso, 400 erro de requisição, etc.). ✅ config.url: A URL utilizada na requisição. ✅ request.path: O caminho exato da API chamada. ✅ data: O resultado da requisição (neste caso, não encontrou nenhum cartão para essa pessoa).


🛠 Como Usar Esses Dados no Fluxo

💡 Você pode acessar qualquer valor da entrada ou da saída do componente dentro do fluxo usando a sintaxe:

{{$data?.codigoDoComponente?.caminhoVariavel}}

📌 Existem exemplos em Usando variáveis


🚀 Conclusão

🔹 A entrada contém os dados disponíveis antes do componente ser executado. 🔹 O componente processa esses dados, faz requisições e aplica regras de automação. 🔹 A saída mostra o resultado da operação, permitindo que o fluxo continue automaticamente.

💡 Dica: Sempre analise a entrada e a saída para entender como os dados estão fluindo dentro da automação. Isso facilita identificar erros e configurar suas regras corretamente! 🚀

Atualizado

Isto foi útil?