Ajuda

Guia simples para começar a usar o Selfint.

Esta página resume como pensar a plataforma no dia a dia: começar pequeno, testar cedo, acompanhar execuções e manter as integrações organizadas.

Como começar

1

Escolha um processo com valor claro

Comece por algo repetitivo, com impacto real e fácil de validar, como importar um ficheiro ou sincronizar dados entre dois sistemas.

2

Defina a entrada

Pense no que deve iniciar o processo: um webhook, uma agenda, um email, uma fila ou um pedido de API.

3

Prepare os dados

Use mappings e regras simples para garantir que a saída fica pronta para o sistema de destino.

4

Teste com exemplos reais

Antes de ativar, valide o comportamento com payloads ou ficheiros parecidos com os que existem em produção.

Dicas úteis

Estas recomendações ajudam a evitar retrabalho e incidentes desnecessários.

Dê nomes claros

  • Use nomes que expliquem o objetivo do workflow.
  • Faça o mesmo com conexões, credenciais e presets de ficheiros.

Separe responsabilidades

  • Evite workflows demasiado grandes quando puder dividir por etapas.
  • Uma integração clara é mais fácil de operar e corrigir.

Acompanhe as execuções

  • Verifique os estados com regularidade.
  • Use filas de erro e reprocessamento de forma controlada.

Use AI com objetivo claro

  • Peça à AI para tarefas concretas como extrair campos, classificar ou estruturar resposta.
  • Quando a decisão for sensível, use guard rails e revisão humana.

Exemplo prático: usar dados de outro step (nao anterior direto)

No step JavaScript, pode buscar dados de qualquer step anterior usando expressoes como ${steps.LIBAX_COMPANY.output.results.0.name}, sem depender apenas do passo imediatamente anterior.

Exemplo de configuracao (resumo):

{
  "value": "${steps.LIBAX_COMPANY.input}",
  "context": {
    "companyName": "${steps.LIBAX_COMPANY.output.results.0.name}"
  },
  "expression": {
    "language": "javascript",
    "code": "const contract = value && typeof value === 'object' ? { ...value } : {};\nconst name = context?.configContext?.companyName == null ? null : String(context.configContext.companyName).trim();\nif (name) contract.companyName = name;\nreturn contract;"
  }
}

Pontos críticos

  • Use indexacao por ponto: results.0.name (em vez de results[0].name).
  • Dentro do script, os campos de context sao lidos em context.configContext.
  • value deve apontar para o payload de trabalho que queres transformar.

Resultado esperado: o output do step passa a incluir, por exemplo, companyName preenchido com o valor vindo do step referenciado.

Nuance importante no estado atual

  • O upload, download e reprocessamento de ficheiros existem no backend e com permissões próprias.
  • Os presets do ecrã de file processing estão hoje guardados no browser do utilizador, em vez de ficarem centralizados no servidor.
  • Se o objetivo for uso partilhado por equipa, convém validar esta diferença antes de contar com esses presets como configuração global.

Perguntas frequentes

Preciso de ser técnico para usar?

Não para perceber o processo e operar o dia a dia. Para configurações mais avançadas pode ser útil apoio de administração ou desenvolvimento.

O Selfint só serve para APIs?

Não. Também trabalha com ficheiros, agendas, webhooks, email, filas internas e mensagens em brokers.

O que acontece quando algo falha?

As execuções ficam registadas, a falha pode ser analisada e muitos casos permitem reprocessamento ou isolamento em DLQ.

Consigo controlar quem vê o quê?

Sim. O produto tem permissões por função, separação por cliente e opções adicionais para parceiros e SSO.

As credenciais ficam seguras?

O Selfint centraliza credenciais e conexões, evitando expor segredos em vários pontos de configuração.

Dá para adaptar à minha realidade?

Sim. A plataforma suporta regras por cliente, workflows diferentes e conectividade para vários tipos de integração.

Se surgir um problema, veja primeiro

  • Se a trigger certa está ativa.
  • Se a conexão e a credencial usadas continuam válidas.
  • Se a execução falhou num passo específico e qual foi a mensagem de erro.
  • Se existe algo pendente numa fila ou DLQ.
  • Se o cliente ou o plano atingiu algum limite de uso.