Meta rejects WhatsApp templates with custom values
B
Bull Rocket Agency
For two weeks now, approximately from the week of August 10 to 16, 2025, when I create templates with custom values or GHL variables such as {{calendar.name}}, {{contact.id}} or {{paymentLink.Total_Amount}}, Meta has rejected them for the reason: INVALID_FORMAT, this usually doesn't happen with templates that include the contact's name and phone number.
And this is not a mistake with the structure of my messages, since we have tried multiple ways of drafting and structuring, and it's still the same result.
I require you to fix this bug as soon as possible since WhatsApp is the main channel of contact with my leads and I make use of multiple variables in my templates.
Log In
F
Francisco Romero
same here
B
Bull Rocket Agency
Hello Francisco Romero, yesterday they gave us an answer from GHL, I leave you the information that helped us:
Thank you for contacting us and for providing us with the details of the problem you are experiencing.
I understand that, for the past two weeks, your WhatsApp templates that use custom values such as {{calendar.name}} or {{paymentlink.total_amount}} are being rejected by Meta with the “INVALID_FORMAT” error. I fully understand how frustrating this must be, especially since WhatsApp is a primary channel for your agency and you depend on these variables for your workflows. I want to assure you that we can work this out.
This specific reason for rejecting Meta is almost always due to a few formatting rules that are small but very strict. It's not about the content being wrong, but about how the structure is presented to your review system. We've found that two key settings in the template creation process usually address this right away.
The first thing to review is the structure of the template itself. The Meta system requires that a template message never begins or ends with a variable. For example, a template such as “{{1}}, your appointment is confirmed” would be rejected. To fix this, you would simply add a word or punctuation mark first, such as “Hello {{1}}, your appointment is confirmed.” Likewise, your system doesn't allow two variables to be placed right next to each other, such as “{{1}} {{2}}”. They must be separated by at least one word or some punctuation mark.
The second, and most crucial, step is to provide an example for each variable you use. When you create a template with a placeholder like {{1}}, the Meta system doesn't know what type of information you plan to put there. By clicking the “Add Sample” button during the template creation process, you give your system the context it needs for approval. For a variable where you plan to use {{PaymentLink.Total_Amount}}, providing an example such as “$99.99" shows Meta that the variable is for a price, not for requesting sensitive information. This step is incredibly important and is often the main reason for these specific rejections.