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
- No n8n, vá em Credentials
- Clique em New Credential
- Selecione HTTP Request Authentication
- Escolha Bearer Token Authentication
- Cole seu token JWT no campo Token
- 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
limitpara 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 }}"
}
}
]
}