AutomationFlowsData & Sheets › Automação Master: Pedidos & Reservas (web & App) - Evolution Multitenant

Automação Master: Pedidos & Reservas (web & App) - Evolution Multitenant

Automação Master: Pedidos & Reservas (Web & App) - Evolution MultiTenant. Uses httpRequest, supabase. Webhook trigger; 14 nodes.

Webhook trigger★★★★☆ complexity14 nodesHTTP RequestSupabase
Data & Sheets Trigger: Webhook Nodes: 14 Complexity: ★★★★☆ Added:

This workflow follows the HTTP Request → Supabase recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Automa\u00e7\u00e3o Master: Pedidos & Reservas (Web & App) - Evolution MultiTenant",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "0d65548d-5254-441e-ba4b-d5d699a99de0",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -1264,
        816
      ],
      "id": "df679d04-c697-4e30-9d53-611400fabb35",
      "name": "Webhook Entregas"
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.body.order_type }}",
              "value2": "local"
            }
          ]
        },
        "options": {}
      },
      "id": "7bc8f956-27e7-48c1-8bf7-c479be04cfa1",
      "name": "\u00c9 Pedido do Sal\u00e3o/Mesa?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.1,
      "position": [
        -1008,
        816
      ]
    },
    {
      "parameters": {
        "dataType": "string",
        "value1": "={{ $json.body.status_novo }}",
        "rules": {
          "rules": [
            {
              "value2": "preparing"
            },
            {
              "value2": "delivered"
            }
          ]
        }
      },
      "id": "093d2b62-7459-4586-b136-c4c1415d441e",
      "name": "Status do Pedido Local",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 2,
      "position": [
        -768,
        672
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.customer_phone.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Ol\u00e1 {{$json.body.cliente_nome}}! Seu pedido da comanda {{$json.body.comanda_numero}} est\u00e1 EM PREPARO e logo ir\u00e1 para a sua mesa/entrega! \ud83c\udf55\"\n  }\n}",
        "options": {}
      },
      "id": "bc60be15-54e1-4dc8-b03b-fca9f5765591",
      "name": "WhatsApp Preparando (Local)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        560
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.customer_phone.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Opa {{$json.body.cliente_nome}} \ud83c\udf89. Seu pedido da comanda {{$json.body.comanda_numero}} est\u00e1 PRONTO / FOI ENTREGUE! Bom apetite!\"\n  }\n}",
        "options": {}
      },
      "id": "4cccc261-ab36-4937-a6d1-db1f9b7904a5",
      "name": "WhatsApp Entregue (Local)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        768
      ]
    },
    {
      "parameters": {
        "dataType": "string",
        "value1": "={{ $json.body.status_novo }}",
        "rules": {
          "rules": [
            {
              "value2": "dispatched"
            },
            {
              "value2": "delivered"
            }
          ]
        }
      },
      "id": "37d852db-28cc-4d56-bd81-dbece36c43e7",
      "name": "Status do Pedido Delivery",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 2,
      "position": [
        -768,
        1072
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.customer_phone.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Ol\u00e1 {{$json.body.cliente_nome}}! \ud83d\udef5 O motoboy acabou de sair com sua entrega na comanda {{$json.body.comanda_number}}!\\n\\nO valor total \u00e9 *R$ {{$json.body.total_amount}}*.\\nVoc\u00ea escolheu pagar via *{{$json.body.payment_method}}*.\\n\\nFique de olho no port\u00e3o! \ud83d\udc40\"\n  }\n}",
        "options": {}
      },
      "id": "a293b94f-b44a-44e3-ba35-a212db728458",
      "name": "WhatsApp Dispatched (Delivery)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        960
      ]
    },
    {
      "parameters": {
        "operation": "insert"
      },
      "id": "a0c0e814-8c1c-4e0b-93e9-e96a04b0acb2",
      "name": "Supabase - Inserir Pagamento Autom\u00e1tico",
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -512,
        1168
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "supa-agendamentos",
        "options": {}
      },
      "id": "252fd62b-40f9-4e3d-8cb7-b31b8351219d",
      "name": "Webhook Supabase (Reservas)",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        -1264,
        1520
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.body.record.telefone_cliente }}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "id": "673398be-8c84-4b69-a89c-293cfe9130ac",
      "name": "Tem Telefone na Reserva?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        -1008,
        1520
      ]
    },
    {
      "parameters": {
        "dataType": "string",
        "value1": "={{ $json.body.record.status }}",
        "rules": {
          "rules": [
            {
              "value2": "pendente"
            },
            {
              "value2": "confirmada"
            },
            {
              "value2": "cancelada"
            }
          ]
        }
      },
      "id": "42c0c8ca-8a47-423a-8797-d8cc7b8729b1",
      "name": "Status da Reserva",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 1,
      "position": [
        -768,
        1488
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.record.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.record.telefone_cliente.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Ol\u00e1 {{$json.body.record.nome_cliente}}! Restaurante informando: *Sua solicita\u00e7\u00e3o de mesa para {{$json.body.record.quantidade_pessoas}} pessoas est\u00e1 em an\u00e1lise.* Avisaremos assim que for confirmada! \ud83d\udd52\"\n  }\n}",
        "options": {}
      },
      "id": "nova-reserva-id-1234",
      "name": "WhatsApp Reserva (Nova)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        1280
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.record.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.record.telefone_cliente.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Ol\u00e1 {{$json.body.record.nome_cliente}}! \u2705 Sua mesa para {{$json.body.record.quantidade_pessoas}} pessoas no dia {{new Date($json.body.record.data_hora_reserva).toLocaleString('pt-BR')}} foi confirmada! Te esperamos.\"\n  }\n}",
        "options": {}
      },
      "id": "51e37a31-d059-4c39-9de4-7d09a4356d65",
      "name": "WhatsApp Reserva (Confirmada)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        1450
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "=https://evolution-api-production-9ac1.up.railway.app/message/sendText/{{$json.body.record.company_id}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[REDACTED_SECRET]"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"number\": \"55{{$json.body.record.telefone_cliente.replace(/\\D/g, '')}}\",\n  \"textMessage\": {\n    \"text\": \"Ol\u00e1 {{$json.body.record.nome_cliente}}, infelizmente sua reserva precisou ser cancelada. \ud83d\ude14 Entre em contato para mais detalhes.\"\n  }\n}",
        "options": {}
      },
      "id": "a80c1f5b-27f4-445a-9297-542adfaa2e1f",
      "name": "WhatsApp Reserva (Cancelada)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        -512,
        1620
      ]
    }
  ],
  "connections": {
    "Webhook Entregas": {
      "main": [
        [
          {
            "node": "\u00c9 Pedido do Sal\u00e3o/Mesa?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u00c9 Pedido do Sal\u00e3o/Mesa?": {
      "main": [
        [
          {
            "node": "Status do Pedido Local",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Status do Pedido Delivery",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Status do Pedido Local": {
      "main": [
        [
          {
            "node": "WhatsApp Preparando (Local)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "WhatsApp Entregue (Local)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Status do Pedido Delivery": {
      "main": [
        [
          {
            "node": "WhatsApp Dispatched (Delivery)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Supabase - Inserir Pagamento Autom\u00e1tico",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Supabase (Reservas)": {
      "main": [
        [
          {
            "node": "Tem Telefone na Reserva?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tem Telefone na Reserva?": {
      "main": [
        [
          {
            "node": "Status da Reserva",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Status da Reserva": {
      "main": [
        [
          {
            "node": "WhatsApp Reserva (Nova)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "WhatsApp Reserva (Confirmada)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "WhatsApp Reserva (Cancelada)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automação Master: Pedidos & Reservas (Web & App) - Evolution MultiTenant. Uses httpRequest, supabase. Webhook trigger; 14 nodes.

Source: https://github.com/efcunha/restaurante-supabase/blob/b18f1df19e22cb89f6a151eb46e90f75b8846399/docs/recovered/n8n_agendamentos_reservas.recovered.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

2. Refresh Pipedrive tokens. Uses stopAndError, stickyNote, supabase, httpRequest. Webhook trigger; 29 nodes.

Stop And Error, Supabase, HTTP Request
Data & Sheets

This workflow provides an OAuth 2.0 auth token refresh process for better control. Developers can utilize it as an alternative to n8n's built-in OAuth flow to achieve improved control and visibility.

Stop And Error, Supabase, HTTP Request
Data & Sheets

Buildnbloom - Typeform to Tier 1 Call. Uses supabase, airtable, httpRequest. Webhook trigger; 17 nodes.

Supabase, Airtable, HTTP Request
Data & Sheets

Ai Assistant Workflow. Uses supabase, httpRequest, emailSend. Webhook trigger; 14 nodes.

Supabase, HTTP Request, Email Send
Data & Sheets

Barbearia SaaS Pro. Uses supabase, httpRequest, chatwoot. Webhook trigger; 10 nodes.

Supabase, HTTP Request, Chatwoot