# Lusha prospecting workbench with credit-safe reveals

> Build call lists without wasting credits: browse Lusha prospects for free, skip anyone already in HubSpot, and reveal only the contacts you pick.

- Workflow type: app
- Services: Lusha, HubSpot
- Categories: Sales
- Published: 2026-08-31

## What it does

- Search for prospects by job title, seniority, industry, company size, and location, and browse the full result grid without spending a single credit.
- See at a glance who is already in your CRM, so you never pay to reveal a contact you already own.
- Tick only the people you want, preview exactly what the reveal will cost, then unlock their verified emails and phone numbers and send them straight to your CRM.
- Keep a running credit balance at the top of the screen and a history of every reveal, so you always know where the month's budget went.

## What you'll need

- A Lusha account on a paid plan with prospecting access, since only admins can create the key the app needs.
- A HubSpot login, used both to check who you already have and to save the contacts you reveal.
- A rough idea of your ideal customer profile, since good filters are what keep the cost down.

## Prompt

Build me a prospecting workbench I can open whenever I need to put together a call list, so I stop burning Lusha credits on people I already have in my CRM. The whole point of the app is that browsing is free and spending is deliberate, so the interface has to keep those two steps visibly separate.

The main screen is a search panel sitting above a results grid. In the panel I set filters like job title, seniority, department, industry, company size, and location, then hit Search. That runs the Lusha Search Prospecting Contacts operation, which costs no credits, and fills the grid with the lightweight records it returns: name, job title, company, and location, with email and phone rendered as locked placeholders rather than empty cells. Keep the requestId that the search returns in app state alongside the rows, because the reveal step cannot work without it. Search page size caps at 40 and pagination is zero-indexed through pages: { page, size }, so drive the grid with Next and Previous controls off currentPage, pageLength, and totalResults instead of trying to load every result at once.

Across the top, show a running credit meter that reads Lusha Get Account Usage: credits used, credits remaining, and the plan total. Refresh it when the app loads and again after every reveal, and cache it briefly, because that endpoint is rate limited to roughly five requests per minute. Directly beside the meter, show what my current selection is going to cost before I confirm anything.

The cost preview has to be honest about the fact that phone reveals cost far more than email reveals, roughly ten times as much under Lusha's unified credit pricing. Let me choose per reveal whether I want emails only or emails and phones, default to emails only, and price those two lines separately in the preview so the phone premium is impossible to miss. Also note in the interface that the reveal-email and reveal-phone options only apply on unified credit plans and are ignored on legacy pricing, where every available data point comes back regardless of what I pick.

Before I reveal anything, check each row against my CRM. Lusha search results do not include an email address yet, so match on what is actually available at that point: use HubSpot Search Contacts against the company name plus first and last name, and use the LinkedIn profile URL as well whenever Lusha returns one. Badge each matching row as already in HubSpot with a link through to the record, and give me a one-click Exclude all matches control. Treat these as probable matches rather than certainties, and let me override the exclusion on any single row. Batch the lookups sensibly: HubSpot search permits at most five filter groups of six filters each per request and is limited to about four requests per second, so group the rows by company and check a page of results in a handful of requests rather than firing one search per row.

I tick the rows I actually want and hit Reveal. That calls Lusha Enrich Prospecting Contacts, passing the requestId from the original search together with the specific contact IDs I selected. This is the only place in the app that spends credits, so put an explicit confirmation step in front of it showing the row count, the email and phone breakdown, and the total credit cost. When results come back, fill the revealed emails and phones into the grid in place, and read the isCreditCharged flag on each returned record so the app can reconcile what I was actually charged against what the preview estimated, surfacing the difference when they disagree.

Immediately after a successful reveal, push those contacts into HubSpot using Batch Upsert Contacts, matched on email so I never create duplicates, writing first name, last name, email, phone, job title, and company. Batch upsert caps at 100 records per request, so chunk anything larger than that. Show the push outcome per row as synced or failed with the error message, and let me retry only the failures without re-revealing anyone, since those contacts are already paid for.

Put a Research this company button on every row that kicks off a background agent scoped to that row's company. The agent pulls firmographics with Lusha Enrich Company (Single) using the company domain, then writes a short account brief back into the app attached to that specific row: what the company does, industry, headcount and revenue band, headquarters location, and tech stack, closing with two or three sentences on why this account is or is not a good fit for outbound. Show each row's research state as queued, running, or done, and render the finished brief in an expandable panel beside the row so I can read it without leaving the grid. Company enrichment consumes credits too, so warn me before the first run and reflect the spend in the meter afterwards.

Persist enough that the app is worth reopening. Let me save filter sets as named searches I can reload with one click. Keep a record of every contact I have already revealed, including the date and what it cost, and badge those rows as already revealed so I never pay twice for the same person even across separate searches. Store the account briefs so they stay attached to their companies between sessions. Add a second view listing everything I have revealed, filterable by date and by the search that produced it, so I can see exactly where this month's credits went. Saved searches and reveal history are per user, while the credit meter reflects the whole Lusha account.

## How to customize

- Choose whether reveals include phone numbers or stick to email only, which is the single biggest lever on cost.
- Change how the app decides someone is already in your CRM, for example matching on company and name or on LinkedIn profile.
- Adjust which fields get written back to your CRM, and add your own tags or list membership for each batch you push.
- Retune what the research brief focuses on, such as fit for a specific product line rather than general firmographics.

## FAQ

### Does searching cost credits?

No. Searching and browsing results is completely free. Credits are only spent at the moment you reveal a contact's email or phone number, which is exactly why the app keeps those two steps separate and makes you confirm the second one.

### Why are phone numbers more expensive than emails?

Lusha prices phone reveals substantially higher than email reveals, often around ten times as much. The app defaults to email only and prices the two lines separately in the preview, so you can add phones deliberately rather than by accident.

### Will it stop me from revealing someone I already have in HubSpot?

It badges every row it finds in your CRM and gives you a one-click control to exclude all of them. Because the check happens before the email is revealed, the match is made on name and company and is treated as a likely match, so you can always override it on any individual row.

### Does this work on HubSpot Free?

Yes. The app only needs to search your contacts and create or update them, both of which are available on the free tier.

### What does the Research button do?

It sends a background assistant to pull that company's firmographics and write a short account brief next to the row, so you can judge fit without opening another tab. Company research also uses credits, so the app warns you before the first run and updates the meter afterwards.

Use this prompt in General Input: https://www.generalinput.com/prompts/lusha-prospecting-workbench-with-credit-safe-reveals