A prospect requests a demo. The right next step is a short, plain note from the rep who will run the call, sent from her own inbox, so the reply lands with her. HubSpot workflows get close, but not all the way there.

A workflow can send an automated marketing email (Marketing Hub Professional or Enterprise). It goes out through HubSpot's sending network, reaches only marketing contacts, and by default carries a subscription link in its footer. A workflow can also email your own team with an internal notification.

Natively, a 1:1 email from a rep's inbox runs through sequences. Enrolling contacts from any workflow takes Sales Hub or Service Hub Enterprise; on Professional, only a sequence's own form-submission and page-view automations can enroll.

Use workflow to trigger a sequence, opened in 2017, is one of the most-voted workflow ideas in the HubSpot Community, and HubSpot delivered it for Enterprise only. Sending sequences from a shared inbox was marked Not Currently Planned in May 2025. And one user who wired Gmail into a custom code action found that the Google login token expires; the accepted answer was to run your own authentication server.

So we built the step. Send email with Gmail is a new 0CodeTools workflow action. It sends a 1:1 email from a Gmail or Google Workspace mailbox you connected, takes HubSpot data tokens, and tells the workflow whether the email went out.

It works on contacts, companies, deals, tickets and custom objects, and each sent email costs 1 credit. It launched for all 0CodeTools users on September 24, 2026, together with Send Google Ads Conversion.

The action, field by field

Here is a speed-to-lead workflow built with it. A contact submits the demo form, Maria's Gmail sends a personal reply, and a branch catches any send that fails.

Click the Send email with Gmail step to open its configuration, and hover the (i) icons to read the in-product help. Then click the Branch.

Trigger enrollment for contacts
When this happens
Group 1
Form submission is Demo Request any number of times anytime
Re-enroll onDetails
+
1. Send email with Gmail

Send a Gmail email from maria@biglytics.net Subject: Your Biglytics demo

Click to see configuration
+
2. Branch

Check branches in order: = SENT, = FAILED, and None met.

3 branches - click to see paths
+
End

Seven fields, in the order HubSpot shows them:

  • Target record picks the record the action runs for, usually the enrolled one.
  • From is a dropdown of every mailbox you connected in 0CodeTools.
  • To takes a typed address or a token such as Email (Enrolled contact). One recipient per send.
  • Reply-To is optional. Leave it empty and replies go to the From address.
  • Subject is the subject line and accepts HubSpot data tokens.
  • Body format is Plain text by default, or HTML when you want your own layout.
  • Body is the message itself, with data tokens from the enrolled record and its associations.

Each sent email is logged on the record's timeline, so the rep can see what went out without opening Gmail.

Connect every mailbox your team sends from

Mailboxes live in 0CodeTools under Integrations → Gmail. Connect one for each sender: personal @gmail.com accounts, Google Workspace (formerly G Suite) users, and shared addresses like sales@ or support@. Every one of them shows up in the From dropdown of every Send email with Gmail step.

1. Send email with Gmail
CancelSave
From *

Every Gmail or Google Workspace mailbox connected in 0CodeTools appears here.

1. Send email with Gmail

Send a Gmail email from maria@biglytics.net Subject: Your Biglytics demo

Click a mailbox to change the sender. Sample data.

The Gmail card under Integrations lists the two permissions you grant: "Send email on your behalf (we cannot read your inbox)" and "View your email address (to label this connection)". 0CodeTools can send from the mailbox, and it can't read what's in it. The integration passed Google's verification review before launch.

Send from each contact's own rep

Because From is a dropdown of connected mailboxes, it can't follow the contact owner by itself. The pattern is a branch: check Contact owner, and give each path its own Send email with Gmail step with that rep's mailbox. A None met path falls back to a shared address, so nobody gets skipped.

Trigger enrollment for contacts
When this happens
Group 1
Form submission is Demo Request any number of times anytime
Re-enroll offDetails
+
1. Branch

Check branches in order: Maria Lopez, Tom Becker, and None met.

3 branches - click to see paths
+
End

If you assign owners with HubSpot's Rotate record to owner action, put this branch right after it. Our guide to lead routing in HubSpot covers the assignment side. When you hire a rep, connect their mailbox and add one path.

Plain text or HTML

Plain text is the default. Line breaks are kept exactly as you typed them, which is how people write to each other, and it's the format that reads most like a personal note.

Switch Body format to HTML when you want your own layout: a signature block, a button, a table. The body is sent as your markup, so use inline CSS, because most mail clients ignore stylesheets. Toggle the preview to compare:

Body format:
Recipient's inbox
Your onboarding call
ML
Maria Lopez <maria@biglytics.net>
to jordan@acme.io

Hi Jordan, Welcome to Biglytics. Your onboarding call is set for Tuesday at 10:00. Add the call to your calendar: biglytics.net/book Bring one report your team rebuilds every week, and we will automate it together. Maria Lopez Biglytics

Sent from a real mailbox, so replies land in that inbox. Sample data.

Four more workflows worth building

These come from real requests in the HubSpot Community, rebuilt for a fictional company, Biglytics. Each one is a single workflow.

1. Check in on deals that went quiet

A Professional user built a follow-up sequence for deals with no activity for 7 days, then learned the workflow action to enroll it is Enterprise-only. With Gmail, the deal workflow sends the check-in itself, here for deals sitting in Presentation scheduled. In a deal-based workflow, To pulls the email of the deal's most recently updated associated contact.

Trigger enrollment for deals
Only enroll deals that meet these conditions
Group 1
Deal stage is any of Presentation scheduled (Sales Pipeline) and Last Activity Date is more than 7 days ago
+
1. Send email with Gmail

Send a Gmail email from tom@biglytics.net Subject: Checking in

Click to see configuration
+
End

With more than one rep, swap the single step for the owner branch above, using Deal owner.

2. Renewal reminders from the account manager

Another user wanted renewal emails 60 days before a subscription ends, sent as one-to-one mail. The answer at the time was a one-step sequence. Here, the renewal deal's workflow sends the first reminder in HTML, waits 30 days, checks whether the renewal closed, and only then sends a second note.

Trigger enrollment for deals
Only enroll deals that meet these conditions
Group 1
Contract end date is less than 60 days from now
Re-enroll offDetails
+
1. Send email with Gmail

Send a Gmail email from maria@biglytics.net Subject: Your renewal is coming up

Click to see configuration
+
2. Delay

Delay for 30 days

+
3. Branch

Check branches in order: Closed Won and None met.

2 branches - click to see paths
+
End

That branch matters. A workflow is not a sequence: it won't stop on its own when the customer replies, so check the record before every follow-up.

3. Close the loop from the shared support inbox

The shared-inbox idea has hundreds of votes from teams, finance among them, that want customer email to come from a team address, not one person's account. Connect support@ as a Google Workspace mailbox and a ticket workflow can send the check-in from the team address. Leave Reply-To empty, and the answer comes back to support@ instead of a no-reply address.

Trigger enrollment for tickets
Only enroll tickets that meet these conditions
Group 1
Ticket status is any of Closed
Re-enroll onDetails
+
1. Send email with Gmail

Send a Gmail email from support@biglytics.net Subject: Did we solve it?

Click to see configuration
+
End

The same setup covers the finance case from that thread: an initial notice from billing@, then Delay steps and further notices, all from the shared mailbox.

4. Confirm a date the moment someone sets it

In another thread, an operations team filled in an Inspection Date property and then emailed the customer a confirmation by hand. Any date property can drive this. At Biglytics, customer success sets Onboarding call date, and the workflow sends the confirmation from Maria's Gmail with Reply-To set to the team inbox, so anyone on the team can reschedule.

Trigger enrollment for contacts
Only enroll contacts that meet these conditions
Group 1
Onboarding call date is known
+
1. Send email with Gmail

Send a Gmail email from maria@biglytics.net Subject: Your onboarding call

Click to see configuration
+
End

When a send fails

The action returns one output, Result: SENT or FAILED, so put a Branch on it, as in the first workflow. A FAILED path can create a task for the owner, send a Slack notification, or try a different mailbox. Failed sends don't use credits.

The SENT path is optional. Use it when a property should record that the first touch went out, like the Lead status update above.

Limits worth knowing

This is a 1:1 email step, and it behaves like one.

  • Google's daily limits apply per mailbox. A personal Gmail account can send about 500 emails a day. A Google Workspace user can send up to 2,000 messages a day. Trial and brand-new Workspace accounts start at 500 a day, and Google raises that only after the domain has paid at least $100 in total, and the increase can take up to 75 days.
  • Workflow sends share the limit with everything that person sends by hand.
  • One recipient per send. There are no CC or BCC fields and no attachments yet. Link to files instead.
  • It isn't for campaigns. HubSpot itself warns that marketing mail dressed up as personal notes is more likely to be flagged as spam. Use marketing email for newsletters and lists. Add an enrollment filter that leaves out contacts who unsubscribed from one-to-one or all email.
  • Workflows need a Professional or Enterprise plan of Marketing Hub, Sales Hub, Service Hub, Data Hub, Smart CRM or Revenue Hub. That's HubSpot's requirement, not ours.

Need volume, CC or BCC? 0CodeTools also has Send email with SendGrid, built for transactional and higher-volume sending, with CC and BCC fields. Gmail is for the personal note; SendGrid is for transactional and bulk sending.

How to set it up

  1. Install 0CodeTools from the HubSpot Marketplace, or create an account at toolbox.resonatehq.com. The free plan needs no credit card.
  2. Connect your mailboxes in 0CodeTools under Integrations → Gmail. Each connected mailbox appears in the From dropdown.
  3. Add the action in any workflow. It's listed under 0CodeTools: Workflow Toolbox in the Integrated apps section of the action picker. Pick From, map To, write Subject and Body.
  4. Branch on Result so a failed send reaches a person.

Before you turn a workflow on, run it for a test contact with your own address in To. You'll see exactly what the recipient gets.

If a Zap sends these emails today, the HubSpot trigger, the Gmail step and the record update can all live in one workflow now. Our guide to replacing Zapier with HubSpot workflows walks through which zaps to move and which to keep.

What it costs

1 action credit per sent email. Failed sends are free. The free plan includes 100 actions a month, and paid plans run from $49/month for 3,000 actions to $249/month for 70,000. Details are on the 0CodeTools pricing page.

See the full action, the comparison with HubSpot's native email options, and every use case on the Send email with Gmail page, or start free at toolbox.resonatehq.com.

Related guides

Frequently asked questions

Can a HubSpot workflow send a 1:1 email from a rep's Gmail natively?+
Only through sequences. On Sales Hub or Service Hub Enterprise, any workflow can enroll contacts in a sequence that sends from the rep's connected inbox. On Professional, only the sequence's own form-submission or page-view automations can enroll contacts. HubSpot's Send email workflow action sends automated marketing email instead. Send email with Gmail from 0CodeTools adds a step that sends a 1:1 email from any connected Gmail or Google Workspace mailbox, on any Professional or Enterprise hub with workflows.
Can each contact get the email from their own owner?+
Yes, with a branch. The From field is a dropdown of connected mailboxes, so add a Branch on Contact owner (or Deal owner) and put one Send email with Gmail step in each path, each with that rep's mailbox. A None met path can send from a shared address such as sales@.
Can 0CodeTools read my inbox?+
No. The connection grants two permissions: send email on your behalf, and view your email address to label the connection. 0CodeTools can send, but it cannot read your mail.
How many emails can I send per day?+
Google's limits for the mailbox apply: about 500 emails a day for a personal Gmail account, and up to 2,000 messages a day per Google Workspace user (500 on trial and new accounts until the domain has paid $100). Workflow sends count toward the same limit as email sent by hand. The action is built for 1:1 email, not bulk campaigns.
Does it work with Google Workspace (formerly G Suite)?+
Yes. It works with Google Workspace mailboxes, including shared addresses like support@, and with personal @gmail.com accounts.
Can I add attachments, CC or BCC?+
Not yet. Each step sends to one address in To, with no CC, BCC or attachments. Link to files in the body, or use the 0CodeTools Send email with SendGrid action, which has CC and BCC fields.
Does it work in HubSpot's new workflow builder?+
Yes. HubSpot's new workflow builder replaces the old workflow engine, and every action is available in it, including 0CodeTools actions like Send email with Gmail.
What does it cost?+
Each sent email uses one 0CodeTools action credit, and failed sends are not charged. The free plan includes 100 actions per month; paid plans start at $49/month for 3,000 actions.