Working with Meta Templates
Some messages Polser sends are Meta templates: they are stored in Meta, require approval, and adhere to Meta's rules. Here's what an admin needs to understand about them.
1. Why Meta templates?
Polser uses Meta templates to guarantee its primary capabilities and use cases, especially for these two key aspects:
Messaging contacts outside the 24-hour window. This covers both initiating contact with someone for the first time (when no conversation window is open) and following up with a customer after more than 24 hours have passed since their last message (when the window has closed).. In both cases the first message must be an approved template.
Sending large-scale broadcast campaigns. A broadcast reaches many people at once, and sending on an approved template is the compliant way to message at scale on WhatsApp. So every broadcast goes out as an approved template, whether or not a given recipient happens to have an open window.
Everything else, the day-to-day replies inside an open conversation, is free text and needs no template.
⚠️ Meta reviews every template before it can be used, and approval can take up to 24 hours. Approval is often much quicker, but plan for up to a full day. A template you need for a Monday campaign should not be created on Monday morning. Prepare templates with margin, before you actually need them. Until a template is approved, it simply won't appear in Polser where you expect it.
2. Naming conventions
There are three recognition styles: by prefix (the name starts with something), by exact name (the name matches exactly), and by word (the name contains a word anywhere). This table is the reference for adding any new template:
New-chat opening
name starts with new_chat
by prefix
Expired-conversation openers (text)
name starts with expired_conversations
by prefix
Expired-conversation image attachment
exact name expired_conversations_image
by exact name
Expired-conversation document attachment
exact name expired_conversations_document
by exact name
Expired-conversation video attachment
exact name expired_conversations_video
by exact name
Broadcast
name contains broadcast
by word
3. Three rules for any Meta template
Whatever the template is for, three rules save you from the most common rejections and surprises:
Set the language to English. Even when the message text is in Spanish, French, or any other language, select English as the template's language. This is only the language setting, not the content: the body can stay written in whatever language you want. The reason is practical. Different users can see different default languages in Meta's interface, and normalising every template to English keeps things consistent and avoids problems later.
Don't let the body end on a variable. Meta does not allow the message body to finish with a variable (
{{1}}). Always add at least one character after it, anOK?, an emoji, anything, so the variable is never the last thing. A clean trick is to add the dash emoji (➖) right after the variable: it is almost invisible in the delivered message, and Meta generally accepts it as a valid ending.Prefer the Utility category when it fits. Meta sorts templates into categories, and Utility covers operational notices (confirmations, reminders, account or subscription updates). If your message genuinely serves an operational purpose, choose Utility: it is generally cheaper per message and is not subject to the volume limits that apply to Marketing templates. If the message is promotional, it belongs in Marketing: don't mislabel it, as Meta can recategorise or reject it.
4. Our Meta Templates explained
There are three types of Meta templates that come preconfigured, you'll need to adapt them to your specific needs.
New Chat templates
A New Chat template is the very first message a brand-new contact receives. There's no open window yet, so this opening message has to be an approved template.
You don't write the text inside Polser: you choose, for each number, which template is used as the opener (in the app, under Templates → Start new chat). What you do in Polser is connect an existing, approved template to a number.

Only templates whose name starts with new_chat appear as options. If you create an opener in Meta and don't name it that way (or it isn't approved yet), you won't see it in the list.

Having, at least one template is mandatory: a number without a New Chat template can't start new conversations.
Expired Conversation templates
These are the templates the team uses most without realising an admin set them up: the ones that let an agent reopen a conversation after the 24-hour window has closed.
What they are and why they exist. When a contact has gone more than 24 hours without writing, the conversation is expired, and the agent can't just type freely. In the agent's view, an opener dropdown appears above the compose field. The agent picks an opener and sends it, and depending on how you set it up, may also write their own message. These openers are Meta templates that you configure: the team only chooses from what exists, and without them an expired conversation is a dead end.

The admin job here is twofold: keep enough openers that the team isn't always sending the same one, and make sure they're approved before they're needed.
Text openers follow a prefix rule. Polser surfaces every template that starts this way, so you can have several (expired_conversations, expired_conversations_1, expired_conversations_2, and so on) and they all appear as different openers, giving the agent variety.
With a variable, or without: an important decision. When you create an opener, you choose something that changes how the team uses it: whether the template carries a variable ({{1}}) or not. Both are valid, but they serve different purposes.
With a variable, the agent writes their own message. The template's fixed text is only the opening line; the variable becomes a "write your reply" field below the dropdown, where the agent types whatever they want. This is the option for general-purpose openers that can reopen any conversation.
Without a variable, the message is fixed and closed. The template is sent exactly as written, and the agent can't add anything: the compose field appears greyed out. This is only useful when the whole message is always the same (a standard notice, an identical reminder for everyone).

💡 If in doubt, use a variable. An opener with a variable does everything: the agent can write their own message or send just the opening line. An opener without a variable only works for that one specific message, and if you meant it for general use, the agent will be stuck unable to type anything.
Attachments work differently: one exact template per file type. When the agent needs to send an image, document, or video into an expired conversation, the attachment also rides on a template, but these are matched by exact name, not by prefix: expired_conversations_image, expired_conversations_document, expired_conversations_video.
There are no numbered versions here: one template per type, with the exact name. If the name doesn't match exactly, Polser won't find it and the team can't send that file type. Each carries a short fixed line ("Click to open", "Here's the document", and so on), which is what makes an attachment sent outside the window look slightly different. That's not a bug: it's the only way to send a file outside the window.
Broadcast templates
Broadcast templates are the ones used in mass campaigns. This section covers the templates themselves; for building and sending a campaign, see the Broadcasts page.
Creating a broadcast template in Meta. The full walkthrough of WhatsApp Manager is here:
Templates with a video. Any template that carries a video (most often a broadcast) has a few specific requirements at creation time:
The header set to Video.
Video must be formatted in mp4, under 16 MB, codec H264 (🙋 this last part is very important).
Last updated
Was this helpful?