Skava Skava / Wiki

Elementos Personalizados: API

Uma interface de API é um formulário cujos valores preenchidos o Skava envia como JSON para um endereço que você especifica (seu backend). Dessa forma, você pode conectar o Skava de forma segura aos seus próprios sistemas.

i

Você gerencia interfaces de API na Webapp em Elementos Personalizados → ative Interfaces de API. A criação e edição são reservadas para administradores da empresa; interfaces liberadas podem então ser acionadas por todos os membros da empresa.

Configurar uma interface de API

Uma interface consiste em campos de entrada (que formam o JSON), o endereço de destino e a autenticação.

  1. Criar campos: Cada campo recebe uma chave JSON. À direita, você vê em tempo real a visualização JSON, que é enviada ao seu backend exatamente assim.
  2. Endereço (URL): o endereço https:// do seu backend. Apenas endereços HTTPS e acessíveis publicamente são permitidos (veja Segurança abaixo).
  3. Método: POST (padrão), PUT, PATCH ou GET. Com GET, os valores são anexados como parâmetros de consulta em vez de serem enviados no corpo.
  4. Autenticação: Defina o nome do cabeçalho (por exemplo, Authorization) e o prefixo do valor (por exemplo, Bearer ), em seguida, salve o token. Opcionalmente, defina uma data de expiração.
  5. Campos de resposta (opcional): Defina pelo caminho quais valores da resposta do backend devem ser exibidos: por exemplo, order.id ou items[0].sku.
  6. Verifique com Ping e Test Request, depois Release.
Webapp da Skava: aba Campos de uma interface de API. No topo, os valores de contexto incluídos automaticamente (nome do usuário, empresa, projeto …), abaixo os campos personalizados com a chave JSON, à direita a prévia do formulário e a prévia JSON em tempo real.
A aba Campos: cada campo recebe uma chave JSON. No topo, os valores de contexto como usuário, empresa e nome do projeto são incluídos automaticamente. À direita você vê o formulário e o JSON em tempo real: exatamente o que é enviado para o seu backend.
Webapp da Skava: aba Endpoint de uma interface de API com campos para URL, método POST, tempo limite, cabeçalho de autenticação, prefixo de valor Bearer e a entrada para o token criptografado.
A aba Endpoint: endereço de destino (apenas HTTPS), método, tempo limite e cabeçalho de autenticação mais prefixo de valor. O token é armazenado criptografado e nunca entregue aos clientes.
Webapp da Skava: Aba Response de uma interface de API. Um campo de resposta com a chave JSON Success está configurado; à direita, uma prévia de como o resultado aparecerá no chat.
A aba Response (opcional): defina por meio de caminho quais valores da resposta do backend serão exibidos. À direita, a prévia do cartão de resultado conforme aparecerá posteriormente no chat.

Armazenar o token com segurança

O token é armazenado criptografado e nunca retornado aos clientes: o aplicativo mostra apenas se um token está definido e quando expira. Ao enviar, o Skava o anexa no lado do servidor ao cabeçalho configurado. Se você definir uma data de expiração, o Skava recusará a chamada após a expiração e solicitará a renovação do token.

Testes: Ping e Test Request

  • Ping : uma verificação leve de acessibilidade. Verifica apenas se o seu endereço responde e não envia token ou dados de formulário no processo. Mostra acessibilidade, status e tempo de resposta. Ideal como primeiro passo.
  • Test Request : o teste real: envia dados de amostra incluindo token para o seu endereço e mostra a resposta completa, bem como os campos de resposta extraídos.

Como administrador, você pode executar ambos enquanto ainda estiver no modo de rascunho para verificar a integração antes da liberação.

Webapp da Skava: Aba Teste de uma interface de API com os botões Ping e Test Request, o resultado Status 200 OK, o tempo de resposta e a resposta JSON completa do backend.
A aba Teste: Ping e Test Request lado a lado. Aqui com status 200, tempo de resposta e a resposta completa do backend como JSON.

Rascunho e Publicação

Cada interface começa como um rascunho e pode ser editada livremente. Quando tudo estiver pronto, você a publica com Publicar.

!

Interfaces publicadas são imutáveis. Isso é intencional: assim, após a publicação, ninguém pode secretamente alterar o endereço de destino ou o token. Se quiser fazer alguma alteração, crie uma nova versão.

Segurança

i

Para evitar o uso indevido da interface, regras estritas se aplicam: apenas endereços HTTPS são permitidos, e o endereço deve apontar para um endereço de destino público: endereços internos (por exemplo, localhost, redes privadas ou metadados de nuvem) são rejeitados. O Skava verifica isso em cada chamada, conecta-se exatamente ao endereço verificado, não segue redirecionamentos e limita o tempo de espera e o tamanho da resposta.

Como a equipe utiliza uma interface lançada

Uma vez que uma interface é lançada, todos os membros da empresa podem ativá-la diretamente de um chat: sem necessidade de editor. O fluxo é o mesmo que com modelos de documentos: selecionar, preencher, enviar.

  1. No chat, toque em Mais na parte inferior e escolha Elemento Personalizado.
  2. Selecione o modelo ou interface desejado na lista.
  3. Preencha o formulário e Envie.
  4. O resultado aparece como um cartão no chat: visível para todos no chat.
Webapp da Skava: o menu de mais no campo de entrada do chat com as opções Anexar arquivo, Foto/Vídeo, Criar tarefa, Criar item de serviço e Elemento personalizado.
Passo 1: via o menu Plus no chat, escolha Elemento personalizado.
Webapp da Skava: diálogo Escolher elemento personalizado acima do chat, oferecendo a ação de API lançada Pedido de material; cartões de resultado já enviados em segundo plano.
Passo 2: selecione o modelo ou interface desejado: aqui a ação de API Pedido de material.
Skava webapp: formulário preenchível da ação da API Pedido de materiais com os campos número do artigo, descrição, quantidade, unidade, data de entrega solicitada e observação, além da nota sobre os valores incluídos automaticamente.
Passo 3: preencha o formulário. A nota na parte inferior mostra quais valores são incluídos automaticamente.
Skava webapp: cartão de resultado da ação da API Pedido de materiais no chat com status 200, os valores inseridos e a resposta do backend (número do pedido, status, data de entrega), além dos dados brutos expansíveis.
Passo 4: o cartão de resultado no chat, com as entradas e a resposta do seu backend.

Deixe a IA criar um elemento

Como administrador da empresa, você não precisa usar o editor. Peça ao assistente do Skava no chat, por exemplo: "crie um formulário de pedido para meu catálogo com quantidade e endereço de entrega". Ele cria um rascunho com base nisso, pode alterar campos um por um depois e conhece seu catálogo de artigos carregado: para pedidos, ele sugere o seletor de produtos em vez de um campo de texto para o número do artigo.

O que ele também pode definir: ponto de extremidade e método, bem como o público ("apenas membros da empresa" ou "também pessoas externas no mesmo chat"). Para o público, ele pergunta primeiro em vez de apenas definir, pois isso decide quem pode executar algo de fora.

O que ele explicitamente não toca: o token de acesso. Ele nunca pede um e nunca aceita um, pois as mensagens do chat são armazenadas. Você o insere você mesmo no editor, caso contrário nenhuma chamada é enviada. E ele não pode publicar: o último passo fica com você, para que nada fique visível aos clientes sem verificação.

Quem pode executá-lo

A aba "Ponto de extremidade" indica quem pode usar um elemento. O padrão são os membros da sua empresa. A segunda configuração o abre para pessoas externas, mas apenas em um chat onde alguém da sua empresa também esteja presente: exatamente o caso para o qual foi projetado, o cliente fazendo um pedido com você. Quando sua empresa sai do chat, a permissão termina automaticamente.

Produtos do seu próprio catálogo

Depois de fazer o upload do seu catálogo de artigos, o construtor oferece um bloco de seleção de produtos. Não há opções para manter: a lista é o seu catálogo. A pessoa que faz o pedido pesquisa nela, vê a imagem, o nome e o número do artigo, e o seu backend recebe o número do artigo. O Skava rejeita um número que não esteja no seu catálogo. Para a quantidade, coloque um campo numérico normal ao lado.

Defina o cartão você mesmo

O seu backend decide o que o cartão diz. O Skava verifica apenas a forma, o tamanho e a segurança, nunca o significado: ele não conhece estados de pedido nem nomes de campo. Para fazer isso, responda com um objeto card:

{"card": {"v": 1, "title": "Order 10001", "state": "pending", "status_text": "Being picked", "fields": [{"label": "Tracking number", "value": "DPD123456789"}]}}

  • v deve ser o inteiro 1. Sem ele, a resposta não conta como um cartão e o mapeamento de resposta configurado no elemento é aplicado.
  • state é apenas cor e ícone: ok, pending, warn ou error. Tudo o que carrega significado vai para status_text como texto livre.
  • fields é uma lista de rótulo e valor, com no máximo 20 entradas. Valores muito longos são encurtados em vez de rejeitados, para que um pedido nunca falhe por causa de um detalhe.

As entradas do usuário pertencem ao servidor: permanecem inalteradas, independentemente do que seu backend envie. Elas são o registro no chat do que foi realmente enviado.

Relatar o status posteriormente

Quando o elemento é executado, o Skava envia dois valores extras: callback_url e callback_token. Relate um novo estado lá posteriormente e um novo cartão aparecerá no chat, também no telefone, enquanto alguém estiver olhando. O anterior permanece, para que seja legível qual estado foi relatado. Envie o mesmo objeto card como acima, via POST com o cabeçalho Authorization: Bearer <callback_token>. Três valores opcionais vão junto com o cartão:

  • seq: seu próprio contador. Um relatório com um valor menor ou igual é descartado, para que dois relatórios não possam se ultrapassar.
  • final: encerra a interação. O token torna-se inválido e o cartão fica finalizado.
  • notify: defina como false para publicar o cartão silenciosamente, sem contagem de não lidos e sem notificação. Para etapas intermediárias que não devem acordar ninguém. Sem isso, o cartão é uma mensagem perfeitamente normal.

Uma interação pode publicar no máximo 50 cartões. O mesmo relatório duas vezes não produz um segundo cartão.

O Skava responde com 200 e uma lista de hints se algo foi encurtado ou descartado, e com 422 se o cartão foi inutilizável. Uma interação aceita relatórios por 90 dias.

Os cartões são publicados pelo remetente do sistema da Skava, não pela pessoa que executou o elemento e não por uma conta da sua própria empresa. O título do cartão indica qual sistema está escrevendo.

Um exemplo completo para copiar está no repositório em example_order_server/ e é executado em api.skava.io.

Relacionado

Você quer criar um modelo de documento preenchível? Veja Elementos Personalizados: Documentos.

Perguntas Frequentes

O que é uma interface de API no Skava?

Um formulário cujos valores preenchidos o Skava envia como JSON para um endereço que você especifica (seu backend): útil para conectar o Skava aos seus próprios sistemas.

Quem tem permissão para criar e acionar interfaces de API?

A criação e edição são reservadas para administradores da empresa. Uma interface liberada pode então ser acionada por todos os membros da empresa.

Qual é a diferença entre "Ping" e "Test Request"?

Ping verifica apenas se o endereço é acessível: sem token e sem dados. Test Request envia dados de exemplo incluindo o token e mostra a resposta completa.

O meu token de API é seguro?

Sim. O token é armazenado criptografado e nunca é entregue aos clientes. A aplicação apenas indica se um token está definido e quando expira.

Quais endereços são permitidos como pontos de extremidade?

Apenas endereços https:// acessíveis publicamente. Alvos internos como localhost, redes privadas ou metadados de nuvem são rejeitados: isso protege contra o uso indevido da interface.

Por que não posso mais alterar uma interface lançada?

As interfaces lançadas são intencionalmente imutáveis: assim, após o lançamento, ninguém pode trocar o endereço de destino ou o token. Para alterações, você cria uma nova versão.