Unknown caller lookup console for Datagma and HubSpot
Paste any unknown number and see who is calling, whether they are already in your CRM, and who owns them, all on one screen.
Build a single screen lookup console that anyone taking inbound calls can keep open all day to identify unknown phone numbers. The whole app is one page: a phone number input pinned at the top, a result area below it split into two side by side panels, and a recent lookups list underneath.
The input accepts a number pasted or typed in any format, for example +33 6 12 34 56 78, (415) 555-0123, 0033 612 345 678, or bare local digits. Before calling Datagma, parse whatever was entered into two separate parts, because Datagma Reverse Phone Lookup expects the number split into a number field holding just the digits and a separate code field holding the country code with a leading plus sign, rather than one combined E.164 string in a single field. Strip spaces, dashes, dots and parentheses. If the entry starts with a plus or with 00, treat the leading portion as the country code. If no country code is present, fall back to a configurable default country code held in settings, so a receptionist typing local numbers never has to add a prefix. Show the parsed country code and digits next to the input so the user can see how their entry was understood, and let them correct the country code from a dropdown before running the lookup.
Pressing Look up runs Datagma Reverse Phone Lookup with those two fields and renders the resolved identity in the left panel: full name, LinkedIn profile as a clickable link, and Facebook ID. Datagma returns HTTP 200 even when nothing matched, so never treat a 200 response as success on its own. Read the code, status and message fields in the response body: code 5 means not found, and code 3 means an invalid argument or an invalid API key. On code 5, render a calm empty state that says No match found for this number, echo the parsed number back, and suggest trying a different country code. Do not show an error banner, because an unmatched number is a normal outcome. On code 3, show a visually distinct message telling the user to check the Datagma API key in settings, since that is a configuration problem rather than a failed lookup.
As soon as the lookup returns, and without a second button press, run HubSpot Search Contacts in the right panel so the user sees identity and CRM status together. Search on the phone number first, matching against both the phone and mobile phone properties, and if the lookup resolved a name, search that name as a fallback so a contact stored with a differently formatted number is still found. When there is a match, show the contact name, email, company, lifecycle stage, and a link that opens the record in HubSpot, and resolve the owner id using HubSpot Get Owner so the panel names the teammate who owns them instead of showing a raw id. When there is no match, show a clear This person is not in your CRM state.
The two panels drive two actions. If the caller is new, an Add to CRM button creates the record with HubSpot Create Contact using the resolved first and last name plus the phone number in full international format, along with any other fields Datagma returned. If the caller already exists, compare the resolved details against the existing record field by field and surface only the genuinely missing or differing values as checkboxes, then a Patch record button writes the selected ones onto the contact with HubSpot Update Contact by contact id. Never overwrite a field that already holds a value unless the user explicitly ticks it. After either action, refresh the right panel in place so the console immediately reflects the new CRM state.
Append every lookup to a shared Google Sheets log with Append Values, whether or not it matched, one row per lookup: timestamp, the number exactly as entered, the parsed country code and digits, the resolved name, LinkedIn URL, Facebook ID, whether a CRM match was found, the CRM owner, the outcome (matched, no match, added to CRM, or patched), and which team member ran the lookup. Read that same sheet back with Get Values to power a Recent lookups list under the console showing the last 50 rows, newest first, so the team builds a shared history of who has been calling. Before running a new lookup, check the log for the same parsed number, and if it is already there, show a small notice above the result saying who looked it up and when, with the option to reuse the previous result or run a fresh lookup anyway. That is what stops two people researching the same number twice.
This console stays open all day, so optimise for speed and repetition. Keep focus in the input after a lookup completes, let Enter submit, allow a single Escape or Clear button to reset the field for the next call, and make the whole flow keyboard driven. Load the two panels independently with their own compact loading states, so the CRM check never blocks on the enrichment call. Anyone on the team can use the console, and every row in the log records who ran the lookup.
What does this prompt do?
- Paste or type any phone number, in any format, and instantly see the name, LinkedIn profile, and Facebook profile behind it.
- Shows side by side whether that person is already in HubSpot and which teammate owns them, so you know who you are talking to before you speak.
- Adds a brand new caller to HubSpot in one click, or fills in only the details missing from an existing record.
- Logs every lookup to a shared Google Sheets history so the team can see who has been calling and nobody researches the same number twice.
What do I need to use this?
- A Datagma account with lookup credits available
- A HubSpot login with permission to view, create, and edit contacts
- A Google account and a spreadsheet to use as the shared call log
- The phone numbers themselves, typed or pasted in by whoever takes the call
How can I customize it?
- Set the default country code so local numbers typed without a prefix resolve correctly
- Choose which details are allowed to be copied onto an existing contact when you patch a record
- Change the columns in the shared log, or point each team at its own spreadsheet
FAQs
What happens when the number is not recognized?
Does it work with international numbers?
Will this create duplicate contacts in my CRM?
Do I need a phone system connected to use this?
Can the whole team share one lookup history?
Related templates
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.
Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.
One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.
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.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
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.
Stop guessing who is on the line.
Turn an unknown number into a named contact, a CRM record, and a shared team history in a few seconds.