Pular para o conteúdo principal
As automações da Dilli permitem capturar webhooks de entrada, validar a carga útil e responder ou chamar outros serviços sem gerenciar servidores.

Como funciona

  • Gatilho: Cada automação tem uma URL única. Aponte ferramentas externas (pagamentos, formulários, envio, etc.) para ela.
  • Validar: Defina regras simples para que cargas úteis ruins sejam interrompidas antes que as ações sejam executadas.
  • Agir: Encadeie chamadas HTTP de saída, ramifique em condições e molde a resposta final que deseja retornar.
  • Responder: Envie de volta uma resposta HTTP limpa (status, cabeçalhos, corpo) para o chamador.

Pausar e retomar

  • Pause uma automação para interromper o processamento temporariamente (útil durante manutenção ou testes).
  • Enquanto pausado, novas solicitações recebem uma resposta de “temporariamente indisponível” e nenhuma ação é executada.
  • Retome para voltar ao processamento normal instantaneamente.

Caixa de entrada e repetição

  • Cada solicitação é registrada em uma Caixa de Entrada com método, caminho, corpo, carimbos de data/hora e se foi bem-sucedida.
  • Repita qualquer solicitação passada para testar alterações sem esperar por um evento ao vivo.
  • Os logs permanecem por 30 dias por padrão (opções de retenção dependentes do plano podem ser aplicadas).

Usos comuns

  • Capture webhooks de pagamento ou assinatura e sincronize-os com registros de CRM.
  • Gere redirecionamentos dinâmicos após envios de formulários (por exemplo, rotear para diferentes páginas de agradecimento).
  • Enriqueça os dados recebidos com uma chamada rápida para uma API de terceiros e, em seguida, retorne uma resposta personalizada.
actions:
  - name: "Get Auth Token"
    type: "http_request"
    method: "POST"
    url: "https://api.example.com/token"
    headers:
      Content-Type: "application/x-www-form-urlencoded"
    data:
      auth_type: "DEV"
      grant_type: "password"
      username: "dummy_user"
      password: "dummy_pass"
    set:
      access_token: output.access_token

  - name: "Fetch Destination City Code"
    type: "http_request"
    method: "GET"
    url: "https://api.example.com/cities"
    headers:
      Authorization: "Bearer {{ vars.access_token }}"
    data:
      zipCode: "{{ request.destination.postal_code }}"
    set:
      destination_city_code: output.city_id

  - name: "Generate Shipping Quote"
    type: "http_request"
    method: "POST"
    url: "https://api.example.com/shipping"
    headers:
      Authorization: "Bearer {{ vars.access_token }}"
      Content-Type: "application/json"
    data:
      OriginZipCode: "{{ request.origin.postal_code }}"
      OriginCityId: 1234
      DestinationZipCode: "{{ request.destination.postal_code }}"
      DestinationCityId: "{{ vars.destination_city_code }}"
      TotalWeight: 10.0
      InvoiceValue: 999.99
      ReceiverCpfcnpj: "00000000000000"
      ContactName: "Contact Name"
      ContactPhoneNumber: "123456789"
    set:
      carrier_name: "Example Carrier"
      carrier_code: "EXPRESS"
      price: output.total_price
      currency: "BRL"
      type: "ship"
      min_delivery_date: "2025-01-01T00:00:00-0300"
      max_delivery_date: "2025-01-05T00:00:00-0300"
      phone_required: true
      reference: "dummy_ref"

Redirecionamento

Se definido, o fluxo redirecionará a solicitação para uma URL específica após a execução de todas as ações.
redirect:
  to: "https://example.com/success"

Resposta

Defina a estrutura da resposta da automação, incluindo status HTTP, cabeçalhos e corpo.
response:
  status: 200
  headers:
    Content-Type: "application/json"
    X-Powered-By: "Dilli Studio"
  body:
    rates:
      - name: "{{ vars.carrier_name }}"
        code: "{{ vars.carrier_code }}"
        price: "{{ vars.price }}"
        currency: "{{ vars.currency }}"
        type: "{{ vars.type }}"
        min_delivery_date: "{{ vars.min_delivery_date }}"
        max_delivery_date: "{{ vars.max_delivery_date }}"
        phone_required: true
        reference: "{{ vars.reference }}"