Turn a HubSpot list into a call sheet you can actually dial

See which contacts have a mobile, which have only an email, and which have neither, then fill the gaps and approve each number before it saves.

App
DatagmaHubSpotGoogle SheetsSalesOperationsLead EnrichmentData Sync
PromptCreate

I want an app my sales reps open before every calling block that turns a HubSpot contact list into a dialable call sheet. The people using it are SDRs and inside sales reps who are about to spend an hour on the phone, so the app has to answer one question fast: which of these people can I actually reach right now, and can I fix the ones I cannot before I start dialing.

The main screen is the call sheet. Let me pick a HubSpot list or a filter (owner, lifecycle stage, last activity date, a saved list membership) and load the contacts with HubSpot Search Contacts, requesting the properties the sheet needs: first name, last name, job title, company, company domain or website, mobile phone number, phone, work email, and LinkedIn URL if the portal stores one. Show one row per contact with name, title, company, mobile, work email, and a reachability column that classifies each person into exactly one of three states: has a mobile, has a work email but no mobile, or has neither. Make the reachability state filterable and sortable so a rep can jump straight to the unreachable block, and show a count of each state above the table.

Put my remaining Datagma balance in the header, read with Datagma Get Credits, and refresh it when the app loads and again after every batch finishes. This matters because reps should see what they have left before committing a batch, so show the selected row count next to the balance. Datagma only charges when it actually finds a match, so make it clear in the interface that rows which come back empty do not consume credits.

Let me select rows with checkboxes, including a select-all for a filtered view, and press one button to fill the gaps. For each selected contact, run Datagma Search Phone Numbers using their work email and/or LinkedIn profile URL as the input, with the optional WhatsApp check enabled so I learn whether the number is live. When a contact has a name and a company domain but no email address at all, run Datagma Find Work Email first from the name plus the domain (or the LinkedIn company slug if that is what is stored), then feed any email it returns back into the phone lookup for that same person. Process the batch with sensible concurrency, show per-row progress, and never block the whole batch on one slow or failed lookup.

Important detail about reading results: Datagma responses come back as HTTP 200 even when nothing was found, and carry a numeric code in the body where 5 means not found and 3 means an invalid argument or bad key. Read the body code rather than trusting the HTTP status, and render those rows honestly as no match or as a bad input, not as a silent success or a hard error.

Every result lands in a review panel rather than going straight to the CRM. For each row show the contact, what was found (the mobile number, the work email, or both), whether WhatsApp verified the number, and what the value in HubSpot is today so I can see I am filling a blank rather than overwriting something. Nothing writes back through HubSpot Update Contact until I approve that specific row. Give me approve and skip per row plus an approve-all-found action, write only the approved fields onto the matching contact ID, and mark the row as saved in the call sheet with the new value shown inline. If a write fails, keep the found value in the panel so I can retry rather than losing the result I paid for.

Finally, let me push the finished call sheet to a Google Sheets tab with Append Values so the team has a record of who was worked. Let me choose the spreadsheet and tab, and append one row per contact with name, title, company, mobile, work email, whether WhatsApp verified the number, the reachability state after enrichment, whether the record was updated in HubSpot, who ran it, and the date. Appending should add to the existing tab rather than replacing it, so the log builds up across calling blocks.

Remember the last list or filter each rep used and reopen it on their next visit, so opening the app before a calling block takes one click. Keep the whole thing on one screen where possible: the sheet, the selection, and the review panel should feel like a single workspace rather than a multi step wizard.

What does this prompt do?

  • Loads a HubSpot list or filter into one call sheet and flags every person as reachable by mobile, reachable by email only, or not reachable at all.
  • Lets you tick the unreachable rows and look up their missing mobile numbers and work emails in a single batch, with an optional WhatsApp check on each number found.
  • Holds every result in a review panel first. You see the number, whether WhatsApp confirmed it, and nothing goes back to HubSpot until you approve that row.
  • Shows your remaining lookup balance in the header before you start a batch, and pushes the finished call sheet to a Google Sheets tab so the team has a record of who was worked.

What do I need to use this?

  • A HubSpot account with contacts you can search, plus permission to edit contact records
  • A Datagma account, which is what finds the missing mobile numbers and work emails
  • A Google account with a spreadsheet where the finished call sheet gets logged
  • A HubSpot list or filter that matches the people you plan to call in this block

How can I customize it?

  • Set which HubSpot list or filter loads by default, so each rep opens straight into their own calling block.
  • Turn the WhatsApp check on or off, or treat a WhatsApp confirmed number as the only kind worth dialing.
  • Choose which spreadsheet and tab the finished call sheet is appended to, and which columns go with it.
  • Adjust what counts as reachable, for example if a direct line matters to your team as much as a mobile.

FAQs

Does this change my HubSpot contacts automatically?
No. Every number and email found lands in a review panel, and each row has to be approved individually before anything is written back to HubSpot. Rows you skip leave the CRM untouched.
What happens when no phone number is found for someone?
The row is marked as no match and stays on your sheet so you know it was already tried. You are not billed for those, because the lookups only charge when a real match comes back.
Will it work if a contact only has a LinkedIn profile and no email?
Yes. Mobile lookups can run from an email address, a LinkedIn profile URL, or both together. Work email lookups need a name plus the company domain, so contacts missing both a domain and a LinkedIn company are flagged as not enough information.
How do I know what a batch will cost before I run it?
Your remaining balance is shown in the header and refreshes before each run, so you can see what you have left next to the number of rows you selected.
What does the WhatsApp check actually tell me?
It tells you whether the mobile that came back is active on WhatsApp, which is a useful signal that the number is live and worth dialing rather than an old one.
Can several reps use this on the same list?
Yes. The call sheet reads whatever list or filter you point it at, so reps can each open their own segment, and the export records who was worked and when.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Plan a field sales day around drive time and neglected accounts

Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.

Geolocation
HubSpot
Google Calendar
App
Find ICP accounts, verify the emails, file them in HubSpot

One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.

Hunter
HubSpot
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App
Morning repricing console for Shopify with margin-safe rules

Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.

Hyperbrowser
Shopify
Google Sheets
App
Pre-flight bounce check before you launch a cold email sequence

See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.

Hunter
Google Sheets
App

Stop starting your calling block with blank phone fields.

Load your list, see who is genuinely reachable, fill the gaps you approve, and get on the phone.