AutomationFlowsE-commerce › Automate E-commerce Order Processing with Email Notifications & Webhooks

Automate E-commerce Order Processing with Email Notifications & Webhooks

ByPhilanthropEAK Automation @philanthropeak on n8n.io

Small online store owners, new entrepreneurs, and anyone getting started with e-commerce automation. Perfect for beginners who want to automate their order process without complexity or additional costs. Ideal for stores using Shopify, WooCommerce, Etsy, or any platform that…

Webhook trigger★★★★☆ complexity17 nodesEmail Send
E-commerce Trigger: Webhook Nodes: 17 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7518 — we link there as the canonical source.

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": "Simple order confirmation and customer notification workflow for new e-commerce orders",
  "tags": [
    {
      "id": "ecommerce",
      "name": "E-commerce",
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-01T00:00:00.000Z"
    },
    {
      "id": "beginner-friendly",
      "name": "Beginner Friendly",
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-01T00:00:00.000Z"
    },
    {
      "id": "order-automation",
      "name": "Order Automation",
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-01T00:00:00.000Z"
    }
  ],
  "nodes": [
    {
      "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "name": "New Order Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        240,
        300
      ],
      "parameters": {
        "path": "new-order",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "b2c3d4e5-f6g7-8901-2345-678901bcdefg",
      "name": "Workflow Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        100
      ],
      "parameters": {
        "color": 4,
        "width": 432,
        "height": 464,
        "content": "## \ud83d\uded2 Simple E-commerce Order Automation\n\n**What this workflow does:**\nAutomatically processes new e-commerce orders by sending confirmation emails to customers and notification emails to your team.\n\n**How it works:**\n1. Receives new order data via webhook (from Shopify, WooCommerce, etc.)\n2. Validates the order information\n3. Sends a professional order confirmation email to the customer\n4. Sends an order notification email to your team\n5. Logs the order details for record keeping\n6. Responds back to confirm successful processing\n\n**Perfect for:**\n- Small online stores getting started\n- Anyone wanting basic order automation\n- Businesses using free email services\n- Users new to n8n and automation\n\n**What you need:**\n- An e-commerce platform (Shopify, WooCommerce, Etsy, etc.)\n- Gmail account or any SMTP email service\n- 5 minutes to set up the webhook\n\n**Free to use:**\n- Uses built-in n8n nodes only\n- Works with free Gmail accounts\n- No paid API services required\n- Simple setup, no complex configurations"
      },
      "typeVersion": 1
    },
    {
      "id": "c3d4e5f6-g7h8-9012-3456-789012cdefgh",
      "name": "Store Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        300
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "STORE_NAME",
              "name": "STORE_NAME",
              "type": "string",
              "value": "Your Store Name"
            },
            {
              "id": "STORE_EMAIL",
              "name": "STORE_EMAIL",
              "type": "string",
              "value": "user@example.com"
            },
            {
              "id": "SUPPORT_EMAIL",
              "name": "SUPPORT_EMAIL",
              "type": "string",
              "value": "user@example.com"
            },
            {
              "id": "STORE_PHONE",
              "name": "STORE_PHONE",
              "type": "string",
              "value": "(555) 123-4567"
            },
            {
              "id": "STORE_WEBSITE",
              "name": "STORE_WEBSITE",
              "type": "string",
              "value": "https://yourstore.com"
            },
            {
              "id": "TEAM_EMAIL",
              "name": "TEAM_EMAIL",
              "type": "string",
              "value": "user@example.com"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "d4e5f6g7-h8i9-0123-4567-890123defghi",
      "name": "Extract Order Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        120
      ],
      "parameters": {
        "width": 280,
        "height": 160,
        "content": "\ud83d\udce6 **Step 1: Extract Order Data**\n\nExtracts key information from the order:\n- Order number and date\n- Customer name and email\n- Items purchased\n- Order total and payment status\n- Shipping address\n\nThis works with most e-commerce platforms."
      },
      "typeVersion": 1
    },
    {
      "id": "e5f6g7h8-i9j0-1234-5678-901234efghij",
      "name": "Extract Order Details",
      "type": "n8n-nodes-base.set",
      "position": [
        720,
        300
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "order_number",
              "name": "order_number",
              "type": "string",
              "value": "={{ $json.order_number || $json.id || $json.order_id || 'N/A' }}"
            },
            {
              "id": "customer_name",
              "name": "customer_name",
              "type": "string",
              "value": "={{ $json.customer?.name || $json.billing_address?.name || $json.customer_name || 'Valued Customer' }}"
            },
            {
              "id": "customer_email",
              "name": "customer_email",
              "type": "string",
              "value": "={{ $json.customer?.email || $json.email || $json.customer_email || '' }}"
            },
            {
              "id": "order_total",
              "name": "order_total",
              "type": "string",
              "value": "={{ $json.total_price || $json.total || $json.amount || '0.00' }}"
            },
            {
              "id": "currency",
              "name": "currency",
              "type": "string",
              "value": "={{ $json.currency || $json.currency_code || 'USD' }}"
            },
            {
              "id": "order_date",
              "name": "order_date",
              "type": "string",
              "value": "={{ $json.created_at || $json.order_date || new Date().toISOString() }}"
            },
            {
              "id": "payment_status",
              "name": "payment_status",
              "type": "string",
              "value": "={{ $json.payment_status || $json.financial_status || 'pending' }}"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "f6g7h8i9-j0k1-2345-6789-012345fghijk",
      "name": "Validation Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        140
      ],
      "parameters": {
        "width": 280,
        "height": 140,
        "content": "\u2705 **Step 2: Validate Order**\n\nChecks if the order has:\n- Valid customer email\n- Order number\n- Order total greater than 0\n\nSkips processing for invalid orders and sends error response."
      },
      "typeVersion": 1
    },
    {
      "id": "g7h8i9j0-k1l2-3456-7890-123456ghijkl",
      "name": "Validate Order Data",
      "type": "n8n-nodes-base.if",
      "position": [
        960,
        300
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "has_email",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.customer_email }}",
              "rightValue": ""
            },
            {
              "id": "has_order_number",
              "operator": {
                "type": "string",
                "operation": "notEqual"
              },
              "leftValue": "={{ $json.order_number }}",
              "rightValue": "N/A"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "h8i9j0k1-l2m3-4567-8901-234567hijklm",
      "name": "Customer Email Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        120
      ],
      "parameters": {
        "width": 280,
        "height": 160,
        "content": "\ud83d\udce7 **Step 3: Send Customer Email**\n\nSends a professional order confirmation email:\n- Order details and summary\n- Thank you message\n- Contact information\n- Next steps (shipping info)\n\nUses your Gmail or SMTP email account."
      },
      "typeVersion": 1
    },
    {
      "id": "i9j0k1l2-m3n4-5678-9012-345678ijklmn",
      "name": "Send Customer Confirmation",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1200,
        260
      ],
      "parameters": {
        "message": "Dear {{ $json.customer_name }},\\n\\nThank you for your order! We're excited to confirm that we've received your order and are preparing it for shipment.\\n\\n\ud83d\udce6 ORDER DETAILS:\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nOrder Number: #{{ $json.order_number }}\\nOrder Date: {{ new Date($json.order_date).toLocaleDateString() }}\\nOrder Total: {{ $json.currency }} {{ $json.order_total }}\\nPayment Status: {{ $json.payment_status }}\\n\\n\ud83d\ude9a WHAT'S NEXT:\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n\u2022 We'll process your order within 1-2 business days\\n\u2022 You'll receive a shipping confirmation email with tracking information\\n\u2022 Estimated delivery: 3-7 business days\\n\\n\ud83d\udcde NEED HELP?\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nIf you have any questions about your order, please don't hesitate to contact us:\\n\\nEmail: {{ $('Store Configuration').first().json.SUPPORT_EMAIL }}\\nPhone: {{ $('Store Configuration').first().json.STORE_PHONE }}\\nWebsite: {{ $('Store Configuration').first().json.STORE_WEBSITE }}\\n\\nThank you for choosing {{ $('Store Configuration').first().json.STORE_NAME }}!\\n\\nBest regards,\\nThe {{ $('Store Configuration').first().json.STORE_NAME }} Team",
        "options": {
          "ccEmail": "",
          "bccEmail": "",
          "allowUnauthorizedCerts": false
        },
        "subject": "Order Confirmation #{{ $json.order_number }} - {{ $('Store Configuration').first().json.STORE_NAME }}",
        "toEmail": "={{ $json.customer_email }}",
        "fromEmail": "={{ $('Store Configuration').first().json.STORE_EMAIL }}"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "j0k1l2m3-n4o5-6789-0123-456789jklmno",
      "name": "Team Notification Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        120
      ],
      "parameters": {
        "width": 280,
        "height": 160,
        "content": "\ud83d\udd14 **Step 4: Notify Team**\n\nSends order notification to your team:\n- New order alert\n- Customer and order details\n- Action items\n- Order summary\n\nHelps team stay informed and take action."
      },
      "typeVersion": 1
    },
    {
      "id": "k1l2m3n4-o5p6-7890-1234-567890klmnop",
      "name": "Send Team Notification",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1440,
        260
      ],
      "parameters": {
        "message": "\ud83c\udf89 NEW ORDER RECEIVED!\\n\\n\ud83d\udce6 ORDER INFORMATION:\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nOrder #: {{ $json.order_number }}\\nCustomer: {{ $json.customer_name }}\\nEmail: {{ $json.customer_email }}\\nTotal: {{ $json.currency }} {{ $json.order_total }}\\nPayment: {{ $json.payment_status }}\\nDate: {{ new Date($json.order_date).toLocaleString() }}\\n\\n\u2705 ACTION ITEMS:\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n1. Process payment (if not already confirmed)\\n2. Pick and pack items\\n3. Create shipping label\\n4. Send tracking information to customer\\n5. Update inventory levels\\n\\n\ud83d\udcca QUICK STATS:\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nProcessed automatically at: {{ new Date().toLocaleString() }}\\nCustomer confirmation: \u2705 Sent\\nOrder webhook: \u2705 Received\\n\\nLogin to your admin panel to view full order details and begin processing.\\n\\n---\\nThis notification was sent automatically by your n8n order automation workflow.",
        "options": {
          "allowUnauthorizedCerts": false
        },
        "subject": "\ud83d\uded2 NEW ORDER #{{ $json.order_number }} - {{ $json.currency }} {{ $json.order_total }}",
        "toEmail": "={{ $('Store Configuration').first().json.TEAM_EMAIL }}",
        "fromEmail": "={{ $('Store Configuration').first().json.STORE_EMAIL }}"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "l2m3n4o5-p6q7-8901-2345-678901lmnopq",
      "name": "Log Order Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        120
      ],
      "parameters": {
        "width": 280,
        "height": 160,
        "content": "\ud83d\udcdd **Step 5: Log Order**\n\nSaves order details for record keeping:\n- Creates order summary\n- Timestamps processing\n- Tracks email delivery status\n- Prepares success response\n\nUseful for analytics and troubleshooting."
      },
      "typeVersion": 1
    },
    {
      "id": "m3n4o5p6-q7r8-9012-3456-789012mnopqr",
      "name": "Log Processing Details",
      "type": "n8n-nodes-base.set",
      "position": [
        1680,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "processing_status",
              "name": "processing_status",
              "type": "string",
              "value": "completed"
            },
            {
              "id": "processed_at",
              "name": "processed_at",
              "type": "string",
              "value": "={{ new Date().toISOString() }}"
            },
            {
              "id": "customer_email_sent",
              "name": "customer_email_sent",
              "type": "boolean",
              "value": true
            },
            {
              "id": "team_email_sent",
              "name": "team_email_sent",
              "type": "boolean",
              "value": true
            },
            {
              "id": "order_summary",
              "name": "order_summary",
              "type": "string",
              "value": "Order #{{ $('Extract Order Details').first().json.order_number }} for {{ $('Extract Order Details').first().json.customer_name }} ({{ $('Extract Order Details').first().json.currency }} {{ $('Extract Order Details').first().json.order_total }}) processed successfully"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "n4o5p6q7-r8s9-0123-4567-890123nopqrs",
      "name": "Success Response Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        120
      ],
      "parameters": {
        "width": 280,
        "height": 160,
        "content": "\u2705 **Step 6: Success Response**\n\nSends confirmation back to e-commerce platform:\n- Processing successful\n- Emails sent confirmation\n- Order details summary\n- Timestamp\n\nCompletes the webhook properly."
      },
      "typeVersion": 1
    },
    {
      "id": "o5p6q7r8-s9t0-1234-5678-901234opqrst",
      "name": "Send Success Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1920,
        260
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Order processed successfully\",\n  \"order_number\": \"{{ $('Extract Order Details').first().json.order_number }}\",\n  \"customer_email\": \"{{ $('Extract Order Details').first().json.customer_email }}\",\n  \"customer_notification_sent\": {{ $json.customer_email_sent }},\n  \"team_notification_sent\": {{ $json.team_email_sent }},\n  \"processed_at\": \"{{ $json.processed_at }}\",\n  \"order_total\": \"{{ $('Extract Order Details').first().json.currency }} {{ $('Extract Order Details').first().json.order_total }}\"\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "p6q7r8s9-t0u1-2345-6789-012345pqrstu",
      "name": "Send Error Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        960,
        420
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"error\",\n  \"message\": \"Invalid order data - missing required fields\",\n  \"missing_fields\": {\n    \"customer_email\": \"{{ $json.customer_email || 'missing' }}\",\n    \"order_number\": \"{{ $json.order_number || 'missing' }}\"\n  },\n  \"received_data\": {{ JSON.stringify($('New Order Webhook').first().json) }},\n  \"processed_at\": \"{{ new Date().toISOString() }}\"\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "q7r8s9t0-u1v2-3456-7890-123456qrstuv",
      "name": "Easy Setup Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        500
      ],
      "parameters": {
        "color": 6,
        "width": 400,
        "height": 320,
        "content": "\u2699\ufe0f **EASY SETUP GUIDE**\n\n**Step 1: Configure your store details**\nUpdate the Store Configuration node with:\n- Your store name\n- Your email addresses\n- Phone number\n- Website URL\n\n**Step 2: Set up email**\n- Use your Gmail account (free!)\n- Or any SMTP email service\n- Add email credentials in n8n\n\n**Step 3: Copy webhook URL**\n- Copy the URL from New Order Webhook node\n- Add it to your e-commerce platform:\n  \u2022 Shopify: Settings > Notifications > Webhooks\n  \u2022 WooCommerce: WooCommerce > Settings > Advanced > Webhooks\n  \u2022 Other platforms: Look for \"Webhooks\" or \"API\" settings\n\n**Step 4: Test it!**\n- Place a test order\n- Check emails were sent\n- Verify webhook response\n\n**That's it! Your store now has automated order processing! \ud83c\udf89**"
      },
      "typeVersion": 1
    }
  ],
  "settings": {
    "executionOrder": "v1"
  },
  "updatedAt": "2025-01-01T00:00:00.000Z",
  "versionId": "auto-generate",
  "staticData": {},
  "connections": {
    "New Order Webhook": {
      "main": [
        [
          {
            "node": "Store Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Configuration": {
      "main": [
        [
          {
            "node": "Extract Order Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Order Data": {
      "main": [
        [
          {
            "node": "Send Customer Confirmation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Error Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Order Details": {
      "main": [
        [
          {
            "node": "Validate Order Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Processing Details": {
      "main": [
        [
          {
            "node": "Send Success Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Team Notification": {
      "main": [
        [
          {
            "node": "Log Processing Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Customer Confirmation": {
      "main": [
        [
          {
            "node": "Send Team Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 1
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

Small online store owners, new entrepreneurs, and anyone getting started with e-commerce automation. Perfect for beginners who want to automate their order process without complexity or additional costs. Ideal for stores using Shopify, WooCommerce, Etsy, or any platform that…

Source: https://n8n.io/workflows/7518/ — original creator credit. Request a take-down →

More E-commerce workflows → · Browse all categories →

Related workflows

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

E-commerce

Stop paying for expensive plugins to recover your valuable revenue from abandoned carts on your WooCommerce store When a product is added to a user's cart on your store, it fetches the cart contents v

WooCommerce, Email Send, HTTP Request
E-commerce

Shopify Order Data to Airtable

Airtable
E-commerce

This workflow provides a robust, end-to-end automated pipeline for managing e-commerce orders. It bridges the gap between your storefront and your fulfillment team by handling inventory validation, mu

Gmail, Slack, Google Sheets
E-commerce

This n8n workflow helps Shopify store owners and teams automatically confirm orders via WhatsApp. It checks if the customer's number is valid using Rapiwa API, sends a personalized message, and logs e

HTTP Request, Google Sheets