HubSpot prospecting desk for personalized first-touch emails
Open one screen each morning to see the contacts you own, read the facts behind every draft, and send first-touch emails you actually approved.
I want an internal app my sales reps open every morning to write personalized first-touch emails, instead of pasting the same template into Gmail over and over. It is a review desk: the AI proposes, the rep decides, and nothing goes out without a human clicking approve.
The main view is a queue of the contacts the signed in rep owns. Load it with HubSpot Search Contacts scoped to that rep: resolve the signed in user to their HubSpot owner record with List Owners looked up by their email address, then filter contacts on that owner id. By default, hide any contact who has been emailed in the last 30 days, using the contact's last contacted or last outreach date property, and give the rep a toggle to show their full book including recently contacted people. Each row shows name, job title, company, lifecycle stage, and how long since they were last touched, with the coldest contacts first.
Selecting a row opens a detail panel that shows the specific facts the draft is built on, so the rep can sanity check what the AI leaned on rather than trusting it blindly. Pull the account record with HubSpot Search Companies using the contact's associated company or email domain, and show industry, company size, and lifecycle stage. Pull recent activity by reading the notes attached to the contact: use Batch Read Associations from the contact to notes, then List Notes to get the note bodies, and show the few most recent. These facts sit next to the draft on the same screen, not hidden behind a tab.
The rep selects one contact or many, picks an angle and a tone from short dropdowns, for example angles like industry pain, recent company news, or mutual connection, and tones like direct, warm, or consultative. Generate Draft then runs AI Generation (Generate Completion) once per selected contact, passing that contact's facts, the company facts, the recent notes, and the chosen angle and tone, and returns a subject line and a short opener. When a batch is running, show per row progress so the rep can start editing the first drafts while the rest finish.
Every draft lands in an editable state. The rep edits the subject line and the body inline in the app, and each draft carries a clear status: drafted, edited, approved, or sent. Approve is a deliberate per draft click. Nothing is queued, scheduled, or sent in the background, and there is no send all button that bypasses review.
When the rep approves and sends, create the message in their own mailbox with Gmail Create a Draft, then send it with Send a Draft. If the rep edits the wording after the Gmail draft already exists, push the change with Update a Draft before sending, so the version that goes out is always the version they last saw.
Every send is logged back to the CRM in the same handler. Use HubSpot Create Note attached to the contact, containing the subject and body that actually went out plus the angle used, so the next person to open that record can see exactly what was said. Use Update Contact to stamp the outreach date on the contact, which is what keeps that person out of the queue for the next 30 days. Use Create Task to book a follow up on the same contact a configurable number of days later, defaulting to three business days, assigned to the same rep.
Each rep only sees and works their own book, so scope every read and write to the signed in rep's owner id. Persist per rep the last angle and tone they chose, their show recently contacted toggle, and any drafts they generated but have not sent yet, so closing the tab does not lose work. Show a small counter of how many they have approved and sent today. If a send or one of the logging steps fails, surface the failure on that row with a retry, and never stamp a contact as emailed unless the send itself actually succeeded.
What does this prompt do?
- Gives every rep a morning queue of the contacts they own, with anyone emailed in the last 30 days filtered out by default so the same person never gets hit twice
- Shows the specific facts behind each draft, industry, company size, lifecycle stage and recent notes, right next to the email so the rep can check what the AI leaned on
- Drafts a subject line and opener for one contact or a whole batch in the angle and tone the rep picks, then lets them edit the wording inline
- Sends only what a human approves, then logs the send back on the contact, stamps the outreach date, and books a follow-up task automatically
What do I need to use this?
- A HubSpot account where your contacts and companies live, with contacts assigned to their owners
- A Gmail account for each rep who will send from the desk
- A few minutes to decide your outreach angles and tone of voice options
- Optional: a follow-up window that suits your team, the desk defaults to three business days
How can I customize it?
- Change the cooling off window, 30 days by default, before a contact comes back into the queue
- Edit the list of angles and tones reps can choose from, such as industry pain, recent company news, or a warm introduction
- Set how many days later the follow-up task is created, and who it gets assigned to
- Choose which contact and company details feed the draft, for example add region or deal stage to the facts panel
FAQs
Does this send emails on its own?
Can reps see each other's contacts?
What stops someone being emailed twice?
Can the rep change the wording before it goes out?
Will this work on a free HubSpot plan?
What gets recorded after a send?
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.
A calibration board that lines up every candidate's answer to the same question, hides names until your panel has scored, and writes the agreed rating back.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Open one board every morning to see every outstanding quote by age and value, decide on each one, and send follow-ups only after you approve them.
Stop pasting the same template into every first email.
Give your reps one screen that shows who to write to, what is true about them, and a draft worth editing, with every send still under their control.