top of page
Search

Send Marketing Messages with MM API – Hibot Guide



The Marketing Messages API is only for sending marketing template messages.

To send:

  • Authentication messages

  • Utility messages

  • Freeform messages

  • Receive customer replies

you must continue using the normal WhatsApp Business API /messages endpoint alongside MM API.

With Hibot, both can work together on the same phone number.


Supported Message Types


The /marketing_messages endpoint supports only:

  • Approved Marketing Templates

It does not support:

  • Text messages

  • Authentication templates

  • Utility templates

  • Interactive non-template messages

If you try to send unsupported message types, WhatsApp returns an error.

Endpoint

Use:

POST /<PHONE_NUMBER_ID>/marketing_messages

Example:

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "919876543210",
  "type": "template",
  "template": {
    "name": "summer_sale",
    "language": {
      "code": "en_US"
    }
  }
}

Important Template Sync Delay


When you create a new marketing template, it may take up to 10 minutes before it is fully usable with MM API.

This sync is required for:

  • Delivery optimization

  • Click tracking

  • Conversion tracking

The same 10-minute delay also applies if:

  • The template was inactive for more than 7 days

  • You are sending the first message after a long pause

Best practice:

Wait at least 10 minutes after creating or reactivating a template before sending real campaigns.


Time-To-Live (TTL)


MM API allows marketing templates to expire automatically if they are no longer relevant.

TTL range:

  • Minimum: 12 hours

  • Maximum: 30 days

Example:

{
  "messaging_product": "whatsapp",
  "to": "919876543210",
  "type": "template",
  "template": {
    "name": "flash_sale",
    "language": {
      "code": "en_US"
    }
  },
  "time_to_live": 43200
}

43200 = 12 hours

If the message is not delivered within 12 hours, it automatically expires.


Automatic Creative Optimizations


MM API automatically improves your marketing messages to increase engagement.

Meta reports these optimizations increased click-through rate by around 13.9%.

Possible automatic improvements include:

  • Image enhancements

  • Headline extraction

  • Promotion tags

  • Better text formatting

  • Product suggestions

  • Improved link formatting


Available Automatic Optimizations


Optimization

Description

Image Filtering

Improves image quality and appeal

Headline Extraction

Creates a headline from important text

Tap Target Title

Creates a title above CTA area

Text Formatting

Bolds or cleans text formatting

Auto Promotion Tag

Extracts offers like “50% OFF”

Product Extensions

Adds related catalog products

Link Formatting

Shortens or beautifies URLs

Image Banner

Adds padding to improve image size

Currently Paused Optimizations


These features are currently paused and may not be applied:

  • Image Cropping

  • Text Overlay

  • Image Animation

  • Background Generation

Even if enabled, they may not appear right now.


Configure Optimizations at Template Level


By default, all optimizations are enabled.

You can enable or disable specific optimizations for a single template when creating or editing it.

Example:

{
  "name": "summer_sale",
  "language": "en_US",
  "degrees_of_freedom_spec": {
    "creative_features_spec": {
      "auto_promotion_tag": {
        "enroll_status": "OPT_IN"
      },
      "text_formatting_optimization": {
        "enroll_status": "OPT_OUT"
      },
      "product_extensions": {
        "enroll_status": "OPT_OUT"
      }
    }
  }
}

Possible values:

  • OPT_IN

  • OPT_OUT


Get Template Optimization Settings


To view which optimizations are active for a template:

GET /<TEMPLATE_ID>?fields=degrees_of_freedom_spec

Example response:


{
  "degrees_of_freedom_spec": {
    "creative_features_spec": [
      {
        "key": "AUTO_PROMOTION_TAG",
        "value": {
          "enroll_status": "OPT_IN"
        }
      },
      {
        "key": "TEXT_FORMATTING_OPTIMIZATION",
        "value": {
          "enroll_status": "OPT_OUT"
        }
      }
    ]
  }
}

Configure Optimizations for Entire WABA


You can also apply optimization settings to your entire WhatsApp Business Account.

Example:


{
  "degrees_of_freedom_spec": {
    "creative_features_spec": {
      "auto_promotion_tag": {
        "enroll_status": "OPT_IN"
      },
      "text_extraction_for_headline": {
        "enroll_status": "OPT_IN"
      },
      "product_extensions": {
        "enroll_status": "OPT_OUT"
      }
    }
  }
}

This affects all future templates unless overridden at the template level.


Product Policy


MM API can automatically fall back to normal Cloud API if your onboarding is incomplete.

You can control this using product_policy.

Option 1: Cloud API Fallback


{
  "product_policy": "CLOUD_API_FALLBACK"
}

If MM API is unavailable, the message will still send using Cloud API.


Option 2: Strict Mode


{
  "product_policy": "STRICT"
}

With STRICT, the message will fail instead of falling back.

Use this if you only want the message sent through MM API.


Message Activity Sharing


You can optionally control whether Meta can use message activity (such as reads or clicks) to improve optimization.

Example:

{
  "message_activity_sharing": true
}

Options:

  • true = Allow sharing for better optimization

  • false = Do not share activity

If omitted, your WABA default setting is used.


Example Full Request


{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "919876543210",
  "type": "template",
  "template": {
    "name": "festival_offer",
    "language": {
      "code": "en_US"
    }
  },
  "product_policy": "CLOUD_API_FALLBACK",
  "message_activity_sharing": true,
  "time_to_live": 86400
}

This request:

  • Sends a marketing template

  • Allows fallback to Cloud API

  • Shares message activity

  • Expires after 24 hours


Status Webhook Response


When the message is sent through MM API, the webhook returns:


{
  "conversation": {
    "origin": {
      "type": "marketing_lite"
    }
  },
  "pricing": {
    "category": "marketing_lite"
  }
}

If the message falls back to Cloud API:


{
  "pricing": {
    "category": "marketing"
  }
}

This helps you identify which system actually sent the message.


Receiving Replies


MM API is send-only.

It cannot receive customer messages.

To receive replies, you must also use:

POST /<PHONE_NUMBER_ID>/messages

and keep your WhatsApp webhook connected through Cloud API.

This means:

  • MM API = Send marketing campaigns

  • Cloud API = Receive replies + send other message types


Best Practice for Hibot Users


Use this setup:

Purpose

Endpoint

Marketing campaigns

/marketing_messages

Utility / Authentication

/messages

Customer replies

Cloud API webhook

Time-sensitive promotions

MM API + TTL

Better engagement

Enable creative optimizations

Final Thoughts


For the best WhatsApp marketing performance in Hibot:

  • Use approved marketing templates

  • Wait 10 minutes after template creation

  • Send through /marketing_messages

  • Enable creative optimizations

  • Use TTL for time-sensitive campaigns

  • Keep Cloud API active to receive replies

 
 
 

Recent Posts

See All
WhatsApp Template Messages with Hibot API

WhatsApp Template Messages allow businesses to send pre-approved messages to customers even outside the standard 24-hour customer service window. With Hibot’s WhatsApp Official API, template messages

 
 
 
WhatsApp Sticker Messages with Hibot API

WhatsApp Sticker Messages allow businesses to send animated or static stickers directly to customers on WhatsApp. With Hibot’s WhatsApp Official API, you can use stickers to make conversations more en

 
 
 

Comments


bottom of page