agentsclimarketplace

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.

Install
npx -y skills add whatsteamhq/whatsapp-claude-skills --skill whatsteam-ecommerce

Assembled 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-setup complete.
  • 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-loop over send_whatsapp_message for 1000 customers will choke the queue and skew metrics. Always go via whatsteam-campaigns past ~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-campaigns Recipe 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 + event in your DB before sending.

Integrations

  • Shopify: Webhooks at Settings → Notifications → Webhooks. Subscribe to orders/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-whatsteam nodes — 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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.