Skip to content
Notis

Create HubSpot email records from Google Sheets activity rows

You track outreach in a fast spreadsheet, but HubSpot timelines stay blank. Notis reads each new log row and writes it into HubSpot as an email engagement record so the history is real.

Trigger

New Rows in Google Sheet

Simple polling trigger that monitors Google Sheets for new rows. Detects when new rows are added and returns the complete row data. Perfect for triggering any workflow based on new sheet entries.

Action

Create a batch of emails

Creates multiple email objects for record-keeping (does not send emails) within hubspot crm in a single batch, allowing properties and associations to other crm objects to be set for each email.

Why this helps

Outreach gets logged in a sheet for speed, and the HubSpot timeline stays empty, so you cannot see the last touch on a contact.

  • Your outreach log becomes a visible HubSpot timeline without double entry.
  • You can see the last touch on any contact without opening a spreadsheet.
  • Records are created for record-keeping only, so nothing is actually sent by accident.

Setup

Build it in a few focused steps.

  • 1Connect Google Sheets and HubSpot to Notis once using your portal link.
  • 2Open New Automation, or ask Notis: when I add an outreach row, log it as a HubSpot email record.
  • 3Choose the New Rows in Google Sheet trigger and select your activity log.
  • 4Set the channel where Notis confirms each record it writes.
  • 5Add one test row and check the email record shows on the contact timeline.

Questions about this workflow

Does this send any emails?

No. It creates email engagement records for history only. Nothing leaves your account.

Can it attach the record to the right contact?

Yes. Include the contact identifier in your row and Notis associates the record to that person.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Google Sheets to Hubspot. A trigger fires from one place; an action lands in another.

Google Sheets triggers

Hubspot actions

Aggregate Metric Changed

Triggers when an aggregate metric (SUM/COUNT/AVG/MIN/MAX) changes in a Google Sheets spreadsheet. This trigger monitors an aggregate calculation on a target column (optionally filtered by a search column/value) and fires when the calculated result changes.

TriggerPolling

Add asset association

Associates an existing asset ('form', 'object list', or 'external web url') with a specified hubspot marketing campaign.

ActionInstant

Cell Range Values Changed

Triggers when values in a specified A1 range change in Google Sheets. This trigger monitors a specific cell or range of cells and fires when any values change.

TriggerPolling

Add token to event template

Adds a new custom data token to an existing event template for a specified hubspot application, optionally populating a crm object property if objectpropertyname is provided.

ActionInstant

Conditional Format Rule Changed

Triggers when conditional formatting rules change in a Google Spreadsheet. Detects when rules are added, updated, or removed. Uses snapshot-based diffing to detect changes between polls.

TriggerPolling

Archive email

Archives the hubspot email specified by `emailid` by moving it to the recycling bin, making it inaccessible unless restored.

ActionInstant

Data Validation Rule Changed

Triggers when data validation rules change (added/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.

TriggerPolling

Archive a batch of emails by ID

Archives multiple hubspot crm emails by id; ids must exist as archiving is irreversible.

ActionInstant

Developer Metadata Changed

Triggers when developer metadata entries change (new/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.

TriggerPolling

Archive a batch of quotes by id

Archives a batch of existing, non-archived quotes by their ids; this action is irreversible and useful for managing outdated or irrelevant quotes.

ActionInstant

Filtered Range Values Changed

Polling trigger that monitors Google Sheets filtered ranges for value changes. Uses snapshot-based diffing to detect when values matching a data filter change. Emits the matched values when changes are detected.

TriggerPolling

Archive batch of companies by id

Archives a batch of companies by their unique ids; targeted companies must exist, not be previously archived, and this api operation is irreversible.

ActionInstant

New Rows in Google Sheet

Simple polling trigger that monitors Google Sheets for new rows. Detects when new rows are added and returns the complete row data. Perfect for triggering any workflow based on new sheet entries.

TriggerPolling

Archive batch of contacts by id

Archives a batch of existing contacts by their hubspot crm ids, rendering them inactive; this action is irreversible via the api and requires manual restoration or a separate unarchive endpoint.

ActionInstant

New Sheet Added in Google Spreadsheet

Polling trigger that detects when a new sheet is added to a Google Spreadsheet.

TriggerPolling

Archive batch of deals by id

Archives a batch of existing deals by their unique hubspot ids, removing them from active views and reports (soft delete); archived deals may be restorable.

ActionInstant

Connect any two apps with Notis in the middle.

Not just Google Sheets and Hubspot. Any combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7 days free trial with 20$ free usage included.
No card. Works with personal or business Hubspot.