whatsapp-automation

WhatsApp Business automation - customer support, notifications, chatbots, and broadcast messaging

INSTALLATION
npx skills add https://github.com/claude-office-skills/skills --skill whatsapp-automation
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

WhatsApp Automation

Automate WhatsApp Business communications including customer support, notifications, chatbots, and broadcast messaging. Based on n8n's WhatsApp integration templates.

Overview

This skill covers:

  • WhatsApp Business API setup
  • Automated chatbot flows
  • Order/shipping notifications
  • Customer support automation
  • Broadcast messaging

Setup & Configuration

WhatsApp Business API

setup_requirements:

  1. meta_business_account:

      - Create at business.facebook.com

      - Verify business

  2. whatsapp_business_api:

      - Access through Meta Developer Portal

      - Create WhatsApp Business App

      - Get Phone Number ID

      - Get Access Token

  3. webhook_configuration:

      - Set callback URL

      - Verify token

      - Subscribe to messages

  4. message_templates:

      - Create templates in Business Manager

      - Wait for approval (24-48h)

Message Templates

template_categories:

  transactional:

    - order_confirmation

    - shipping_update

    - delivery_notification

    - appointment_reminder

  marketing:

    - promotional_offer

    - product_launch

    - newsletter

  utility:

    - account_verification

    - password_reset

    - payment_reminder

template_example:

  name: "order_confirmation"

  language: "en"

  category: "TRANSACTIONAL"

  components:

    - type: HEADER

      format: TEXT

      text: "Order Confirmed! πŸŽ‰"

    - type: BODY

      text: |

        Hi {{1}},

        Your order #{{2}} has been confirmed!

        Items: {{3}}

        Total: {{4}}

        We'll notify you when it ships.

    - type: FOOTER

      text: "Reply HELP for support"

    - type: BUTTONS

      buttons:

        - type: URL

          text: "Track Order"

          url: "https://example.com/track/{{1}}"

Chatbot Flows

Customer Support Bot

chatbot_flow:

  name: "Customer Support"

  welcome:

    trigger: first_message

    response: |

      πŸ‘‹ Welcome to {Company} Support!

      How can I help you today?

      1️⃣ Track Order

      2️⃣ Return/Exchange

      3️⃣ Product Questions

      4️⃣ Speak to Agent

      Reply with a number to continue.

  flows:

    track_order:

      trigger: "1" OR "track" OR "order"

      steps:

        - ask: "Please enter your order number:"

        - validate: order_number_format

        - lookup: order_status

        - respond: |

            πŸ“¦ *Order #{order_number}*

            Status: {status}

            {if_shipped: Tracking: {tracking_number}}

            Estimated delivery: {eta}

            [Track Package]({tracking_url})

    return_exchange:

      trigger: "2" OR "return" OR "exchange"

      steps:

        - ask: "Order number for return?"

        - check: return_eligibility

        - if_eligible:

            respond: return_instructions

        - if_not:

            respond: contact_support

    product_questions:

      trigger: "3" OR "product" OR "question"

      steps:

        - ai_response:

            model: gpt-4

            context: product_faq_knowledge_base

    agent_handoff:

      trigger: "4" OR "agent" OR "human"

      steps:

        - check: agent_availability

        - if_available:

            transfer: to_live_agent

            notify: "#support-queue"

        - if_unavailable:

            respond: "Our team is currently unavailable. Leave a message and we'll get back to you within 24 hours."

            create: support_ticket

AI-Powered Responses

ai_chatbot:

  model: gpt-4

  system_prompt: |

    You are a WhatsApp customer support agent for {Company}.

    Guidelines:

    - Be helpful and friendly

    - Keep responses concise (WhatsApp prefers short messages)

    - Use emojis appropriately

    - If you can't help, offer to connect with a human agent

    - Never make up information about orders or products

    You have access to:

    - Order lookup

    - Product catalog

    - FAQ knowledge base

  tools:

    - lookup_order: by order number

    - search_products: by keyword

    - check_inventory: by product id

    - create_ticket: for complex issues

  escalation_triggers:

    - sentiment: very_negative

    - keywords: ["complaint", "refund", "angry", "sue"]

    - loop_detected: same_question_3x

Notification Workflows

Order Notifications

order_notifications:

  order_placed:

    trigger: shopify_order_created

    template: order_confirmation

    variables:

      - customer_name

      - order_number

      - items_summary

      - total_amount

  payment_received:

    trigger: payment_captured

    message: |

      βœ… Payment received for order #{order_number}!

      Amount: {amount}

      We're preparing your order now.

  shipped:

    trigger: fulfillment_created

    template: shipping_update

    variables:

      - tracking_number

      - carrier

      - estimated_delivery

  out_for_delivery:

    trigger: tracking_status_change

    condition: status == "out_for_delivery"

    message: |

      🚚 Your order is out for delivery!

      Expected today by {eta}.

      Track live: {tracking_url}

  delivered:

    trigger: tracking_status_change

    condition: status == "delivered"

    message: |

      πŸ“¦ Your order has been delivered!

      We hope you love it!

      [Leave a Review]({review_url})

      [Need Help?]({support_url})

Appointment Reminders

appointment_reminders:

  schedule:

    - 24_hours_before

    - 1_hour_before

  template: appointment_reminder

  24h_message: |

    πŸ“… *Appointment Reminder*

    Hi {name},

    You have an appointment tomorrow:

    πŸ“ {location}

    πŸ• {time}

    πŸ‘€ {provider}

    Reply:

    βœ… CONFIRM to confirm

    ❌ CANCEL to cancel

    πŸ“… RESCHEDULE to change time

  1h_message: |

    ⏰ Your appointment is in 1 hour!

    {provider} at {location}

    See you soon!

Broadcast Messaging

Campaign Management

broadcast_campaigns:

  setup:

    - import_contacts: from_crm

    - segment_audience: by_criteria

    - create_template: get_approval

    - schedule_send

  targeting_options:

    - all_contacts

    - by_tag: [vip, new_customer, inactive]

    - by_purchase_history

    - by_location

    - custom_segment

  compliance:

    - opt_in_required: true

    - opt_out_easy: reply_STOP

    - frequency_limits: per_contact_per_day

    - quiet_hours: respect_timezone

  tracking:

    - delivered

    - read

    - replied

    - clicked_link

    - opted_out

Campaign Templates

campaign_templates:

  promotional:

    template: |

      πŸŽ‰ *Special Offer for You!*

      Hi {name},

      {offer_description}

      Use code: {promo_code}

      Valid until: {expiry}

      [Shop Now]({url})

      Reply STOP to unsubscribe

  product_launch:

    template: |

      πŸš€ *New Arrival Alert*

      {name}, check out our latest:

      {product_name}

      {product_description}

      {price}

      [View Product]({url})

  reengagement:

    template: |

      πŸ‘‹ *We Miss You, {name}!*

      It's been a while since your last visit.

      Here's 15% off to welcome you back:

      Code: COMEBACK15

      [Shop Now]({url})

n8n Integration

Workflow Example

workflow: "WhatsApp Order Bot"

nodes:

  - name: "WhatsApp Trigger"

    type: "n8n-nodes-base.whatsAppTrigger"

    parameters:

      events: ["messages"]

  - name: "Parse Message"

    type: "n8n-nodes-base.code"

    parameters:

      code: |

        const message = $input.first().json;

        return {

          from: message.from,

          text: message.text.body,

          type: message.type

        };

  - name: "AI Response"

    type: "n8n-nodes-base.openAi"

    parameters:

      model: "gpt-4"

      messages: [

        { role: "system", content: "..." },

        { role: "user", content: "{{ $json.text }}" }

      ]

  - name: "Send Reply"

    type: "n8n-nodes-base.whatsApp"

    parameters:

      operation: "sendMessage"

      phoneNumberId: "{{ $env.WHATSAPP_PHONE_ID }}"

      recipientPhoneNumber: "{{ $json.from }}"

      message: "{{ $json.response }}"

Output Example

Request: "Create WhatsApp order notification flow"

Output:

# WhatsApp Order Notifications

## Message Templates (Need Meta Approval)

### 1. Order Confirmation

Hi {{1}}! πŸŽ‰

Your order #{{2}} is confirmed!

Items: {{3}}

Total: {{4}}

We'll update you when it ships.

Track Order

### 2. Shipping Update

πŸ“¦ Your order is on the way!

Order: #{{1}}

Carrier: {{2}}

Tracking: {{3}}

Expected delivery: {{4}}

Track Package

### 3. Delivered

βœ… Delivered!

Your order #{{1}} has arrived.

Love it? Leave a review!

Need help? Reply to this message.

Review

## n8n Workflow

trigger: Shopify Order Created

steps:

1. Get customer phone

2. Format order details

3. Send WhatsApp template

4. Log to CRM


## Automation Rules

- Order placed β†’ Confirmation (immediate)

- Shipped β†’ Tracking (immediate)

- Out for delivery β†’ Alert (immediate)

- Delivered β†’ Review request (1 day later)

---

WhatsApp Automation Skill - Part of Claude Office Skills

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills β†’

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free Β· no credit card