WhatsApp Video Automation: Slideshows, Status Updates & Business Messages

Mar 10, 2026 By smrht@icloud.com

What This Gets You

Automated WhatsApp video messages convert 3-5x better than static images. Product slideshows, personalized order confirmations, daily status updates - all rendered and sent without manual work. This guide covers the full pipeline: Meta's WhatsApp Business API, n8n workflows, and JSON-based video rendering to build four production-ready automations.

You'll need a Meta Business account, a verified WhatsApp Business number, and an n8n instance (self-hosted or cloud). Total setup time is about 2 hours for the first workflow. After that, each additional automation takes 20-30 minutes.

WhatsApp Business API Basics

The WhatsApp Business API (Meta Cloud API) is not the same as the WhatsApp Business app you download from the App Store. The API is a programmatic interface that lets you send messages, media, and templates at scale.

Key constraints you need to know upfront:

  • Message templates must be pre-approved by Meta. Template review takes 1-24 hours.
  • 24-hour conversation window: After a user messages you, you can send free-form replies for 24 hours. Outside that window, you can only send approved templates.
  • Tier-based sending limits: New accounts start at 250 unique users per 24 hours. This scales to 1,000, then 10,000, then 100,000 as your quality rating improves.
  • Video file limits: Maximum 16MB for video messages. Keep videos under 60 seconds at 720p to stay safely under this limit.
  • Supported formats: MP4 with H.264 video codec and AAC audio codec. This is what the JSON-to-Video API outputs by default.

Getting API Access

  1. Go to developers.facebook.com and create an app (type: Business)
  2. Add the WhatsApp product to your app
  3. In WhatsApp > Getting Started, you'll find a temporary access token and test phone number
  4. For production, set up a System User in Meta Business Manager and generate a permanent token
  5. Register your business phone number (requires SMS or voice verification)

Save these credentials - you'll need them in n8n:

  • Phone Number ID (found in WhatsApp > Getting Started)
  • WhatsApp Business Account ID
  • Permanent Access Token (from System User)

Setting Up n8n for WhatsApp

If you don't have n8n running yet, our n8n setup guide covers self-hosted installation in under 20 minutes. For WhatsApp specifically, you need two things configured in n8n.

WhatsApp Credentials

In n8n, go to Credentials > New Credential > WhatsApp Business Cloud API and enter:

  • Access Token: your permanent token from Meta Business
  • Phone Number ID: your WhatsApp phone number ID
  • Business Account ID: your WABA ID

Webhook URL Access

Your n8n instance needs a publicly accessible URL for two reasons:

  1. Meta webhook verification - Meta sends a GET request to verify your endpoint
  2. Incoming message webhooks - When users reply, Meta POSTs the message to your webhook

If you're self-hosted behind a firewall, use a reverse proxy (Nginx, Caddy) or a tunnel service. The webhook URL format is: https://your-n8n-domain.com/webhook/whatsapp

Message Template Setup

Before sending any video messages outside the 24-hour window, you need approved templates. In Meta Business Manager:

  1. Go to WhatsApp Manager > Message Templates
  2. Create a new template (category: Marketing or Utility)
  3. Add a HEADER component with type "Video" - this is where your rendered video goes
  4. Add a BODY with your message text (supports variables like {{1}} for customer name)
  5. Submit for review

Example template for product slideshows:

Header: [VIDEO]
Body: "Hi {{1}}, check out our latest {{2}} collection! Tap below to shop."
Button: "Shop Now" → https://yoursite.com/collection/{{3}}

Approval typically takes 2-8 hours for straightforward marketing templates.

Workflow 1: Product Slideshow Generator

This is the highest-impact automation. Feed it a list of product images, and it outputs a polished slideshow video delivered directly to a customer's WhatsApp.

The Pipeline

[Trigger: New products in Shopify/WooCommerce]
    → [Fetch product images + details]
    → [Build video template JSON]
    → [Render slideshow via JSON-to-Video API]
    → [Wait for render callback]
    → [Send video via WhatsApp Business API]
    → [Log delivery status]

Building the Slideshow Template

The JSON-to-Video API accepts a JSON template that defines each scene. For a product slideshow, each product gets its own scene with an image, product name, and price.

{
  "resolution": "1080x1920",
  "fps": 30,
  "scenes": [
    {
      "duration": 3,
      "layers": [
        {
          "type": "image",
          "src": "{{product_1_image}}",
          "fit": "cover",
          "animations": [{ "type": "kenBurns", "zoom": 1.15, "duration": 3 }]
        },
        {
          "type": "text",
          "text": "{{product_1_name}}",
          "font_size": 42,
          "font_weight": "bold",
          "color": "#FFFFFF",
          "background": "rgba(0,0,0,0.6)",
          "position": "bottom",
          "padding": 16
        },
        {
          "type": "text",
          "text": "${{product_1_price}}",
          "font_size": 36,
          "color": "#FFD700",
          "position": "bottom",
          "y_offset": 70
        }
      ],
      "transition": { "type": "crossfade", "duration": 0.5 }
    }
  ],
  "audio": {
    "src": "https://your-cdn.com/background-music.mp3",
    "volume": 0.3
  }
}

In the n8n Function node, you dynamically generate scenes from product data:

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

const scenes = products.slice(0, 8).map(product => ({
  duration: 3,
  layers: [
    {
      type: "image",
      src: product.image_url,
      fit: "cover",
      animations: [{ type: "kenBurns", zoom: 1.15, duration: 3 }]
    },
    {
      type: "text",
      text: product.name,
      font_size: 42,
      font_weight: "bold",
      color: "#FFFFFF",
      background: "rgba(0,0,0,0.6)",
      position: "bottom",
      padding: 16
    },
    {
      type: "text",
      text: `$${product.price.toFixed(2)}`,
      font_size: 36,
      color: "#FFD700",
      position: "bottom",
      y_offset: 70
    }
  ],
  transition: { type: "crossfade", duration: 0.5 }
}));

// Add intro scene
scenes.unshift({
  duration: 2,
  layers: [{
    type: "text",
    text: "New Arrivals",
    font_size: 64,
    font_weight: "bold",
    color: "#FFFFFF",
    position: "center"
  }]
});

// Add outro scene
scenes.push({
  duration: 3,
  layers: [{
    type: "text",
    text: "Tap to shop now",
    font_size: 48,
    color: "#FFFFFF",
    position: "center",
    animations: [{ type: "pulse", duration: 1, repeat: 3 }]
  }]
});

return [{
  json: {
    resolution: "1080x1920",
    fps: 30,
    scenes: scenes,
    audio: {
      src: "https://your-cdn.com/upbeat-background.mp3",
      volume: 0.25
    }
  }
}];

Keep the total slideshow under 30 seconds (8-10 products at 3 seconds each) to stay under WhatsApp's 16MB limit.

Sending via WhatsApp

After the render callback returns the video URL, use n8n's HTTP Request node to send it via the WhatsApp Cloud API:

{
  "messaging_product": "whatsapp",
  "to": "{{customer_phone}}",
  "type": "template",
  "template": {
    "name": "product_slideshow",
    "language": { "code": "en" },
    "components": [
      {
        "type": "header",
        "parameters": [{
          "type": "video",
          "video": { "link": "{{rendered_video_url}}" }
        }]
      },
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "{{customer_name}}" },
          { "type": "text", "text": "{{collection_name}}" }
        ]
      }
    ]
  }
}

POST this to https://graph.facebook.com/v19.0/{{phone_number_id}}/messages with your access token in the Authorization header.

Workflow 2: Personalized Order Confirmation Video

Static order confirmation emails have a 20-30% open rate. A personalized WhatsApp video confirming the order with the customer's name and product images gets seen by 90%+ of recipients.

Template Structure

{
  "resolution": "1080x1920",
  "fps": 30,
  "scenes": [
    {
      "duration": 3,
      "layers": [
        { "type": "color", "color": "#1a1a2e" },
        {
          "type": "text",
          "text": "Thanks, {{customer_name}}!",
          "font_size": 52,
          "color": "#FFFFFF",
          "position": "center",
          "animations": [{ "type": "fadeIn", "duration": 0.8 }]
        }
      ]
    },
    {
      "duration": 4,
      "layers": [
        { "type": "color", "color": "#1a1a2e" },
        {
          "type": "text",
          "text": "Order #{{order_number}}",
          "font_size": 36,
          "color": "#AAAAAA",
          "position": "top-center",
          "y_offset": 100
        },
        {
          "type": "image",
          "src": "{{product_image}}",
          "width": 400,
          "height": 400,
          "position": "center"
        },
        {
          "type": "text",
          "text": "{{product_name}}",
          "font_size": 32,
          "color": "#FFFFFF",
          "position": "bottom-center",
          "y_offset": 200
        }
      ]
    },
    {
      "duration": 3,
      "layers": [
        { "type": "color", "color": "#1a1a2e" },
        {
          "type": "text",
          "text": "Arriving by {{delivery_date}}",
          "font_size": 44,
          "color": "#4CAF50",
          "position": "center"
        }
      ]
    }
  ]
}

n8n Trigger

Connect a Webhook node to your e-commerce platform's order webhook (Shopify, WooCommerce, Stripe). When an order comes in:

  1. Extract customer name, phone, order details, and product images
  2. Build the video template JSON using the Function node
  3. POST to the render API
  4. Wait for callback
  5. Send the rendered video via WhatsApp

The entire flow executes in 30-90 seconds after order placement. The customer receives a personalized video confirmation before they even close the checkout tab.

Workflow 3: WhatsApp Status Automation

WhatsApp Status (the Stories equivalent) reaches your entire contact list. For businesses with 500+ saved contacts, daily status updates drive significant engagement without per-message costs.

How Status Automation Works

WhatsApp Business API doesn't have a direct "post to status" endpoint. Instead, you use the WhatsApp Status feature through the WhatsApp Business app. For automation, the approach is:

  1. Render a daily video (product highlight, tip, promotion)
  2. Upload to a shared drive or media server
  3. Use the WhatsApp Business app's auto-post feature, or manually post (this step is the least automated)

For fully automated status posting, use the unofficial approach: render the video via API, save to the phone's WhatsApp media folder, and use an Android automation tool (Tasker, MacroDroid) to post it. This works reliably for businesses that run a dedicated WhatsApp device.

The more scalable approach is to send the daily video as a broadcast message to your subscriber list using the official API. This ensures delivery and provides read receipts.

Daily Content Pipeline

[Cron Trigger: 9 AM daily]
    → [Fetch today's featured product/content from CMS]
    → [Build 15-second video template]
    → [Render via JSON-to-Video API]
    → [Wait for callback]
    → [Send as broadcast to subscriber segments]

Keep status videos between 10-15 seconds. Shorter performs better on WhatsApp. Use vertical 9:16 aspect ratio (1080x1920) since WhatsApp Status is mobile-only.

Workflow 4: Customer Support Video Responses

Some support questions are answered faster with a video than a paragraph of text. "How do I set up my product?" becomes a 30-second video showing the steps.

The Setup

  1. Create a library of pre-rendered support videos for common questions (FAQ videos)
  2. In n8n, build a webhook that receives incoming WhatsApp messages
  3. Use a Function node or AI classifier to match the message to a FAQ category
  4. Respond with the matching video
// n8n Function node: Match message to FAQ video
const message = $input.first().json.message.text.body.toLowerCase();

const faqMap = {
  'setup': 'https://cdn.yoursite.com/support/setup-guide.mp4',
  'install': 'https://cdn.yoursite.com/support/setup-guide.mp4',
  'return': 'https://cdn.yoursite.com/support/returns-process.mp4',
  'refund': 'https://cdn.yoursite.com/support/returns-process.mp4',
  'shipping': 'https://cdn.yoursite.com/support/shipping-info.mp4',
  'track': 'https://cdn.yoursite.com/support/tracking-order.mp4',
  'size': 'https://cdn.yoursite.com/support/size-guide.mp4',
};

const matchedKey = Object.keys(faqMap).find(key => message.includes(key));

if (matchedKey) {
  return [{ json: { video_url: faqMap[matchedKey], matched: true } }];
}

return [{ json: { matched: false } }];

For questions that don't match a pre-rendered video, route to a human agent. Over time, analyze unmatched messages to identify new FAQ videos to create.

Personalization at Scale

The real power of WhatsApp video automation is personalization. Each video can include:

  • Customer's name as a text overlay
  • Their specific product images in slideshow scenes
  • Order-specific details (order number, delivery date, total)
  • Location-based content (nearest store, local delivery partner)
  • Language-specific renders (build templates per language)

The JSON-to-Video API handles all of this through template variables. You define placeholders in your template, and the n8n workflow fills them with customer-specific data at render time.

A single template can generate thousands of unique videos. Each render takes 15-45 seconds depending on complexity and length. For high-volume campaigns (1,000+ personalized videos), batch the renders and stagger the WhatsApp sends to avoid hitting rate limits.

Delivery Tracking and Analytics

The WhatsApp Cloud API provides webhook events for message status:

  • sent - Message reached WhatsApp servers
  • delivered - Message reached the recipient's device
  • read - Recipient opened the message
  • failed - Delivery failed (invalid number, blocked, etc.)

Set up a webhook in n8n to capture these events and store them in your database or analytics platform. Track:

Metric Target
Delivery rate 95%+
Read rate 70%+
Reply rate (for interactive messages) 15-25%
Opt-out rate Under 2% per campaign

If your read rate drops below 60%, your content isn't resonating. Experiment with video length (shorter usually wins), send timing (test morning vs. evening), and personalization depth.

Compliance and Best Practices

WhatsApp takes spam seriously. Violating their policies gets your number banned permanently.

Opt-in is mandatory. You must have explicit consent before sending marketing messages. "Signing up for an account" is not consent. You need a specific opt-in for WhatsApp messages, separate from email consent.

Respect opt-outs immediately. When someone replies "STOP", remove them from your list within that same automation run. Build this into every workflow.

Quality rating matters. Meta tracks your account quality based on user reports and blocks. If too many people report your messages as spam, your sending limits decrease. Keep your content relevant and your audience properly segmented.

Message frequency limits. Even with opt-in, sending daily promotional videos will get you reported. 2-4 messages per week is the sweet spot for marketing content. Transactional messages (order confirmations, shipping updates) can be sent as needed.

Template compliance. Don't try to circumvent template review by using utility templates for marketing content. Meta's review team catches this, and repeated violations lead to account restrictions.

Getting Started

The fastest path to your first WhatsApp video automation:

  1. Set up Meta Business and WhatsApp Business API credentials (1 hour)
  2. Install n8n using our n8n setup guide (20 minutes)
  3. Create a simple video template in the JSON-to-Video API (15 minutes)
  4. Build the order confirmation workflow - it's the simplest and highest-impact starting point (30 minutes)
  5. Test with your own phone number before going live

For pre-built n8n workflow templates, check our automation guides which include importable JSON files for all four workflows described above.

Once the first workflow is running, expand to product slideshows and daily status content. The infrastructure is the same - you're just changing the trigger and the video template.

Related Articles