Pular para o conteúdo
Guias

Gráficos, tabelas e aprovações do Slack no OpenClaw

Blocos nativos de visualização de dados e seus limites, a regra de dois gráficos por mensagem, tabelas de dados nativas com células tipadas, o fallback em texto que nunca perde linhas, envios de modais pertencentes a plugins e aprovações de execução e de plugins nativas do Slack

7 min de leitura

Um gráfico em uma mensagem do Slack costumava significar renderizar uma imagem em algum lugar e enviá-la. Agora o Slack tem blocos nativos do Block Kit para gráficos e tabelas, e o OpenClaw mapeia seus blocos de apresentação portáveis diretamente para eles, com uma versão em texto que vai junto para tudo o que não consegue desenhar um bloco. A seguir estão os dois blocos nativos com seus limites e fallbacks, o caminho dos modais para plugins e os botões de aprovação que permitem ao Slack atuar como cliente de aprovação.

Gráficos nativos

  • O bloco público de visualização de dados do Slack renderiza gráficos de linhas, de barras, de áreas e de pizza em mensagens, e o OpenClaw mapeia o bloco de gráfico portável, com um tipo de gráfico, um título, categorias, séries nomeadas e um rótulo de eixo opcional, para esse formato nativo sem escopo OAuth extra, upload de arquivo, renderizador de imagens nem configuração do Slack além do acesso normal a mensagens.
  • Os limites do Slack são aplicados antes da renderização nativa: títulos e rótulos de eixo com até 50 caracteres, de um a doze segmentos positivos para um gráfico de pizza, de uma a doze séries com nomes únicos e de uma a vinte categorias compartilhadas para linhas, barras e áreas, rótulos com até 20 caracteres e um valor finito por categoria em cada série, com valores negativos permitidos fora dos gráficos de pizza.
  • Todo gráfico nativo carrega uma representação em texto de nível superior para leitores de tela, notificações, espelhamento de sessão e clientes que não conseguem renderizar o bloco; os outros canais recebem esses mesmos dados determinísticos do gráfico como texto, a menos que anunciem suporte nativo a gráficos, e quando o Slack rejeita um gráfico com um erro de blocos inválidos, o OpenClaw remove os blocos de dados rejeitados, mantém os controles vizinhos e envia o gráfico completo como texto visível.
  • O Slack aceita no máximo dois blocos de visualização de dados por mensagem, um limite que sua referência pública não documenta, então uma apresentação com mais gráficos válidos mantém a ordem deles e continua a renderização nativa em mensagens seguintes, com no máximo dois por mensagem; o anúncio para desenvolvedores documenta o bloco como um recurso voltado a apps, sem restrição de plano pago, a menção aos planos Business Plus e Enterprise se aplica à geração de gráficos por IA do próprio Slackbot, e os gráficos são blocos exclusivos de mensagens, não conteúdo de App Home, de modal nem de Canvas.
Só blocos de tabela explícitos da apresentação são promovidos a tabelas nativas.

Tabelas nativas

O bloco de tabela de dados atual do Slack renderiza linhas e colunas em mensagens, e o OpenClaw mapeia para ele um bloco de tabela portável explícito, com legenda, cabeçalhos, linhas e um índice opcional de coluna de cabeçalho de linha, em vez de mapeá-lo para o bloco de tabela legado, de novo sem escopo extra. Células de cabeçalho e de string viram células de texto bruto, células numéricas viram células de número bruto com o valor finito preservado para ordenação e filtragem nativas, e o índice de cabeçalho de linha marca essa coluna, contada a partir de zero, como cabeçalhos de linha do Slack. Os limites publicados são aplicados primeiro: de uma a vinte colunas, de uma a cem linhas de dados mais a linha de cabeçalho, o mesmo número de células em todas as linhas e no máximo dez mil caracteres somados em todas as células de uma mensagem. Várias tabelas válidas podem ser renderizadas nativamente enquanto a mensagem ficar dentro desses limites; uma tabela que não couber vira texto determinístico completo em vez de perder linhas ou células, o texto que ultrapassar uma mensagem sai em partes ordenadas nos envios e nas respostas a comandos de barra, e a edição de uma tabela falha com um erro de tamanho explícito em vez de truncar silenciosamente linhas de uma mensagem existente. Toda tabela nativa também carrega sua representação em texto, os valores brutos de gráficos e tabelas permanecem literais no fallback para que uma menção a um usuário em uma célula não vire uma menção real, e quando o Slack rejeita blocos nativos de gráfico ou de tabela, o OpenClaw remove todos os blocos de dados nativos em uma única etapa de recuperação limitada, mantém vizinhos válidos, como botões e seletores, e envia o texto completo com a formatação do Slack desativada; a entrega de comandos de barra acompanha o orçamento de cinco chamadas de resposta do Slack e escolhe, antes de cada lote, um plano completo que caiba nas chamadas restantes. Só blocos de tabela explícitos da apresentação são promovidos, tabelas Markdown com barras verticais continuam como texto redigido porque o OpenClaw não tenta adivinhar a estrutura nem os tipos de célula, produtores nativos do Slack confiáveis ainda podem passar blocos brutos pelos dados do canal com texto de fallback derivado das células brutas válidas, e o conteúdo de planilha colado que chega como bloco de tabela legado é renderizado como TSV seguro quanto a delimitadores para a entrada do agente, o contexto da thread e as ações de leitura, sendo aceitos a partir de anexos comuns apenas blocos de tabela nativos.

Modais e aprovações

  • Plugins do Slack com um handler interativo podem receber os eventos de envio e de fechamento de modais antes de o OpenClaw compactar o payload, definindo o ID de callback como um namespace e um payload com prefixo openclaw ou colocando dados interativos do plugin nos metadados privados do modal; o handler recebe o tipo de interação, entradas normalizadas e os valores brutos de estado, o roteamento pelo ID de callback basta para invocá-lo, os campos de roteamento de usuário e de sessão nos metadados privados fazem o modal também produzir um evento visível para o agente, e o agente recebe um evento de interação compacto, com dados ocultados, que pode trazer um resumo, uma referência e dados do handler sem o payload completo do formulário.
  • O Slack pode atuar como cliente de aprovação nativo com botões interativos em vez de recorrer à interface web ou ao terminal: as aprovações de execução e de plugins são renderizadas como prompts do Block Kit, as DMs de aprovação de execução vão para os aprovadores configurados ou para os donos dos comandos, as aprovações de plugins usam botões nativos do Slack quando o Slack é o cliente nativo da sessão de origem ou quando as aprovações de plugins são roteadas para uma sessão ou um destino do Slack, com aprovadores tirados da lista de permissões do canal, da lista de permissões de uma conta nomeada ou da rota padrão da conta, e aprovadores apenas de execução não podem aprovar solicitações de plugins, a menos que também sejam aprovadores de plugins.
  • O caminho de configuração é o bloco de aprovações de execução, com enabled, aprovadores opcionais que recorrem aos donos dos comandos, um destino dm, channel ou both, com dm como padrão, e filtros de agente e de sessão; as aprovações de execução nativas exigem enabled como true ou auto e pelo menos um aprovador resolvido, deixá-lo indefinido ou como false desativa a entrega nativa de execução sem desativar as aprovações de plugins nativas, os encaminhamentos compartilhados de execução e de plugins continuam separados e só são suprimidos quando o Slack trata a solicitação nativamente, o comando approve no mesmo chat ainda funciona onde os comandos funcionam, e no Enterprise Grid o espaço de trabalho validado do evento de origem é mantido para o prompt, a DM, o callback do botão e a atualização final, falhando de forma fechada quando a conta instalada na organização não tem esse escopo.

OpenClaw no Slack é o artigo sobre o canal que essas superfícies ampliam, e o comportamento das mensagens do Slack no OpenClaw, o modelo de cartões e prévias em que elas se encaixam.

Por que o texto sempre vai junto

Um gráfico que só existe como bloco desaparece das notificações, dos leitores de tela e de todos os outros canais para onde a sessão é espelhada, e é por isso que a versão determinística em texto não é opcional e que um bloco rejeitado se degrada para esse texto, e não para nada. O guia de aprovações de execução do OpenClaw cobre o modelo de aprovação que esses botões acionam, e as mensagens ricas e aprovações do Telegram no OpenClaw, as superfícies ricas equivalentes no Telegram.

Na Diali

O Slack é um dos canais que a Diali conecta pelo painel, com a configuração do motor gerada e substituída a cada versão, então os gráficos, as tabelas e os prompts de aprovação de um agente hospedado se comportam como descrito aqui, sem configurações para editar à mão. Slack na Diali é o canal na Diali, e a segurança na Diali, a fronteira que se aplica a toda ação que um bot pode executar.

  • Dois gráficos por mensagem; os extras transbordam para mensagens seguintes.
  • Uma tabela que estoura os limites vira texto completo, nunca menos linhas.
  • Os botões de aprovação são a experiência principal; o comando approve é o fallback.
Começar

Pare de ler sobre isso e crie o seu

Configure um agente, escolha um canal e coloque-o para trabalhar dentro do app que você já deixa aberto.