Glossary · HSM template

HSM template

A WhatsApp template Meta has approved, with fixed category and variables, required for anything sent outside the customer service window.

Definition

WhatsApp message templates must be approved before they can be sent outside a customer service window. Categories and variables must match the approved version.

WhatsApp message templates must be approved before they can be sent outside a customer service window. Categories and variables must match the approved version.

All glossary terms
A wooden printing plate for a form, inked once, resting on paper.

The short version

  • An HSM template is a pre-approved WhatsApp message that a business can send outside the customer service window. The old name meant highly structured message; Meta now calls them message templates.
  • Every template has a category, a language, a header, a body, optional footer and buttons, and numbered variables that must match the approved version exactly.
  • Category is not cosmetic. Marketing, utility and authentication carry different rules and different prices, and a utility message that reads like a promotion gets rejected or re-categorised.
  • Editing an approved template sends it back for review and creates a new version. Treat the wording as a release, not a draft you can keep tweaking.
  • In India, WhatsApp templates are separate from DLT registration, which still governs commercial SMS and OTP. Confusing the two delays launches.
  • Price the channel in INR with 18% GST: LoopNow bills marketing at ₹1.15 per delivered message and utility or authentication at ₹0.22.

What an HSM template is today

An HSM template is a message that Meta has reviewed and approved for business-initiated delivery on the WhatsApp Business Platform. The acronym stood for highly structured message, a name from the early API era when the point was a fixed structure with placeholders. The current documentation calls them message templates, and the structure is still the point: a category, a language, a header, a body, an optional footer and optional buttons, with variables in defined positions.

Approval is the defining feature. A business cannot invent a message at send time and push it to someone who has not written to it in the last day. It submits a template, waits for review, and then sends that exact template with values substituted into the placeholders. The approved version is the contract. If the text changes, the approval no longer covers it, which is why an edit triggers a fresh review rather than a silent update.

Lifecycle flow of a WhatsApp template from authoring and submission through Meta review, approval and a live send. 1 Author copy 2 Submit review 3 Meta decision 4 Send approved 5 Monitor quality
Figure 1. The approved version is what may be sent. Any wording change loops back to review before the next send.

What it is not: a template is not a newsletter builder with a free-text field at the end, and it is not the same object as a DLT template in India. DLT registers entities, headers and SMS templates with the telecom ecosystem for commercial SMS. WhatsApp templates are reviewed by Meta and delivered over the WhatsApp Business Platform. A campaign that runs on both channels needs two registrations, two content reviews and two sets of rules, even when the words are identical.

Why templates exist: the customer service window

WhatsApp is a messaging product before it is a marketing channel, and the template system exists to keep it that way. When a person messages a business, a twenty-four hour customer service window opens. Inside that window the business can reply with free-form messages, because the person started the conversation and is presumably present. When the window closes, the business can no longer send free text. It can send an approved template, which is the mechanism that allows a delivery update, an appointment reminder or a payment confirmation to reach someone who is not currently chatting.

The window is per conversation, not per contact, and it resets each time the person sends a message. That has an operational consequence that surprises teams: a support agent who replies promptly keeps the window open and can talk naturally, while a marketing team that wants to reach a dormant contact must use a template and pay for it. Building a workflow that assumes free text will work at any time is the most common reason a WhatsApp automation fails silently at the first scheduled send.

Timeline of a WhatsApp conversation showing the customer message, the open twenty-four hour window, free-form replies and a template after closure. Hour 0 Customer sends a message window opens for 24 hours Hour 0 to 24 Free-form replies allowed normal support conversation Hour 24 Window closes free text no longer permitted After closure Approved template required business-initiated message Any reply Window resets on customer message per conversation, not per contact
Figure 2. The window opens on the customer message and resets on each reply. Outside it, only an approved template may be sent.

The window also shapes content. A utility template sent after the window is a notification, not a conversation, so it should carry the fact and a clear next step rather than a paragraph of brand voice. A marketing template is an interruption and should earn the tap with a specific offer and an obvious opt-out path. Copy that ignores this distinction tends to be rejected in review or, worse, approved and then blocked by recipients, which damages the quality rating that governs whether the template can keep sending.

Category is a rule, not a label

Every template is submitted under one of three categories. Marketing covers promotions, offers, product announcements, re-engagement and anything whose purpose is to generate interest. Utility covers a specific transaction or account event that the person is already party to: an order confirmation, a delivery update, a payment receipt, an appointment change. Authentication covers one-time passcodes and multi-factor login messages, and it has its own restricted format because its only job is to deliver a code.

The category determines the rules and the price. A utility message is expected to reference a real transaction and to avoid promotional language. A marketing message may promote, but it needs a clear opt-out and it costs more per message in most markets, including India. Submitting a discount as utility to get the lower rate is the single most common cause of re-categorisation, and repeated miscategorisation puts the business account under review. The reviewer is asking one question: is this message about something that already happened between you and this person, or are you trying to create interest?

Decision diagram for choosing a WhatsApp template category based on whether the message is a transaction, a promotion or a login code. Which category does this message belong to? decision Existing transaction Utility, factual Offer or re-engagement Marketing, opt-out Code or login check Authentication only
Figure 3. One question decides the category: is this about an existing transaction, or an attempt to create interest?

Authentication is a separate design space. The message must be a code, it must not contain marketing content, and the format is intentionally constrained so that recipients can trust it. Mixing a code with a promotional line does not make it a better authentication message; it makes it a rejected one. If you need to tell someone about an offer at login, that is a second template under marketing, sent separately and priced separately.

The parts of a template

A template has up to five regions. The header is optional and can be text, an image, a video or a document; text headers may carry a single variable. The body is required and carries the message, with numbered placeholders such as {{1}} and {{2}}. The footer is optional, small and often used for an opt-out line. Buttons are optional and can open a URL, call a number, reply with a quick answer or trigger a flow. Language is chosen at submission, and a multilingual template is submitted as separate language versions with matching structure.

Variables are positional, not named. The first value you send fills {{1}}, the second fills {{2}}, and there is no label to protect you if the order drifts. That is why the sample values submitted with the template matter: they show the reviewer what a real message looks like, and they document the intended order for the engineer who later builds the payload. A template with variables and no samples is rejected, and a template whose samples do not resemble the real data is a rejection waiting to happen.

Anatomy of a WhatsApp template showing the header, body, numbered variables, footer and buttons. LoopNow runtime Header text or media Body numbered variables Footer opt-out or note Buttons URL, call, reply
Figure 4. Five regions, one approved object. Variables are filled by position, so the sample values define the contract.

Structure also constrains length. A body that runs long gets truncated or rejected, and a message that needs three paragraphs to make sense is usually a message that should be an email. The strongest templates read like a notification from a competent operations team: what happened, which order or account, what the person should do next, and a way to reach a human. Everything else is optional, and most of it is noise on a lock screen.

Writing copy that passes review

The review is not a mystery. A reviewer is checking that the category matches the content, that the variables are used correctly, that the message is complete, and that nothing in it violates the business or commerce policies. Copy that fails most often does so for boring reasons: a variable at the very start or end of the body that leaves the message reading as a fragment, two variables with no text between them, a placeholder used for a sentence rather than a value, or a sample value that is obviously not representative.

Write the message as if the variable were already filled. If the body reads your order has been shipped and the variable is the order number, then the sentence must still make sense when a real alphanumeric order id lands in it. Avoid punctuation that depends on the value, avoid gendered grammar that assumes a name, and avoid a variable inside a URL path unless the button type supports it. Number the placeholders in the order a human would fill a form, and keep the same order in the code that builds the payload.

Wireframe checklist for template copy covering category fit, variable placement, sample values, length and opt-out. Category on brief No edge variables Real sample values Complete sentences Opt-out for marke…
Figure 5. A pre-submission checklist. Most rejections are foreseeable in the first two rows.

Keep promotional language out of utility templates and keep utility specifics out of marketing ones. A delivery update that adds a discount code will be re-categorised, and a marketing message that pretends to be a delivery update will be reported by recipients. Both outcomes cost more than the message would have. The safest habit is to write the category on the brief before the copy, and to reject any draft that drifts from it during review.

Why templates get rejected, and what to do

Rejections cluster. The most common is a category mismatch: promotional content submitted as utility, or a utility message that does not reference a specific transaction. The second is variable misuse: missing sample values, placeholders with no surrounding text, or a body that reads as a template rather than a message. The third is content that touches a prohibited or restricted category, such as alcohol, gambling, medicines or financial products where the policy requires care. The fourth is an incomplete or ambiguous message that a recipient could not act on.

The remedy depends on the reason, and the reason is usually visible in the review notes. A category mismatch needs a rewrite of the content or a resubmission under the correct category, not a plea in support. Variable misuse needs a copy edit and new samples. A policy issue needs a legal and compliance look before resubmission, because repeated attempts at the same content can escalate. A message that is merely unclear needs a shorter body and one clear call to action.

Grid of common WhatsApp template rejection reasons with a short note on the fix for each. Category rewrite or move Variables samples and text Policy legal review Unclear ask shorten, one CTA Length cut to the fact Formatting plain text only
Figure 6. Six reasons cover most rejections. Each has a different remedy, and none is fixed by resubmitting unchanged.

Two operational habits reduce the rate. Keep a library of approved templates and their approved text, so a new campaign starts from something that already passed rather than from a blank page. And log every rejection with its reason and the fix, because the same three mistakes account for most of the volume and a shared note stops the fourth person from repeating them. The library is also what makes localisation tractable: translate an approved structure rather than inventing a new one per language.

Editing, versioning and re-approval

An approved template is not frozen forever, but it is versioned in practice. When you edit an approved template, the change goes back for review, and the previously approved version may continue to send until the new one is decided or may be paused depending on the edit and the account state. Meta also limits how frequently an approved template can be edited, which turns careless iteration into a real cost. The safe design is to treat each approved template as a release with a version number, a change note and an owner.

Versioning matters because downstream code refers to a template by name. If you rename a template, every automation that sends it breaks. If you change the order of variables, every payload silently fills the wrong slot, and the message goes out with the amount where the name should be. Keep the name stable, change the version in your own registry, and update the sending code in the same release. A template is an API contract that happens to be written in prose.

Diagram of a template registry linking approved versions, language variants and the sending code that references them. Copy Draft Category Samples Locale Registry Name Version Owner Status Payload Header Body Buttons Order Send Audience Window Cap Log
Figure 7. A registry keeps name, version and payload aligned. Without it, a copy edit becomes a production incident.

Localisation adds a second axis. Each language version is reviewed separately, and the variable count and order should match across languages so that one payload builder can serve all of them. A Hindi version with three variables and an English version with two will force a branch in the code and a bug in the branch that nobody tests. Design the structure once, translate the text, and keep the placeholders aligned.

Quality rating and the cost of a bad send

WhatsApp tracks how recipients respond to a template. Blocks, reports and a pattern of recipients who never engage push the quality rating down, and a template rated low can be paused, which stops sends until the problem is fixed or a new version is approved. The rating is per template, not just per account, so one aggressive campaign can take down the exact message that your delivery notifications depend on. That is a sharp lesson for teams that reuse a single template for everything.

The operational response is segmentation and restraint. Send marketing templates to people who have engaged recently, cap frequency per contact, and make the opt-out real and easy. Send utility templates only when the underlying event actually happened, because a delivery update for an order that does not exist is both a support ticket and a quality signal. And keep a small set of critical utility templates on a separate, conservative sending pattern so that a marketing mistake does not degrade them.

Chart of WhatsApp message cost per thousand delivered messages by category, including eighteen percent GST. Marketing, with GST 1357 rupees Utility, with GST 260 rupees Marketing, base 1150 rupees Utility, base 220 rupees
Figure 8. Derived from published LoopNow rates: ₹1.15 marketing and ₹0.22 utility or authentication, plus 18% GST.

Cost is per delivered message and varies by category, so the category decision is also a budget decision. In India, LoopNow bills marketing messages at ₹1.15 and utility or authentication at ₹0.22 per delivered message, with 18% GST added on the invoice. A campaign that is re-categorised from marketing to utility changes the unit price by a factor of five, which is why the category argument is worth having before submission rather than after the first invoice.

India: opt-in, DPDP and the DLT confusion

Meta requires opt-in for marketing messages, and Indian law adds its own layer. Under the DPDP Act, consent must be free, specific, informed and unambiguous, with notice in clear language and an easy withdrawal path. A tick box that bundles WhatsApp marketing with terms of service is not specific consent. A phone number collected at a store counter for billing is not consent for promotional WhatsApp. The template system makes the content auditable but says nothing about whether you were allowed to send it to that person.

DLT is the persistent source of confusion. India requires registration of entities, headers and templates for commercial SMS through the DLT ecosystem, and OTP and transactional SMS routes depend on it. WhatsApp has its own review and its own rules. A team that has only ever run SMS assumes the DLT template id is the thing to quote in a WhatsApp payload, and then cannot work out why the message is rejected. Keep the two registries separate in your documentation, even when the campaign copy is shared.

Comparison of India DLT registration for SMS and Meta template approval for WhatsApp across scope, reviewer and rejection path. DLT for SMS Meta templates • Entity registration• Header and template• Telecom ecosystem• Template id quoted• SMS and OTP • Business account• Category and language• Meta review• Name and variables• WhatsApp only
Figure 9. Two registries, two reviewers, two rejection paths. Sharing copy does not share compliance.

The practical India checklist is short. Capture channel-level consent with the notice version, keep a suppression list that covers opt-outs and blocks, price the channel in INR with GST, and decide the escalation path for a customer who replies to a template with a question. That last one is the most human detail: a template is business-initiated, but the reply is a person waiting, and the twenty-four hour window is now open. Route it to someone who can answer.

Worked example: an order delay notice in Hinglish

A Delhi electronics retailer needs to tell customers that a shipment is delayed by two days. The first draft reads: Hi {{1}}, your order {{2}} is delayed. Sorry for the inconvenience. Shop more at our store and get 10% off. The category is submitted as utility, and it is rejected, because the last sentence is promotional and the message does not name the new delivery date. The rejection note says the content does not match the selected category, which is accurate.

The approved version drops the offer and adds the fact: Hi {{1}}, your order {{2}} is now expected on {{3}}. You can track it from the order page or reply here to speak to our team. The variables are name, order id and date, each with a realistic sample, and the body has text around every placeholder. The footer carries a support line rather than an opt-out, because this is a transactional message the customer is expecting. A separate marketing template, with its own opt-in and its own opt-out, carries the offer to people who have agreed to receive it.

Worked example flow from a rejected mixed-purpose template through a split into utility and marketing versions and two approvals. 1 Draft mixed copy 2 Rejected 3 Split by purpose 4 Two reviews 5 Both approved
Figure 10. One message, two purposes, one rejection. Splitting the copy fixed the category and protected the critical notification.

The lesson is not that promotions are forbidden. It is that one message cannot be two things. Splitting the notification from the offer made both messages pass, kept the utility price, and gave the customer a clear reason to open the first one. It also meant that when the marketing template was paused for low engagement, the delivery notification kept working, which is exactly the resilience the category system is designed to encourage.

Frequently asked questions

What does HSM stand for?

Highly structured message. It was the early name for a WhatsApp message with a fixed structure and placeholders, and the acronym stuck in vendor documentation. Meta now calls the object a message template. If a contract or a colleague says HSM, they mean the same approved template that the current API calls a template, so the terminology is a translation problem rather than a technical one.

Can I send free text on WhatsApp at any time?

No. Free-form messages are allowed only inside the twenty-four hour customer service window, which opens when the person messages you and resets on each new message from them. Outside that window, you need an approved template. A scheduled campaign that fires after the window has closed will fail unless it uses a template, which is why automations should check the window before choosing the message type.

How long does template approval take?

Usually minutes to a few hours, and occasionally up to a day. Meta does not promise a fixed turnaround, so a launch plan that depends on same-hour approval is fragile. Submit a few days before a campaign, keep an approved fallback template ready, and avoid editing an approved template the night before a send, because the edit returns it to review.

What happens when I edit an approved template?

The edited version goes back for review, and the previously approved version may continue or be paused depending on the change and the account state. Meta also limits how often an approved template can be edited in a period, so repeated tweaking has a cost. Treat the approved text as a release: version it in your own registry, keep the template name stable, and update the sending code in the same change.

Why was my utility template rejected for being promotional?

Because the content did not match the category. Utility is for a specific transaction or account event the person is already party to, and a discount, an upsell or a brand campaign is marketing by definition. Split the message: send the factual notification as utility and the offer as a separate marketing template with its own opt-in. Resubmitting the same copy under utility usually fails again.

Do I need opt-in for utility messages?

You need a lawful basis for the message, and in practice that means the person has an account or a transaction with you and expects operational contact. Meta still requires that you have obtained opt-in in accordance with its business policies, and DPDP requires specific, informed consent or another lawful ground. A delivery update for a real order is a different case from a promotional message to the same number.

Is DLT registration required for WhatsApp templates in India?

No. DLT is the Indian registration system for commercial SMS, covering entities, headers and SMS templates. WhatsApp templates are reviewed by Meta for the WhatsApp Business Platform. If you run the same campaign on SMS and WhatsApp, you need both, and the identifiers are not interchangeable. Quoting a DLT template id in a WhatsApp payload will not satisfy either system.

What does a WhatsApp template cost in India?

Pricing is per delivered message and depends on the category. LoopNow bills marketing at ₹1.15 and utility or authentication at ₹0.22 per delivered message, with 18% GST added on the invoice. A thousand marketing messages therefore cost about ₹1,357 including GST, against about ₹260 for utility. Re-categorisation changes the unit price, which is why the category decision has a budget consequence.

What happens if a template gets a low quality rating?

Meta can pause the template, which stops sends until the issue is resolved or a new version is approved. Quality reflects blocks, reports and low engagement from recipients. The fix is usually segmentation and frequency rather than copy: send to people who opted in and engaged recently, cap how often they hear from you, make opt-out easy, and keep critical utility templates on a separate, restrained pattern.

Can I use one template for many languages?

You submit a separate language version for each language, reviewed independently. Keep the structure and the number and order of variables identical across versions so that one payload builder works for all of them. A Hindi version with three placeholders and an English version with two forces a branch in the code, and the branch that nobody tests is where the wrong value ends up in the wrong sentence.

Sources and further reading

  1. Meta — WhatsApp Business Platform message templates
  2. Meta — WhatsApp Business Platform pricing
  3. WhatsApp Business — Messaging policy
  4. TRAI — Telecom Commercial Communications Customer Preference Regulations
  5. MeitY — Digital Personal Data Protection Act 2023
LoopNow AI Answers from published LoopNow pages
Hi — ask me about LoopNow products, pricing, DPDP or migration. I answer from the published site and can connect you to the team.
Contact page