Whatsteam ecommerce
Skill whatsteamhq/whatsapp-claude-skills/skills/whatsteam-ecommerce
Agent Skills for WhatsTeam — automate WhatsApp Business (official API) by chatting with Claude, Cursor, Codex or any Agent Skills client. 23 skills + the WhatsTeam MCP.
npx -y skills add whatsteamhq/whatsapp-claude-skills --skill whatsteam-ecommerceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Automate WhatsApp for online stores using WhatsTeam — order confirmations, abandoned-cart recovery, shipping updates, delivery notifications, review requests, post-purchase upsell, and order-related customer support. Use when the user runs an e-commerce business (Shopify, WooCommerce, Tiendanube, Magento, custom) and wants to turn WhatsApp into a revenue and CSAT channel. Recipes compose whatsteam-messaging, whatsteam-webhooks, and whatsteam-campaigns to wire store events to WhatsApp flows.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
9.6 KB, as published. Nobody here has run it
WhatsTeam for E-commerce
Turn WhatsApp into the highest-converting channel of an online store. The recipes below assume a typical store stack: a storefront (Shopify, WooCommerce, Tiendanube, Magento, custom), a fulfillment provider, and a tagging/segmentation source (the store admin or a CRM).
When to use
Activate this skill when the user:
- Owns or operates an online store (mentions Shopify, WooCommerce, Tiendanube, BigCommerce, Magento, Prestashop, or a custom e-commerce stack).
- Asks about order confirmations, abandoned cart, shipping updates, review requests, post-purchase, upsell, cross-sell, or WhatsApp for online sales.
- Wants to connect a storefront event (order placed, payment captured, fulfilled, refunded) to a WhatsApp message.
If the question is purely about "how do I send a message" without a store context, route to whatsteam-messaging. If it's about a bulk one-shot promo, use whatsteam-campaigns.
Prerequisites
whatsteam-setupcomplete.- The store's webhook system exposing the events you want to act on (Shopify webhooks, WooCommerce REST webhooks, etc.). Most platforms have these out of the box.
- A way to deploy a small HTTP handler (a serverless function, a tiny Node/Python server, or n8n / Zapier / Make if the user prefers low-code).
- For WABA devices: pre-approved transactional templates in the languages of your customer base (order_confirmation, shipping_update, delivery_complete, review_request).
Architecture
Storefront ──webhook──► Your handler ──MCP──► WhatsTeam ──WhatsApp──► Customer
│
└── Logs + dedupe in your DB
For low-code users, the handler can be an n8n workflow using whatsteam/n8n-whatsteam instead of custom code. Same shape, different runtime.
Recipes
Recipe 1 — Order confirmation
"When a customer places an order, send them a WhatsApp confirmation with the order number and a tracking link."
Wire the store's order.created (or order.paid) webhook to a handler. A fresh order is almost always outside the 24h window (the customer hasn't messaged you yet — a checkout/consent event does not open it), so lead with a Utility template:
on order.created (from Shopify / Woo / …):
customer = order.customer
if !customer.phone or !customer.smsConsent: return 200
# The 24h window opens only on a customer INBOUND message, not on checkout.
# For a fresh order, send a Utility template:
send_whatsapp_message
- device: $DEVICE_ID
- action: template
- chat: customer.wid # e.g. [email protected]
- template:
name: "order_confirmation"
language: "es"
body:
- { name: "1", value: customer.firstName }
- { name: "2", value: order.number }
- { name: "3", value: order.totalPrice }
button:
- { type: url, position: 0, name: "1", value: order.statusUrlSuffix }
ack 200
If the customer messaged you within the last 24h (the chat's lastInboundAt is < 24h ago), free-form is allowed instead:
send_whatsapp_message
- device: $DEVICE_ID
- action: text
- chat: customer.wid
- message: |
¡Gracias por tu compra, {{customer.firstName}}!
Pedido #{{order.number}} — Total {{order.totalPrice}}
Sigue tu pedido aquí: {{order.statusUrl}}
Recipe 2 — Abandoned cart recovery
"If a customer adds to cart and doesn't check out within 1 hour, send them a reminder."
This requires a scheduled job (cron, Inngest, Temporal) since the storefront's "cart abandoned" detection is delayed. Pseudo-flow:
every 15 min:
carts = storefront.getAbandonedCarts(since: 60-90 min ago, not_recovered: true)
for cart in carts:
if !cart.customer.phone or !cart.customer.smsConsent: skip
send_whatsapp_message
- device: $DEVICE_ID
- phone: cart.customer.phone
- message: |
Hola {{firstName}}, ¿olvidaste algo? 🛒
{{cart.items[0].title}} sigue esperándote.
Termina tu compra: {{cart.recoveryUrl}}
(10% de descuento con código RECOVER10 hasta hoy)
- media: { url: cart.items[0].imageUrl } # optional, hero image
mark cart as "wa_reminder_sent" in your DB to avoid retries
A/B test the discount: send 50% with code, 50% without. Compare conversion via manage_whatsapp_campaigns stats if you implement as a campaign instead, or via your storefront's coupon-redemption report.
Recipe 3 — Shipping & delivery updates
"When the carrier marks a shipment as out for delivery, ping the customer."
Most fulfillment platforms (Shippo, EasyPost, native carriers via API) emit shipment.in_transit, shipment.out_for_delivery, shipment.delivered.
on shipment.out_for_delivery:
send template "shipping_out_for_delivery"
variables: [customer.firstName, shipment.trackingNumber, shipment.carrierLink]
on shipment.delivered:
send template "shipping_delivered" + media: { url: order.firstItemPhoto }
# 30 minutes later → schedule review request
send_whatsapp_message with deliverAt: now + 30min:
template "review_request" with order.id as deep link
Recipe 4 — Review / re-purchase request
"7 days after delivery, ask for a review and offer a re-purchase incentive."
Schedule from the shipment.delivered event:
on shipment.delivered:
scheduleAt(now + 7 days) → fire WhatsApp template:
"Hola {{firstName}}, ¿cómo te fue con {{order.items[0].title}}?
Cuéntanos con una reseña aquí 👇 {{reviewLink}}
Y como agradecimiento, 15% de descuento en tu próxima compra: RETURN15"
For one-shot re-engagement campaigns ("we miss you" to customers inactive >90 days), use whatsteam-campaigns with a segment filter.
Recipe 5 — Order-related support
"When a customer asks 'where is my order #1234', look it up and answer."
This is an agentic loop, perfect for an LLM behind the inbox:
on message:in:new (via whatsteam-webhooks):
if message.body matches /pedido|orden|order/ AND extract order number:
order = storefront.getOrder(extractedNumber)
if order belongs to message.from.phone:
reply with order.status + tracking link
else:
label chat "support:order-lookup-failed" + assign to human
The full agentic version of this is whatsteam/whatsapp-chatgpt-bot — use it as the reference implementation if the user wants a ready-made monolith.
Recipe 6 — Upsell & cross-sell
"Customers who bought running shoes 60 days ago: offer them socks at 20% off."
Pure campaign play:
1. Segment: customers WHERE last_order_item.category = "running-shoes"
AND last_order_at < now - 60 days
AND last_order_at > now - 120 days
2. Build CSV, import via manage_whatsapp_campaign_contacts
3. Create campaign with template "upsell_socks_20off_es"
4. Send during weekday 11am-12pm local time (highest reply rate)
5. Tag responders with label "interested:socks-upsell" for follow-up
Anti-patterns
- Sending to customers without opt-in. WhatsApp marketing without explicit checkbox consent gets reported. Use a checkout opt-in field; store the timestamp + IP in your DB.
- Loop-sending instead of campaigns. A
for-loopoversend_whatsapp_messagefor 1000 customers will choke the queue and skew metrics. Always go viawhatsteam-campaignspast ~50 recipients. - Promo templates as transactional. Don't reuse Marketing templates for order confirmations. Build dedicated Utility templates — they bypass the 24h marketing-window restrictions and don't count against the Marketing tier.
- Ignoring STOP/UNSUBSCRIBE. Implement opt-out (see
whatsteam-campaignsRecipe 5). Failing to honor opt-out leads to template suspension and WABA penalties. - Sending shipping updates twice. Carriers can re-emit the same event. Dedupe on
shipment.id + eventin your DB before sending.
Integrations
- Shopify: Webhooks at
Settings → Notifications → Webhooks. Subscribe toorders/create,orders/paid,fulfillments/create,checkouts/create(for abandoned). - WooCommerce: REST API webhooks at
WooCommerce → Settings → Advanced → Webhooks. - Tiendanube: Webhooks in app settings; use the OAuth app shape.
- Magento: Use Magento 2 Webhooks extension or build an observer.
- n8n: Use
whatsteam/n8n-whatsteamnodes — many e-commerce templates available in the n8n template gallery. - Make / Zapier: Use WhatsTeam's official Make module / Zapier app; map storefront triggers to "WhatsTeam > Send message".
See also
whatsteam-messaging— message construction details (templates, media, scheduling).whatsteam-campaigns— bulk sends (upsell, re-engagement).whatsteam-webhooks— receive events from your storefront.whatsteam-customer-support— for the post-purchase support side of e-commerce.- Reference implementation: https://github.com/whatsteam/whatsapp-chatgpt-bot
- E-commerce article: https://whats.team/blog/e-commerce-hack-automate-orders-sales-like-a-pro