Sua primeira automaçãoEtapa 8 de 8

Chame de outro sistema

Um endpoint de API deixa qualquer outro sistema — um backend, uma macro de planilha, um job de CI — rodar o seu script publicado com uma requisição HTTP e receber a saída como JSON. Nesta última lição da trilha você ativa o endpoint do daily-report, cria um token, faz a chamada e encontra essa chamada na página Execuções.

O que você vai aprender
  • Ativar um endpoint pela aba Gatilhos do editor
  • Criar um token e guardá-lo com segurança
  • Chamar o endpoint de forma síncrona e assíncrona
  • Proteger com um limite de chamadas por minuto

Um script, uma URL

Cada script ou flow pode ter um endpoint. Ele fica na aba Gatilhos do item — o mesmo lugar dos agendamentos e eventos — e a página API do projeto lista todos os endpoints do projeto. Como todo gatilho, o endpoint roda a versão publicada, sempre a mais recente: não há versão de API para escolher nem nada para reapontar depois de publicar.

docs-demoCódigohello.pySalvarPublicar
hello.py
1def main(name: str = "world"):2    print(f"saying hello to {name}")3    return {"message": f"Hello, {name}!"}
Gatilhos1
APIAbrir na página da API
Outro sistema inicia este script com uma requisição HTTP — copie a URL ou o curl abaixo.
POST/exec/p_58e3011e/hello
ModoSyncAuthBearerLimite60/minStatus
ChamarSyncAsync
1curl -X POST "$WAISO_URL/exec/p_58e3011e/hello" \2  -H "Authorization: Bearer $WAISO_TOKEN" \3  -H "Content-Type: application/json" \4  -d '{"name":"world"}'
AgendamentosAbrir em Agendamentos
morning_helloDias úteis às 08:00Ativo
Adicionar agendamento
Eventos
Rode este script quando algo acontecer em outro lugar: chega um e-mail, uma linha do banco muda, chega uma mensagem MQTT.Adicionar gatilho de evento
Limites
A aba Gatilhos: o cartão da API com a URL e um curl pronto para copiar, depois agendamentos, eventos e limites.

O endereço é POST /exec/<id-do-projeto>/<caminho> no seu endereço do Waiso (numa instalação própria, no endereço público da API). O id é o id permanente do projeto, não o nome, então renomear o projeto nunca quebra quem chama. O caminho padrão é o caminho da pasta e o nome do script — aqui, daily-report.

Ative e chame

  1. Ative o endpoint

    Abra o daily-report e a aba Gatilhos. O cartão da API diz Ainda não está na API; clique em Ativar endpoint. Ele começa como POST, síncrono, protegido por token, com as entradas lidas do corpo JSON. Configurar muda qualquer uma dessas opções. (O Ativar endpoint do aviso de publicação faz o mesmo.)

  2. Crie um token

    Em Chamar, siga Criar token: as configurações da página API abrem com um novo token para este endpoint. Escolha por quanto tempo ele vale e clique em Gerar token. Copie o token — ele não será exibido de novo. Guarde nos segredos de quem chama como WAISO_TOKEN.

  3. Chame

    Clique em Copiar curl na aba Gatilhos — ele já traz o seu endereço e o id do projeto — e rode num terminal com WAISO_TOKEN definido. O corpo abaixo envia passing = 90.

  4. Encontre a chamada

    Abra Execuções: a nova linha mostra Disparado por API, com o token usado. A página API conta a chamada no uso do endpoint.

Shellcall-daily-report.sh
curl -X POST "https://<your-waiso-address>/exec/<project-id>/daily-report" \
  -H "Authorization: Bearer $WAISO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"passing":90}'
Saída esperadaSucessoHTTP 200 — a saída da execução está em "output"
{
  "runId": "7c0e5b9a-…",
  "status": "success",
  "flowRunId": null,
  "output": {
    "total": 3,
    "average": 85,
    "passed": 1
  },
  "error": null,
  "errorCode": null,
  "durationMs": 38,
  "totalMs": 112
}

Síncrono ou assíncrono

Um endpoint síncrono espera a execução e responde com a saída — ideal para o que termina em poucos segundos. Ele espera até 30 segundos; depois disso responde 504 com "status": "timeout" e a execução continua. Um endpoint assíncrono responde na hora com 202 e um runId; quem chama consulta /exec/<id-do-projeto>/runs/<runId> até o status ser final.

Endpoints PrivadoSó aparecem aqui scripts publicados pelo editor.
Configurações
Buscar endpoints…Ctrl KTodos 8Ativos 3Inativos 5Todos os tiposScriptsFlowsScraper
hello/helloMétodoPOSTModoSyncAuthBearerStatus
report/daily-reportMétodoPOSTModoAsyncAuthBearerStatus
campaign/campaignMétodoPOSTModoAsyncAuthBearerStatus
greetNão configuradoMétodo—Modo—Auth—Status
counterNão configuradoMétodo—Modo—Auth—Status
approvalNão configuradoMétodo—Modo—Auth—Status
A página API lista todos os endpoints do projeto com método, modo, autenticação e um botão liga/desliga.
Shellcall-async.sh
curl -X POST "https://<your-waiso-address>/exec/<project-id>/daily-report" \
  -H "Authorization: Bearer $WAISO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"passing":90}'
# → 202 {"runId": "…"}; then poll until it finishes:
curl "https://<your-waiso-address>/exec/<project-id>/runs/$RUN_ID" \
  -H "Authorization: Bearer $WAISO_TOKEN"
Status HTTPSignifica
200A execução deu certo; leia output.
202Chamada async aceita (ou um flow esperando aprovação); consulte com o runId.
401Token ausente, inválido, revogado, expirado ou sem permissão para este endpoint; code diz qual.
422O seu script rodou e falhou (lançou erro, estourou o tempo ou foi cancelado); errorCode diz qual. Repetir a mesma chamada falha do mesmo jeito.
429Acima do limite de chamadas por minuto; nenhuma execução começou.
503A plataforma perdeu a execução (nenhum worker disponível); vale tentar de novo.

Tokens e limites

  • Um token chama só os endpoints que ele lista — um endpoint novo exige editar o token para incluí-lo. Prefira um token por chamador, restrito ao que ele chama, assim revogar um nunca quebra os outros.
  • Chamadas por minuto (Gatilhos → Limites): quem passar recebe 429 com o cabeçalho Retry-After e {"code": "rate_limited", "retryAfter": …}; nenhuma execução começa e nada é cobrado.
  • Execuções ao mesmo tempo: as execuções a mais esperam na fila em vez de falhar. Os dois ficam vazios por padrão — aí só vale o limite do seu plano.
8 / 8