Makani Tech: Build. Automate. Evolve.

Where Is My Order Agent with n8n + Claude (free workflow)

How to stop "where is my order?" messages with WhatsApp updates and an AI agent

FreeWorkflowBy Kishan Makani · updated 19 October 2026 · 4 min read

Shiprocket webhookWhatsAppGoogle SheetsClaudeSlack

Downloads

  • Download the n8n workflow (JSON)

    order-status-whatsapp-updates-n8n.json · n8n workflow · 24 steps · starts with Shiprocket status webhook · uses Google Sheets, WhatsApp, Slack, Anthropic · 38 KB

    Import into n8n: Create Workflow, then the menu, then Import from File.

How to import it into n8n
  1. In n8n, create a new workflow.
  2. Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
  3. Open each node with a warning and connect your own account: the file carries no passwords or keys.
  4. Run it once with Test workflow, check the result, then switch it to Active.

What this workflow does

Two things, in one workflow. First, every time Shiprocket updates a shipment, the customer gets a WhatsApp message: shipped, out for delivery, delivered, with the tracking link. Failed deliveries and RTOs go to your team on Slack so a person calls. Second, when a customer asks "order kab aayega?", n8n finds their latest order by phone, pulls live tracking from Shiprocket, and Claude answers from that data. Complaints, refunds, exchanges and address changes are drafted for your support team to approve in Slack. Every chat is logged.

Who it is for

D2C and e-commerce brands shipping with Shiprocket that get a steady stream of "where is my order?" messages on WhatsApp.

What you need

  • An n8n account with a public URL
  • A Shiprocket account with API access and webhooks
  • A WhatsApp Business Cloud API number with one approved utility template
  • An Anthropic API key for Claude
  • A Google Sheet of orders (from Shopify, WooCommerce or your panel) and Slack

The workflow, step by step

Step 1 · Shiprocket tells n8n first

Shiprocket status webhook receives every status change. Real Shiprocket call? checks the secret token header so nobody else can trigger messages. Clean up shipment event keeps AWB, order id, status, courier, expected date and tracking link. Skip repeat statuses stops the same status from messaging twice. Find order gets the customer's name and phone from Orders.

Step 2 · Customers hear before they ask

Status worth a message? routes Shipped/Picked up, Out for delivery and Delivered to Send status update, which sends the order_update template. Undelivered, RTO, lost, damaged and cancelled go to Alert team on Slack so a person calls. Log order status writes the latest status to Orders.

Step 3 · "Order kab aayega?" looked up

WhatsApp Trigger receives customer messages. Clean up message keeps phone, name, text and id, and Skip repeat messages drops retries. Look up their orders finds orders for that phone and Pick latest order chooses the newest. Get live tracking calls the Shiprocket tracking API for that AWB.

Step 4 · Claude answers, complaints go to a human

Answer with Claude gives Claude the message, the order and live tracking, and forbids invented dates. Answer format returns intent, reply, needs human and a summary. Needs a human? sends plain status answers straight on, and complaints, returns, cancellations, address changes or unknown orders to Hand to support on Slack with the draft. Approved? lets only approved drafts go.

Step 5 · Every chat logged

Send answer replies on WhatsApp. Log the question writes message, order, intent, reply and who handled it to Chats. Any failed send goes to Send failed alert.

Setup

  1. Import the JSON into n8n and activate it (webhooks need the production URL).
  2. In Shiprocket, create an API user, get a token from the login API and add it as a Header Auth credential on Get live tracking.
  3. In Shiprocket webhook settings, paste the production URL of Shiprocket status webhook and a secret token; put the same token in Real Shiprocket call?.
  4. Create the order_update utility template in Meta with 4 variables and wait for approval. Connect WhatsApp on the trigger and both send nodes.
  5. Create the Orders and Chats tabs, keep Orders filled from your store (a Shopify or Sheets sync works), and connect Google Sheets, Anthropic and Slack.
  6. Ask "where is my order?" from a phone that has an order in the sheet, and check the reply and the Chats row.

How to customise

  • Shopify directly: replace the two Orders reads with the Shopify node (get orders by phone or order id).
  • More statuses: add Switch rules for "In transit" or "Reached destination hub" if your customers like more updates.
  • NDR reattempt: add a WhatsApp template asking "Shall we try again tomorrow?" on the Problem path, and a button reply branch.
  • Different courier platform: swap the tracking HTTP call for your aggregator's API; the rest stays the same.

Guardrails

  • Claude answers only from your order sheet and live tracking, and never invents delivery dates.
  • Refunds, exchanges, cancellations, complaints and address changes are sent only after your team approves.
  • Webhook calls without your token are ignored, and repeat statuses never re-message a customer.

Troubleshooting

  • No proactive messages: check the webhook URL in Shiprocket, the token header, and that Orders has the same Order ID as Shiprocket.
  • Tracking returns 401: the Shiprocket token expired (10 days). Refresh it.
  • Template errors: the variable count must match and no variable may contain line breaks.
  • "No order found" for real customers: phone numbers in Orders must be in the 9198XXXXXXXX format WhatsApp uses.

Want the members-only resources too?

A free account unlocks them all, including the ones shared in DMs.

Create a free account