Utility Messages

Utility template messaging hub: components and buttons, specialty types, the October 2026 CSW billing change, volume tiers, content rules, and recategorization.

What Counts as Utility

Utility messages are template messages sent in response to a user action or request, with specific context about an active transaction, account, subscription, or service interaction.

Examples:

  • Order confirmation with order ID
  • Delivery update with tracking details
  • Billing or account reminder tied to an existing service
  • Service alert linked to a current issue
  • Reservation confirmation
  • Appointment reminder

Utility templates have strict content requirements, particularly around marketing material. If you create or update a utility template that includes promotional language, Meta will automatically re-categorize it as a marketing template — see Template Category Reclassification.

Why Utility Templates Matter

  • Utility templates are generally lower-cost than marketing templates.
  • Through September 30, 2026, utility templates are free during an active 24-hour customer service window (CSW). Meta will charge for them from October 1, 2026. See Pricing → Free vs Billed Messages.
  • They provide clear operational updates that customers expect and value.
  • Utility messages have volume tiers — higher monthly volume per market unlocks lower per-message rates.

Utility Pages in This Section

  • Location templates — UTILITY (or MARKETING) templates with a map header and send-time coordinates
  • Call permission request — see the section below on this page

Prerequisites

User Opt-In for WhatsApp Communication

Meta's Business Messaging Policy requires that a person opts in before your business sends them a business-initiated message. That applies to utility templates as much as to marketing templates. An order confirmation sent without opt-in is still a policy violation, even though the content is transactional.

A valid opt-in must make three things clear to the user:

  1. They are agreeing to receive messages over WhatsApp, not just "notifications".
  2. Which business will message them, using the name they will see on the sender.
  3. What kind of messages they can expect. Separate consent for marketing from consent for order and account updates wherever you can.

Opt-in can be collected anywhere you already talk to the customer: a checkbox on a checkout or account form, a keyword or reply inside an existing WhatsApp thread, SMS, IVR, or in person at a point of sale. Meta does not require a specific channel, but it does require that the user takes an explicit action. Pre-ticked boxes, purchase-implied consent, and imported lists do not qualify.

Keep evidence. Store the source, timestamp, channel, and category for every opt-in so you can answer a Meta quality review or a customer complaint. Blocks and reports from users who never opted in are the fastest way to lose messaging limits.

Dualhook does not collect or store opt-in on your behalf. Consent lives in your own systems, and the messaging best practices page covers how to structure it.

Supported Components

Utility templates support the following component layout:

ComponentCardinalityNotes
header0 or 1All header formats supported: text, image, video, document, location
body1 (required)Up to 1024 characters. Supports named or positional parameters
footer0 or 1Up to 60 characters. Variables supported
buttonsUp to 10See supported types below
call_permission_request0 or 1Cannot be combined with other interactive components — see Call Permission Request (Utility)

For full component-level structural details, see Template Elements.

Supported Button Types

Up to 10 buttons total, in any combination of these types:

  • quick_reply — predefined reply text the user can tap
  • url — opens a URL in the user's default browser
  • phone_number — taps to dial the configured business phone number
  • copy_code — copies a code to the user's clipboard (max 20 characters)
  • Call request — used in conjunction with the call_permission_request component (see below)

Specialty Utility Templates

Beyond standard custom utility templates, Meta supports two specialty utility template types. Both are created through the same /<WABA_ID>/message_templates endpoint by varying the components array.

TypeWhat it does
Custom utilityStandard structure: optional header (any format), required body, optional footer, up to 10 buttons
Location templateMap header that displays a specific location at send time. Real-time location is not supported. Specify lat/lng/name/address in the send call, not at template creation time. Categorized as UTILITY or MARKETING.
Call permission requestRequired body + call_permission_request component. Recipient grants or denies your business permission to call them. Categorized as UTILITY or MARKETING. See section below.

Call Permission Request (Utility)

Call permission request templates can be categorized as either MARKETING or UTILITY. The UTILITY variant is appropriate when you want to call a customer about an active transaction, account issue, or service interaction.

curl 'https://graph.facebook.com/<GRAPH_VERSION>/<WABA_ID>/message_templates' \
  -H 'Authorization: Bearer <CUSTOMER_OWNED_META_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "order_support_call",
    "language": "en_US",
    "category": "UTILITY",
    "parameter_format": "named",
    "components": [
      {
        "type": "body",
        "text": "Hi {{first_name}}, we would like to call you to assist with your recent order. Our support team is ready to help.",
        "example": {
          "body_text_named_params": [
            { "param_name": "first_name", "example": "Pablo" }
          ]
        }
      },
      { "type": "call_permission_request" }
    ]
  }'

Constraints:

  • Body text is required and must not be empty.
  • The call_permission_request component cannot be combined with other interactive components (no buttons, no quick replies, no URLs).
  • Only MARKETING and UTILITY templates can include this component.

When sent, the recipient sees a permission prompt and can grant or deny your business permission to call them outside the customer service window. Send via the standard /messages endpoint with parameter_format: named (note language.policy: deterministic is recommended).

Common Use Cases

  • Order and delivery lifecycle notifications
  • Account alerts and service-status updates
  • Reservation and appointment confirmations
  • Post-service feedback collection
  • Follow-up on a support interaction started in another channel
  • Opt-in and opt-out confirmations
  • Delivery location updates (use a location template)

Sending Flow

  1. Create utility template (custom, location, or call-permission).
  2. Wait for APPROVED status.
  3. Send via template message endpointPOST /<PHONE_NUMBER_ID>/messages.
  4. Monitor webhook statuses and quality signals.

Utility templates are sent through Cloud API only. They cannot be sent through Marketing Messages API for WhatsApp, which is marketing-only.

Recategorization and Appeals

Meta automatically reclassifies a utility template as marketing if the content contains promotional language or mixed intent. When this happens, pricing and messaging behavior follow marketing rules immediately, and you receive a template_category_update webhook — see Webhook Events → Template Category Reclassification.

To challenge a reclassification, use Meta business support channels (Dualhook does not file appeals on your behalf).

Billing and Windows

  • Utility templates inside an open CSW: free through September 30, 2026, then billed from October 1. Before the change, the webhook uses pricing.type: free_customer_service and pricing.category: utility.
  • Utility templates outside an open CSW: billed at the utility rate for the recipient's country/region.
  • Volume tiers apply — higher monthly volume per market–category unlocks lower rates. See Pricing → Volume Tiers.

Best Practices

  • Keep utility templates factual, concise, and non-promotional.
  • Include concrete transaction references (order, booking, account, case IDs).
  • Do not add upsell or cross-sell wording in utility templates — Meta will reclassify them as marketing.
  • Use marketing templates separately when the objective is promotion.
  • For physical-location updates (delivery, pickup, store), prefer location templates over text-only descriptions.

Related

  • Location TemplatesWhatsApp templates with a map header. Specify latitude, longitude, name, and address at send time. Useful for delivery updates, store finders, ride-hailing pickup and drop-off.
  • TemplatesTemplate lifecycle, categories, and management through Dualhook and Meta Graph API.
  • Marketing MessagesMarketing template messaging through Dualhook's standard Cloud API runtime, plus boundaries for Meta's separate MM API product.
  • Authentication MessagesOTP and verification code delivery via WhatsApp: copy-code, one-tap, and zero-tap templates, linked device security, the 'I didn't request a code' webhook, and PendingIntent deprecation.
  • PricingDualhook subscription plans, what is included, and how pricing relates to Meta messaging fees.
  • WhatsApp Pricing Changes 2026Meta's 2026 WhatsApp pricing changes: Meta Business Agent billing, 1,000 free monthly service messages per number, chargeable service and in-window utility messages, and October rate cards.
Browse more docsStart Free Trial