How GuestMaker checks and scores WhatsApp template drafts before submission, follows Meta's review status, and helps hotel teams prepare templates for review.

A hotel group spends a week building its first WhatsApp booking confirmation template. Marketing writes the copy, someone adds a friendly emoji to the header because it reads warmer, a developer drops in a placeholder URL since the real confirmation page isn't live yet, and the whole thing goes to Meta for review. Four days later it comes back rejected, with a reason code that explains almost nothing. Nobody on the team is sure which of the five or six things they did wrong actually broke it, so they guess, change two of them, and resubmit. That's the normal experience of building on the WhatsApp Business Platform without anything checking the work before Meta does.
GuestMaker runs as a Meta Tech Provider, which is Meta's own term for a company that runs the WhatsApp Business Platform's Embedded Signup and Cloud API onboarding flow on behalf of its customers. How a hotel actually connects a number, one click, no developer, no manual API credentials, is covered from the guest-facing side here. What that post doesn't get into is that one hotel group can connect more than one WhatsApp Business Account this way, one per property plus a shared group-level number if it wants one, each assigned to the right hotel. And once those accounts exist, message templates still have to pass Meta's review before those accounts can initiate conversations with them. Replies within the customer service window follow a different set of rules. That's the layer this post is actually about.
It's worth being precise about the difference, because "WhatsApp for hotels" covers two separate problems that get talked about as one. What the bot itself does once a guest replies, understanding a question, pulling the right answer from a hotel's knowledge base, knowing when to hand off to a person, is a conversational problem. This post is about the layer underneath that, the one no guest ever sees directly: getting the message templates that start those conversations in the first place, a booking confirmation, a pre-arrival reminder, a post-stay survey invite, actually approved by Meta. A hotel group can have the most capable conversational agent in the world and still not reach a single guest if its templates keep getting rejected or its account gets flagged for pushing out sloppy submissions.
The AI Template Studio generates drafts with GuestMaker's checks for headers, body text, button destinations and variable placement. Its checker currently applies a 60-character text-header limit, a 550-character Marketing body limit and a 1,024-character body limit for Utility and Authentication templates, alongside category-specific rules. These are the constraints GuestMaker currently applies, not a claim that every Meta template format has identical limits. A checked draft still requires Meta's review, and GuestMaker cannot guarantee first-time approval.
GuestMaker checks template names, variable numbering, sample values, media headers and button destinations before submission. The studio presents a score and four advisory verdicts: Likely Approved for a score of 90 or above with no errors or warnings; Good Chance when no errors or warnings were found but the score is below 90; Review Needed when warnings need attention; and Likely Rejected when errors were found. Errors are flagged for correction before submission. These are GuestMaker's assessments, not Meta's review statuses, and they do not guarantee approval.

A second check runs alongside the compliance one: uniqueness. Every new template's name and body get compared against everything already in the group's library, combining word overlap with a character-level edit-distance score into one similarity number. Above 70 percent similar to an existing template, the checker warns. Above 85, it blocks the submission outright. Meta itself rejects templates that read as near-duplicates of ones a business has already submitted, so this catches the same problem before it becomes a wasted review cycle, which matters most for a group that's iterating on wording across a dozen near-identical confirmation variants.
Sometimes a template clears every internal check and Meta still rejects it, or the compliance checker flags something the person building it isn't sure how to fix. Either way, there's a "Fix with AI" option that sends the specific violation, not the whole template, back to the AI and asks for a minimal, targeted correction rather than a full rewrite. A template rejected over one badly placed variable comes back with that one thing changed, the rest of the copy the marketing team actually wrote left alone.
GuestMaker tracks Meta's template-review states through several update paths. Meta's template-status webhooks trigger a refresh of the authoritative template record, alongside a scheduled background sync that currently runs hourly. A manual status check provides another way to fetch the current answer from Meta. Meta controls the review decision and its timing; neither a webhook nor the background schedule guarantees that every change will appear within a fixed number of minutes.
A hotel group with multiple properties, each running its own WhatsApp Business Account, doesn't build and submit the same booking confirmation template five separate times. It's built once, and whoever submits it chooses which of the group's connected accounts it should go out to. Meta reviews each of those submissions independently, so the same template can end up approved on one property's account, still pending on another, and rejected on a third for reasons specific to that account's own history, and GuestMaker tracks each of those outcomes on its own rather than reporting one blended status for all of them.

Once a template is approved in one language, turning it into another is a guided step rather than a rebuild from nothing. Someone picks the target language, and the AI translates the body, header, footer, and button text, while deliberately leaving every {{variable}}, every URL, and every phone number exactly as it was, since those have to stay literal for the message to keep working. The translated version becomes its own new template, linked back to the original, and goes through Meta's review in its own right, because Meta approves each language of a template separately rather than approving it once and letting every translation ride along for free. It's a close cousin of the same idea applied to email, which this blog has already covered in its own right. The specific rules differ, email has no variable-in-a-URL restriction or 1,024 character ceiling to respect, but the underlying job, translate the message a guest actually reads without breaking the parts that have to stay fixed, is the same one.
None of this exists for its own sake. A template that clears every check GuestMaker runs and then clears Meta's own review is what makes it possible to reach a guest on WhatsApp at all, as part of a CRM built around that channel rather than bolted onto it after the fact. What happens once a template is sitting there approved, a booking confirmation firing the moment a reservation lands, a check-in reminder going out the morning before arrival, without anyone at the hotel manually sending either one, is its own story. This post is about making sure the message is allowed to exist in the first place. That one is about what actually makes it go.
Thirty minutes, your real properties, no generic demo environment.