Unknown caller lookup console for Datagma and HubSpot

By General Input

Paste any unknown number and see who is calling, whether they are already in your CRM, and who owns them, all on one screen.

Integrations

  • Datagma
  • HubSpot
  • Google Sheets

Type

App

Categories

  • Sales
  • Customer Support

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.

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