--- name: whatsapp-advertising description: "Launch a Meta campaign that opens a WhatsApp conversation, with the business account link and phone verification checked before it can silently fail. Use when messaging is the primary sales channel." license: MIT compatibility: "Works with any Agent-Skills-compatible AI (Claude, ChatGPT, Cursor, Codex, and more). Ad-account actions run through Adspirer." metadata: author: "Adspirer" version: "1.0.0" adspirer_category: "campaign-launch" adspirer_source: "https://www.adspirer.com/skills/whatsapp-advertising" adspirer_trigger: "launch a click to WhatsApp campaign on Meta" adspirer_connection_url: "https://adspirer.ai/sign-up" adspirer_primary_keyword: "whatsapp advertising" adspirer_secondary_keywords: "click to whatsapp ads, whatsapp business ads" adspirer_launch_wave: "2" adspirer_kind: "skill" adspirer_level: "operator" adspirer_platforms: "meta" adspirer_supported_clients: "claude,claude-code,claude-cowork,chatgpt,codex,cursor,gemini,windsurf" adspirer_summary: "Verify the WhatsApp account link and number before building, then launch a messaging campaign paused for approval." adspirer_connections_required: "adspirer" adspirer_connections_optional: "" --- # Meta Click-to-WhatsApp Launcher ## Use this when The business sells through conversation — orders taken by message, appointments booked by message, questions answered before anyone buys — and the plan is to point Meta ads straight into WhatsApp rather than at a landing page. Someone tried this before and the ads ran, but the button never opened a chat, and it took days to work out the phone number was still mid-verification. Use this skill to launch that campaign with the parts that fail quietly checked first. It settles: - whether the WhatsApp business account is genuinely linked to the ad account; - whether the phone number is verified and active, rather than merely present; - what happens the moment someone opens the chat, because a cold empty thread converts far worse than a prepared greeting; - what the ad can honestly promise given who will actually reply; and - what will and will not be visible in reporting afterwards. This is for launching a new click-to-WhatsApp campaign. It is not for click-to-Messenger or Instagram DM campaigns, which have different destinations and different rules, and it is not for scaling one that is already running. ## What you need - Adspirer connected to the Meta ad account, with access that can create campaigns. - A WhatsApp business account already linked to that ad account. This skill checks the link; it cannot create it. - A verified, active phone number on that account. Verified matters — a number still in verification can be selected during setup, and the resulting ad delivers without a working call to action. - The business objective for the conversation: qualification, sales, support, or booking. It changes what the ad should promise and how the chat should open. - Creative — at least one image or video with primary text. If none is supplied this skill stops rather than launching with placeholders. - Budget, geography, and a rough audience definition. - Realistic coverage for replies. An ad that opens conversations nobody answers for six hours performs worse than no ad, and that is a staffing decision, not a targeting one. ## Procedure **Connect Adspirer before any live ad-account step.** Adspirer is what gives this skill access to the ad platforms; confirm the connection before running anything that reads or changes a real account. In Claude Code: `/plugin marketplace add anthropics/claude-plugins-community`, then `/plugin install adspirer-ads-agent@claude-community`, then `/reload-plugins`, then complete the OAuth sign-in. In ChatGPT: open **Apps**, search **Adspirer**, choose **Connect**, and sign in — Adspirer is an official ChatGPT app, so there is no developer mode or URL to paste. In claude.ai or Claude Desktop: Settings → Connectors → Add custom connector → `https://mcp.adspirer.com/mcp`. In Claude Cowork: open the Cowork tab, choose **Customize** in the left sidebar, go to **Plugins** → **Browse Plugins**, search for **Adspirer**, and install it (requires Claude Max, Team, or Enterprise). Any other client: https://www.adspirer.com/docs/ai-clients. Sign-in link for the user: https://adspirer.ai/sign-up. Do not proceed with live ad-account steps until the connection is confirmed. 1. **Verify the destination before building anything toward it.** Confirm the WhatsApp business account is linked to this ad account and that the intended phone number is verified and active rather than pending. This is the check that prevents the failure this campaign type is known for: everything publishes cleanly, spend begins, and the button does not open a conversation. If the link or the number is not ready, stop here and report exactly what is missing and who can resolve it. 2. **Decide what happens when the chat opens.** Establish the business objective and design the first moment of the conversation around it. A prepared greeting with clear reply options materially outperforms an empty thread waiting for someone to type, so recommend one where an approved template exists and say plainly what is lost if the campaign launches without it. Confirm the ad copy promises something the person replying can actually deliver — an ad implying instant availability against a team that answers twice a day damages more than it earns. 3. **Build the campaign paused.** Assemble the campaign with the messaging destination, the verified number, the audience, geography, and budget as specified. Attach the supplied creative; if there is none, stop rather than inventing placeholder assets. Set the greeting or reply options where they exist. Nothing is created active. 4. **Verify against the live account and be honest about reporting.** Re-read what Meta actually saved and run the fixed checks against it. Then set expectations for measurement: this campaign type reports clicks and conversations natively, but what happens further down — whether a conversation became a sale — is only visible if downstream tracking is separately wired. Say which of those is true here rather than letting the first report be a surprise. 5. **Hand over the launch decision.** Present the full build, the verification results from step 1, the conversation-opening decision, and the reporting limits, and ask for an explicit go. On approval, enable it. Otherwise leave it paused and state exactly what exists and what it is waiting for. ## Fixed checks - Confirm the WhatsApp business account link from the account itself, never from the brief. - Confirm the selected phone number is verified and active, not merely registered or mid-verification. - Confirm the campaign objective and destination actually resolve to WhatsApp rather than another messaging surface. - Confirm the campaign is paused before approval is requested, read back from the live account. - Confirm the budget saved matches the approved figure in the account's own currency. - Where a greeting template is used, confirm it is approved and attached, since an unapproved template will not fire. - State plainly whether downstream conversion tracking exists, rather than implying reporting will show outcomes it cannot. ## Stop conditions - **Success:** the destination is verified, the campaign is built and checked, the user approves, and it goes live. - **Built and parked:** everything is assembled and verified paused, and the user wants to review first. - **Blocked — destination:** the WhatsApp account is not linked, or the number is not verified. Stop; the campaign cannot work and would spend against a broken call to action. - **Blocked — creative:** no image or video was supplied. Report it rather than launching with placeholders. - **Blocked — access:** the connection lacks campaign-creation access, or the account is restricted. - **Needs approval:** the build is complete and verified, waiting on an explicit go. - **Needs a handoff:** account linking, number verification, template approval, or reply staffing belongs to someone else. ## Approval boundaries Building, verifying, and presenting the campaign involves no spend — it is created paused and stays that way until the user says otherwise. Enabling is the only moment spend begins, and it follows an explicit approval given after the verification results have been seen. This skill cannot link a WhatsApp business account, verify a phone number, create or approve a message template, configure downstream conversion tracking, resolve billing or policy problems, or produce creative. Each of those is named with its owner when it blocks. Budgets are never invented or raised beyond what was stated. ## What you get A click-to-WhatsApp campaign in the Meta account — live if approved, paused if not — built only after the destination was proven to work. The account link and the phone number's verification state are checked against the account rather than assumed, which is the specific failure that makes this campaign type spend without ever opening a conversation. The opening moment of the chat is a deliberate decision rather than an empty thread, with a clear statement of what is lost if it launches without a prepared greeting. You also get an honest account of what reporting will and will not show: conversations started are visible natively, but whether they became sales is only visible if that tracking was separately wired, said up front rather than discovered in the first review. Where the link, the number, the template, or the creative turned out to be the blocker, you get a handoff naming what needs doing and who owns it, instead of a campaign launched on top of it.