WhatsApp opt-in register your team checks before every send

By General Input

See who has really said yes to WhatsApp, build a segment from only those people, and push it to your broadcast tool with a record of who got what.

Integrations

  • Heyy
  • HubSpot
  • Google Sheets

Type

App

Categories

  • Marketing
  • Operations

Build me a WhatsApp opt-in register and audience builder that my marketing ops person opens before every broadcast, so we stop keeping consent in a spreadsheet nobody trusts. This app never drafts message copy, because our Heyy templates are already approved. Its job is to govern who is eligible to be messaged and to record the evidence.

The main view is the register. Pull contacts with HubSpot "Search Contacts", filtered to people who have a phone number, and show one row per person with their name, phone, the opt-in source, the opt-in date, the lawful basis, whether they have ever opted out and when, and when we last messaged them. Across the top show live counts for eligible, missing evidence and blocked, recalculated as filters change. The register also reads our send history from the Google Sheet with "Get Values" and joins it onto each row, so every person shows which campaigns and templates they have already been sent. Give me search and filters over source, date range, lawful basis, opt-out status and last-messaged date.

A second view lists our connected numbers from Heyy "List Channels" beside the approved templates from Heyy "List Message Templates", showing each template's name, language and status. Saving a segment means picking a channel and a template here, so every saved segment is tied to the template it is allowed to use, and a segment whose template is no longer approved is shown as unusable.

Building a segment is just filtering the register and saving that filter with a name, the chosen channel, the chosen template, and any personalisation fields to carry over. Saved segments persist in the app so the same audience can be reused and re-run for the next campaign.

A "Push to Heyy" action turns a saved segment into a campaign. It first creates the campaign label with Heyy "Create Label", then adds only the eligible people with Heyy "Create Contact", passing phone, name, the campaign label and the personalisation values as custom fields. Those custom fields are set up once, on first run, with Heyy "Create Contact Attribute", and the app should reuse existing attribute identifiers where they already exist rather than creating duplicates. Creating the labelled contact is what fires the Heyy template automation, so the app itself never sends a message. The same action then stamps the campaign name and push date onto each person with HubSpot "Update Contact", and writes the full push manifest to the Google Sheet with "Append Values": contact id, name, phone, campaign, channel, template, timestamp and who ran the push. Deduplicate by phone number so nobody is pushed twice in one campaign, and skip anyone already recorded in the manifest for that campaign so a re-run never double-sends.

Add an "Audit consent evidence" button that starts a background agent. It walks the register, reads each contact's properties with HubSpot "Get Contact", and judges each person's opt-in evidence as clear, missing, stale or ambiguous. Missing means no source or no date. Stale means the opt-in is older than the retention window set in the app, twelve months by default. Ambiguous means the source does not name a real consent capture point, or the lawful basis contradicts the opt-out flag. The agent writes the verdict and a short reason back with HubSpot "Update Contact" and files the full findings list to the Google Sheet with "Append Values", so the cleanup queue is ready before the next send. Show the agent's progress in the app while it runs, and show the findings in the register once it finishes.

Rules to bake in. Anyone marked opted out is hard blocked: they stay visible in the register with the reason shown, but they cannot be selected and cannot be pushed even by an admin. People without evidence are visible but unselectable until an audit clears them, with a hint saying what is missing. Marketers can filter, save and propose a segment, but only an admin can run the push, so show the push button disabled with an explanation for non-admins rather than hiding it. Every push and every audit run should be recorded with the person who ran it, since the whole point is being able to prove later exactly who received what and why we were allowed to message them.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerTurn Mailjet email clicks into ranked HubSpot follow-upsStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client accountSee which target accounts just started advertising on LinkedInFront desk appointment confirmation board for the next 3 days

Stop keeping WhatsApp consent in a spreadsheet nobody trusts.

Build the register once and every broadcast starts from a list you can actually defend.

Use prompt

Create a free account to use this prompt. No credit card required.