What this means
Your message template was approved without a URL inside the body’s variable(s), but at send time you’re putting a URL inside a body parameter (e.g., ). For anti-phishing and quality reasons, Meta does not allow full URLs inside body placeholders. Links must be part of the template itself or placed in buttons (with optional dynamic suffixes).
Why it happens
You’re passing text like into a variable .
The template’s body was approved as plain text (variables expected to be names, codes, dates—not links).
You used a URL shortener in a variable (many are blocked in parameters).
You need a URL button instead of a body variable.
How to fix it (choose one)
Option A — Make the linkstaticin the body
Use a template where the full URL is written directly in the approved body (no variable).
Example body:
“Hi {{1}}, please review your offer: https://example.com/offers”
When to use: The link is the same for everyone.
Option B — Use aCTA Website Button
Create/modify the template to include a Call-to-Action (CTA) Website button:
Button URL (base):
Button text: “View Order”