Visão rápida

Endpoints públicos e autenticados para ler, atualizar e resetar a configuração de followup do seu host. Foque no essencial: headers, payloads aceitos e respostas esperadas.

Autenticação

Envie sempre o header:

Authorization: Bearer <seu-token>

Base URL (exemplo): https://api.exemplo.com


GET /api/externalAPIs/public/followup/getFollowupConfig

  • Objetivo: obter a configuração de followup normalizada do host autenticado, incluindo triggers e webhookData.
  • Auth: Bearer Token.

Exemplo (curl)

curl -X GET "https://api.exemplo.com/api/externalAPIs/public/followup/getFollowupConfig" \
  -H "Authorization: Bearer SEU_TOKEN"

Resposta 200

{
  "triggers": {
    "idle": {
      "active": true,
      "auto": false,
      "minutes": 15,
      "max_notifications": 3,
      "hits": [
        {
          "hit": 0,
          "generalInstructions": "Retome a conversa com o usuário",
          "dialogueInserts": "",
          "smartDecisionInstructions": "NUNCA envie uma mensagem repetida",
          "agentCalling": [
            { "schemaName": "public", "agentName": "buscar_produtos", "payload": {} }
          ],
          "minutes": 15
        }
      ]
    },
    "schedule": {
      "active": false,
      "max_notifications": 0,
      "hits": []
    },
    "conditionalAgents": {
      "active": false,
      "preCheck": [],
      "decisions": []
    }
  },
  "webhookData": {
    "active": true,
    "url": "https://minha.api/webhooks/followup",
    "method": "POST",
    "headers": { "X-Custom-Auth": "abc123" },
    "includeReasoningResponse": true,
    "includeMessage": true,
    "includeConversationData": true,
    "timeout": 30000,
    "retries": 1
  }
}

Erros

  • 401: token inválido ou ausente
  • 404: configuração de followup não encontrada
  • 500: erro interno

POST /api/externalAPIs/public/followup/updateFollowupConfig

  • Objetivo: atualizar a configuração de followup do host (ativação e triggers).
  • Auth: Bearer Token.

Body (mínimo)

{
  "followup_active": true,
  "triggers": {
    "idle": { "active": true, "minutes": 30, "max_notifications": 3 }
  }
}

Body (avançado)

{
  "followup_active": true,
  "triggers": {
    "idle": {
      "active": true,
      "auto": false,
      "minutes": 30,
      "max_notifications": 5,
      "hits": [
        {
          "hit": 0,
          "generalInstructions": "Primeira tentativa - seja sutil",
          "smartDecisionInstructions": "Envie apenas se houve interesse",
          "agentCalling": [
            { "schemaName": "public", "agentName": "verificar_interesse", "payload": {} }
          ],
          "minutes": 30
        },
        {
          "hit": 1,
          "generalInstructions": "Segunda tentativa - ofereça ajuda específica",
          "minutes": 120
        }
      ]
    },
    "conditionalAgents": {
      "active": true,
      "preCheck": [
        { "schemaName": "public", "agentName": "verificar_contexto", "payload": {} }
      ],
      "decisions": [
        {
          "description": "Quando o usuário pediu ajuda",
          "content": "Vamos continuar nossa conversa! Como posso ajudar?",
          "agents": [
            { "schemaName": "public", "agentName": "assistente_vendas", "payload": {} }
          ]
        }
      ]
    }
  },
  "webhookData": {
    "active": true,
    "url": "https://minha.api/webhooks/followup",
    "method": "POST",
    "headers": { "Authorization": "Bearer XYZ" },
    "includeReasoningResponse": true,
    "includeMessage": true,
    "includeConversationData": true,
    "timeout": 45000,
    "retries": 2
  }
}

Restrições e validações

  • minutes (idle e hits): 1 a 10080.
  • max_notifications: 1 a 50.
  • webhookData.url: URL absoluta válida; obrigatória quando webhookData.active = true.
  • webhookData.method: GET, POST, PUT, PATCH, DELETE (padrão: POST).
  • webhookData.timeout: 1000 a 300000 ms (padrão: 30000).
  • webhookData.retries: 0 a 5 (padrão: 1).

Exemplo (curl)

curl -X POST "https://api.exemplo.com/api/externalAPIs/public/followup/updateFollowupConfig" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "followup_active": true,
    "triggers": { "idle": { "active": true, "minutes": 60, "max_notifications": 2 } },
    "webhookData": { "active": true, "url": "https://minha.api/webhooks/followup", "timeout": 30000, "retries": 1 }
  }'

Resposta 200

{
  "message": "Configuração de followup atualizada com sucesso",
  "updated_at": "2024-01-01T00:00:00.000Z",
  "config": {
    "triggers": { /* configuração normalizada aplicada quando disponível */ }
  }
}

Erros

  • 400: dados inválidos
  • 401: não autorizado
  • 404: configuração do host não encontrada
  • 500: erro interno

POST /api/externalAPIs/public/followup/resetFollowupConfig

  • Objetivo: resetar a configuração para os valores padrão (opcionalmente mantendo o followup ativo e customizando minutos/limite).
  • Auth: Bearer Token.

Body (opcional)

{
  "keep_active": true,
  "custom_minutes": 20,
  "custom_max_notifications": 4,
  "reset_webhook": true
}

Exemplo (curl)

curl -X POST "https://api.exemplo.com/api/externalAPIs/public/followup/resetFollowupConfig" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "keep_active": true, "custom_minutes": 45, "custom_max_notifications": 3, "reset_webhook": true }'

Resposta 200

{
  "message": "Configuração de followup resetada com sucesso",
  "config": { "triggers": { /* defaults aplicados */ } },
  "followup_active": true,
  "webhook_reset": true,
  "updated_at": "2024-01-01T00:00:00.000Z"
}

Restrições e validações

  • custom_minutes: 1 a 10080.
  • custom_max_notifications: 1 a 50.
  • reset_webhook: quando false, o webhookData atual é preservado.

Erros

  • 401: não autorizado
  • 404: configuração do host não encontrada
  • 500: erro interno

Notas de segurança (essencial)

  • Use sempre Bearer Token válido e escopado ao host; não compartilhe seu token.
  • Envie apenas campos documentados; respostas não incluem dados sensíveis.
  • Mensagens de erro são objetivas por segurança (sem detalhes internos).

Última atualização: Setembro 2025 · Versão: 3.2