Integração com n8n

Este guia fornece exemplos práticos de como integrar a API iMobileAI com o n8n para automatizar tarefas comuns.

Dica: Mantenha o token JWT em uma credencial do n8n para reutilizá-lo em diferentes workflows.

Autenticação no n8n

1. Configurar Credenciais

  1. No n8n, vá em Credentials
  2. Clique em New Credential
  3. Selecione HTTP Request Authentication
  4. Escolha Bearer Token Authentication
  5. Cole seu token JWT no campo Token
  6. Salve as credenciais

2. Usar Credenciais em Requisições

{
    "node": "HTTP Request",
    "parameters": {
        "authentication": "seu_nome_de_credencial",
        "method": "GET",
        "url": "https://api.imobileai.com.br/products"
    }
}

Exemplos de Workflows

1. Sincronização de Produtos

Este workflow busca produtos periodicamente e atualiza um sistema externo.

{
    "nodes": [
        {
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "parameters": {
                "interval": [
                    {
                        "field": "minutes",
                        "value": 30
                    }
                ]
            }
        },
        {
            "name": "HTTP Request",
            "type": "n8n-nodes-base.httpRequest",
            "parameters": {
                "authentication": "imobileai_auth",
                "method": "GET",
                "url": "https://api.imobileai.com.br/products",
                "query": {
                    "store_id": 4,
                    "limit": 100
                }
            }
        },
        {
            "name": "Function",
            "type": "n8n-nodes-base.function",
            "parameters": {
                "functionCode": "return items[0].json.data.items.map(product => ({
                    json: {
                        external_id: product.id,
                        name: product.name,
                        price: product.price,
                        stock: product.stock
                    }
                }));"
            }
        }
    ]
}

2. Notificação de Estoque Baixo

Este workflow monitora o estoque e envia alertas quando produtos estão acabando.

{
    "nodes": [
        {
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "parameters": {
                "interval": [
                    {
                        "field": "hours",
                        "value": 1
                    }
                ]
            }
        },
        {
            "name": "HTTP Request",
            "type": "n8n-nodes-base.httpRequest",
            "parameters": {
                "authentication": "imobileai_auth",
                "method": "GET",
                "url": "https://api.imobileai.com.br/products",
                "query": {
                    "store_id": 4,
                    "limit": 100
                }
            }
        },
        {
            "name": "Filter",
            "type": "n8n-nodes-base.filter",
            "parameters": {
                "conditions": {
                    "number": [
                        {
                            "value1": "={{ $json.stock }}",
                            "operation": "smaller",
                            "value2": 5
                        }
                    ]
                }
            }
        },
        {
            "name": "Send Email",
            "type": "n8n-nodes-base.emailSend",
            "parameters": {
                "fromEmail": "sistema@sualoja.com",
                "toEmail": "gerente@sualoja.com",
                "subject": "Alerta de Estoque Baixo",
                "text": "=Produtos com estoque baixo:\n\n{{ $json.name }} - Quantidade: {{ $json.stock }}"
            }
        }
    ]
}

3. Atualização em Lote de Preços

Este workflow atualiza preços de produtos baseado em uma planilha.

{
    "nodes": [
        {
            "name": "Read Excel",
            "type": "n8n-nodes-base.spreadsheetFile",
            "parameters": {
                "operation": "read",
                "filePath": "C:/precos.xlsx",
                "options": {
                    "headerRow": true
                }
            }
        },
        {
            "name": "Loop",
            "type": "n8n-nodes-base.splitInBatches",
            "parameters": {
                "batchSize": 1
            }
        },
        {
            "name": "HTTP Request",
            "type": "n8n-nodes-base.httpRequest",
            "parameters": {
                "authentication": "imobileai_auth",
                "method": "PUT",
                "url": "=https://api.imobileai.com.br/products/{{ $json.id }}",
                "body": {
                    "price": "={{ $json.new_price }}"
                }
            }
        }
    ]
}

Boas Práticas

  • Use o parâmetro limit para controlar o tamanho das respostas
  • Implemente tratamento de erros usando nós "Error Trigger"
  • Armazene dados sensíveis (tokens, senhas) em credenciais
  • Use webhooks para receber atualizações em tempo real
  • Documente seus workflows com comentários

Tratamento de Erros

Exemplo de como tratar erros em workflows:

{
    "nodes": [
        {
            "name": "HTTP Request",
            "type": "n8n-nodes-base.httpRequest",
            "parameters": {
                "authentication": "imobileai_auth",
                "method": "GET",
                "url": "https://api.imobileai.com.br/products"
            }
        },
        {
            "name": "Error Trigger",
            "type": "n8n-nodes-base.errorTrigger",
            "parameters": {}
        },
        {
            "name": "Send Error Email",
            "type": "n8n-nodes-base.emailSend",
            "parameters": {
                "fromEmail": "sistema@sualoja.com",
                "toEmail": "suporte@sualoja.com",
                "subject": "Erro no Workflow",
                "text": "=Erro: {{ $error.message }}\n\nDetalhes: {{ $error.description }}"
            }
        }
    ]
}