To replace Zapier with HubSpot workflows, start with the Zaps that send email from Gmail, upload offline conversions to Google Ads, write rows to Google Sheets or post to Slack. Gmail is the second most popular app in Zapier's directory, after Google Sheets, and Gmail and Google Ads are two of the first five apps Zapier suggests pairing with HubSpot (Zapier's app directory and HubSpot integrations page, September 2026).

If your Zapier task count keeps climbing, check the HubSpot Zaps first. A Zap on the "Contact Recently Created or Updated" trigger also fires on activity logs, bulk updates and HubSpot's own calculated-property changes. One admin on the HubSpot Community put it at tens of thousands of Zap runs a day when the team needs a few hundred.

Then there are the quieter failures: new-lead alerts that wait for Zapier's next poll, Zaps that create a new contact instead of updating the existing one, and Zaps nobody can change because they sit in a former employee's Zapier login.

HubSpot Community threads give the reasons those Zaps got built: a workflow had no action for the app on the other end, sending a webhook needed Data Hub, or the workflow couldn't start from anything outside HubSpot.

The trigger side has changed. HubSpot's new workflow builder, which is replacing the classic workflow engine, can start a workflow when a Google Sheet row is added or updated, when something happens in Slack, or when a webhook arrives. Every action, native or from Marketplace apps like 0CodeTools and AI Studio, is available in it.

The action side has changed too. Send email with Gmail sends from any of several connected Gmail or Google Workspace (formerly G Suite) mailboxes, and Send Google Ads Conversion uploads offline conversions to Google Ads. Both are new 0CodeTools workflow actions.

Workflows already post to Slack, write to Google Sheets and create Asana tasks with HubSpot's own integrations. Marketplace apps add Notion pages, SendGrid email, Telegram messages through Telegram for HubSpot, API calls without Data Hub through the API Webhook Connector, and AI steps from AI Studio: Send to AI, Send to OpenRouter, Web Search and Company Insights.

So for each HubSpot Zap, the question is whether it still needs a second tool in the middle. When HubSpot is the trigger or the destination and you're on a Professional or Enterprise hub, it usually doesn't.

TL;DR

  • ✓Gmail and Google Ads: two new 0CodeTools workflow actions. Send email with Gmail picks its sender from several connected Gmail and Google Workspace mailboxes, and Send Google Ads Conversion uploads offline conversions matched by GCLID.
  • ✓Google Sheets, Slack, Teams and Asana: HubSpot's own integrations add these as workflow actions. Workflows can also start from a Google Sheet row, a Slack event, a webhook or an app event like "Stripe: Invoice paid".
  • ✓Notion, Telegram, SendGrid, any API and AI: 0CodeTools adds Create Notion page, Send email with SendGrid, Send Telegram notification and the API Webhook Connector. Telegram for HubSpot messages customers. AI Studio adds Send to AI, Send to OpenRouter, Web Search and Company Insights. monday.com has no workflow action, so sync it or call its API.
  • ✓Go hybrid: HubSpot-triggered Zaps whose destination has no HubSpot action. Fire them from a workflow with a webhook step the moment the workflow reaches it.
  • ✓Keep in Zapier: app-to-app automations that never touch HubSpot, and long-tail apps with no HubSpot action and no usable API.
  • ✓Check your plan: workflows need a Professional or Enterprise hub. In classic workflows, the webhook trigger, Send a webhook and Custom code need Data Hub Professional or Enterprise.

HubSpot workflows without Zapier: Gmail, Google Ads, Google Sheets, Slack and webhooks

HubSpot Community threads keep asking "Is there a way to do this without Zapier?" For years the answer was usually no, because either the trigger lived in another app or the action did. In 2026, HubSpot's new workflow builder added triggers from Google Sheets, Slack and incoming webhooks, and Marketplace apps add actions for Gmail, Google Ads, SendGrid, Notion, Telegram and more.

HubSpot's new workflow builder: Google Sheets, Slack, webhook and schedule triggers

HubSpot's new workflow builder opens on a canvas with one Trigger node. Click Choose trigger and the panel shows three tabs: Popular, HubSpot and Apps. Click through the replica below, copied from the panel in a live portal.

ExitNew workflow
Run draftPublish
Choose trigger
Search triggers
HubSpot triggers
Explore all HubSpot
App triggers
Explore all apps
ID: Trigger
Trigger
Choose trigger
+

Pick a trigger on the left. App triggers start the workflow from outside HubSpot.

The HubSpot triggers are Property value changed, Record created, Form submission, Records match criteria, Run manually, Run on a schedule and Webhook event is received. Records match criteria, Run on a schedule and Webhook event is received are marked New. Under App triggers, Slack and Google Sheets (both built by HubSpot) start a workflow from outside HubSpot, and Explore all apps lists more.

Pick Google Sheets and you get Google Sheet row added or updated, configured with Trigger when and Connected account. After the trigger, + adds an Action, a Branch or a Delay, and every action is available there, including the ones from Marketplace apps such as 0CodeTools and AI Studio.

Three things to know about the Google Sheets trigger, from HubSpot's documentation:

  • It checks about once a minute. Connected sheets are checked every minute for changes, so expect roughly a minute between the edit and the workflow starting.
  • Repeated rows don't re-trigger. If the exact same row of values has existed in the sheet before, it won't start the workflow again.
  • Don't rename headers on a live sheet. Changing a column title re-enrolls every row, because HubSpot can't tell a rename from a column being deleted and re-added.

Webhook event is received is the new builder's answer to a Zapier Catch Hook. You create an event, connect the URL HubSpot gives you to the sending app, click Listen for events, and review the event's properties. Then you decide whether to link the event to CRM records or keep it unconnected, and the webhook's properties work as tokens in later actions.

Run on a schedule covers the "every Monday morning" Zaps. HubSpot's documentation says it also supports custom intervals, such as every three days.

Classic HubSpot workflows: webhook trigger and app events like Stripe

The classic workflow editor has two outside-in triggers of its own:

  • When a webhook is received, under Advanced options. HubSpot's example: "Webhook is received from a third party app after a new contact is created." It needs Data Hub (formerly Operations Hub) Professional or Enterprise, accepts JSON only, and enrolls an existing record matched through a property that requires unique values. It doesn't create records.
  • App events, under When an event occurs. Installed apps add their own events to the trigger list. In the portal we checked, Stripe adds "Stripe: Charge captured", "Stripe: Charge succeeded", "Stripe: Checkout session completed", "Stripe: Invoice paid", "Stripe: Payment intent payment failed" and "Stripe: Payment intent succeeded". Zoom, AI Studio for Workflows and other apps add theirs.

The Google Sheets trigger lives in the new builder. It did not appear in the classic editor's event list when we checked in September 2026.

Slack, Google Sheets, Asana and Teams actions are built into HubSpot

HubSpot's own integrations add Send Slack notification and Create Slack channel (Slack), Create Google Sheet row and Update data in a Google Sheet (Google Sheets), Create an Asana task (Asana) and Send Microsoft Teams Notifications (Microsoft Teams).

Gmail, Google Ads, Notion, Telegram and AI actions from Marketplace apps

The HubSpot Marketplace lists 2,000+ apps, and connected apps list their workflow actions under the app's name in the action picker. 0CodeTools adds 31 workflow actions.

The two newest are Send email with Gmail, which sends from any of several connected Gmail and Google Workspace mailboxes, and Send Google Ads Conversion, which uploads offline conversions matched by GCLID. The list also includes Send email with SendGrid, Create Notion page, Create Notion database item, Send Telegram notification and API Webhook Connector.

Telegram for HubSpot adds customer-facing actions such as Send Telegram Message to Group and Send Telegram Message to Contact. AI Studio adds AI steps: Send to AI, Send to OpenRouter, Web Search and Company Insights.

HubSpot's Send a webhook and Custom code actions both need Data Hub Professional or Enterprise, so a Professional portal without Data Hub has no native step for calling an API of your choice. The API Webhook Connector calls any REST API from a workflow and doesn't need Data Hub.

Which Zapier Zaps to move into HubSpot workflows, and which to keep

The rule: if HubSpot is the trigger or the destination, the Zap is a candidate to move. If HubSpot isn't in the loop at all, leave it in Zapier.

If the Zap...Do thisBuild it with
Starts in HubSpot and ends in HubSpot (update a record, create a task, associate records)MoveNative workflow actions
Starts in HubSpot and ends in Slack, Teams, Google Sheets or AsanaMoveHubSpot's native integration actions
Starts in HubSpot and ends in Gmail, Google Ads, SendGrid, Notion or TelegramMoveSend email with Gmail, Send Google Ads Conversion and other 0CodeTools actions, or Telegram for HubSpot
Starts in Google Sheets, Slack, a webhook or an app with app events, and ends in HubSpotMoveNew builder triggers, classic webhook trigger or app events
Starts in HubSpot and ends in an app with no HubSpot actionGo hybridAPI Webhook Connector to the app's API or to a Zapier Catch Hook
Never touches HubSpotKeep in ZapierZapier

What changes when a HubSpot Zap becomes a workflow:

  • Lead alerts don't wait for Zapier's poll. When the trigger happens inside HubSpot, HubSpot enrolls the record itself, so there's no polling interval between HubSpot and a third tool.
  • Native steps don't add tasks. Zapier counts every successful action as a task. Native HubSpot steps like Branch, Delay, Edit record or Send Slack notification don't consume tasks or app credits.
  • The record is already in hand. Branch on any property, pull data from associated records, route by owner. A Zap starts with what the trigger hands it; anything else takes extra lookup steps, and a lookup that misses is how Zaps end up creating a new contact or deal instead of updating the existing one.
  • One place to look when something breaks. A workflow's action logs show which record hit which step, and why. With a Zap, admins compare Zap history against HubSpot records, and Zapier and HubSpot support can each point at the other.
  • It doesn't live in one person's login. On Zapier's Free and Professional plans, a Zap sits in the account of whoever built it, and Zapier can't transfer that account. When that person or agency leaves, failure alerts go to nobody, while a workflow stays in your portal with the rest of your workflows.

What can block the move:

  • Plan tier. Workflows need a Professional or Enterprise hub (Marketing Hub, Sales Hub, Service Hub, Data Hub, Smart CRM or Revenue Hub). Starter plans get simple automations, whose documented actions are Delay, Send internal email notifications, Create task, Add to static segment and Run custom agent, and Sales and Service Hub Starter add up to 50 workflows with restricted triggers and actions. Third-party app actions aren't on the documented Starter list.
  • Data Hub features. In classic workflows, the When a webhook is received trigger, the Send a webhook action, Custom code, Format data and daily, weekly or monthly schedules need Data Hub Professional or Enterprise.
  • Workflow limits. Marketing, Sales and Service Hub Professional include up to 300 workflows; Enterprise includes up to 1,000.
  • App credits. Marketplace apps bill their own way. 0CodeTools uses action credits (see pricing).
  • A different mental model. Enrollment triggers, re-enrollment and branches don't map one-to-one onto Zap filters and Paths. Plan to rebuild the logic, not copy it step by step.

Zapier to HubSpot workflow map: Gmail, Google Ads, Slack, Notion, Asana, Telegram

Find your Zap by the app on the other end.

Zap you run todayHubSpot workflow equivalentWhat you need
Send email from Gmail (Zapier: Gmail, Send Email)Send email with Gmail (0CodeTools): From, To, Reply-To, Subject and a plain text or HTML bodyA Gmail or Google Workspace (formerly G Suite) mailbox connected in 0CodeTools
Send offline conversion to Google Ads (Zapier: Google Ads, Send Offline Conversion)Send Google Ads Conversion (0CodeTools)A GCLID stored on the record, and the Google Ads account connected in 0CodeTools
New lead or deal, message in SlackSend Slack notification (HubSpot's Slack integration): post to channels, users or the record owner, with buttons to create tasks or update the record from SlackSlack connected by a Super Admin or a user with App Marketplace permissions
Deal won, create a Slack channelCreate Slack channelCompany- or deal-based workflow; the record needs an owner
Alert in Microsoft TeamsSend Microsoft Teams NotificationsTeams integration; private channels aren't supported
Gmail email from each rep's mailbox or a shared one like sales@Send email with Gmail (0CodeTools): connect several Gmail and Google Workspace mailboxes and pick the sender in FromEach mailbox connected in 0CodeTools under Integrations → Gmail
Transactional email through SendGridSend email with SendGrid (0CodeTools)0CodeTools
HubSpot data into a Google SheetCreate Google Sheet row, Update data in a Google SheetAny Professional or Enterprise hub; up to 20 cells per row per action
New Google Sheet row into HubSpotTrigger Google Sheet row added or updated, then Create recordHubSpot's new workflow builder
Webhook into HubSpotWebhook event is received (new builder) or When a webhook is received (classic)Classic trigger: Data Hub Professional or Enterprise, existing records only
Stripe payment into HubSpotApp event trigger such as Stripe: Invoice paidStripe app installed
Notion page or database itemCreate Notion page, Create Notion database item (0CodeTools)0CodeTools; HubSpot has no native Notion workflow action
Asana taskCreate an Asana task (Asana app, built by HubSpot)Asana Premium, Business or Enterprise; the project can't be private
monday.com itemNo native workflow action. Use monday.com's own HubSpot app (recipes set up in monday.com) or HubSpot's Monday.com data syncmonday.com Standard or Pro for the recipes app
Telegram messageSend Telegram Message to Group, Send Telegram Message to Contact and more (Telegram for HubSpot); Send Telegram notification (0CodeTools) for internal alertsTelegram for HubSpot: $49/month or $490/year
HubSpot deal won, offline conversion in Google Ads with the deal amountSend Google Ads Conversion (0CodeTools) in a deal-based workflow, with the Amount token as Conversion ValueThe Google Click ID from the associated contact
Any REST API, or an app only Zapier connects toAPI Webhook Connector (0CodeTools) or native Send a webhookSend a webhook: Data Hub Professional or Enterprise
ChatGPT or Claude stepSend to AI, Send to OpenRouter, Web Search, Company Insights (AI Studio); Ask Anthropic (Anthropic app, built by HubSpot); HubSpot AI actions like Data Agent: Research and Summarize recordHubSpot AI actions use HubSpot Credits (10 per AI action run)
Approval step before an actionSend Approval (Slack, Email) (0CodeTools)0CodeTools
Delay, Filter or PathsDelay, Branch; Random delay (0CodeTools)Native, plus 0CodeTools for Random delay
FormatterFormat data (native); Transform Text (0CodeTools)Format data: Data Hub Professional or Enterprise
Find, create or update records and associationsCreate record, Edit record, Create associations; Find and associate, Copy associations, Find and merge (0CodeTools)Native, plus 0CodeTools
Zaps that run on a timerRun on a schedule (new builder) or Based on a schedule (classic)Classic daily, weekly or monthly schedules: Data Hub Professional or Enterprise

Two rows deserve a note. monday.com has no native HubSpot workflow action today, so either sync the records or call monday.com's API from a workflow with the API Webhook Connector. Telegram bots can only message people who started the bot first, which matters for customer-facing messages.

Seven common HubSpot Zaps, rebuilt as workflows

The diagrams below mirror HubSpot's classic workflow editor. Steps marked "Click to see configuration" open the real settings panel with the exact field labels; hover the (i) icons for the tooltip text from the live action. The Google Sheets and webhook examples use the new builder instead, and all company and people names are sample data.

1. Send email with Gmail on a new demo request, plus Slack alert and Google Sheets row

The Zap: HubSpot form submission, message in Slack, row in a Google Sheet, email from Gmail. Three of the first six Gmail + HubSpot templates on Zapier do the Gmail part: send an email through Gmail when a HubSpot contact is created or a HubSpot form is submitted (Zapier's Gmail + HubSpot page, September 2026).

Teams build it so a demo request gets a reply from a rep's mailbox without anyone enrolling the contact by hand, including outside office hours. Steps 1 and 2 are native HubSpot actions.

Step 3 is why the Zap existed. HubSpot's own Send email workflow action sends a marketing email (Marketing Hub Professional or Enterprise). It only reaches marketing contacts and by default carries a subscription-preferences footer, so it reads like marketing mail, not a note from the rep.

The native 1:1 route is a sequence. The Enroll in a sequence workflow action needs Sales Hub or Service Hub Enterprise; on Professional, a sequence's own Automation tab can enroll contacts, but only on triggers like a form submission or page view.

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

Post New demo request to #inbound-leads and notify the Contact owner

+
2. Create Google Sheet row

Add a row to Biglytics demo requests with name, email and company

+
3. Send email with Gmail

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

Click to see configuration
+
4. Branch

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

3 branches - click to see paths
+
End

Click Send email with Gmail to open its panel. What matters:

  • From lists every Gmail and Google Workspace (formerly G Suite) mailbox connected in 0CodeTools under Integrations → Gmail. Personal @gmail.com accounts work too.
  • To usually holds the token Email (Enrolled contact). Reply-To is optional; leave it empty and replies go to the From address.
  • Body format is Plain text (the default) or HTML. Subject and Body accept HubSpot data tokens.
  • The step returns Result = SENT or FAILED. The branch turns a failed send into a task for the owner instead of a silent gap.

Each sent email is logged on the enrolled record's timeline: the contact here, or the deal or ticket when the workflow is deal- or ticket-based. When you connect a mailbox, 0CodeTools asks for two permissions: "Send email on your behalf (we cannot read your inbox)" and "View your email address (to label this connection)". It can send; it can't read.

Here's what the lead receives. Toggle the body format to compare:

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

Hi Jordan, Thanks for requesting a Biglytics demo. What would you most like to see? Reply here and I will send you two times that work this week. Maria

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

Multiple Gmail mailboxes and per-owner sending. You can connect several Gmail and Google Workspace mailboxes in 0CodeTools: each rep's own, plus team mailboxes like sales@ and support@. From is a dropdown of those connected mailboxes, not a token, so per-owner sending is a Branch on Contact owner with one Send email with Gmail step per rep, plus a None met path that sends from a team address like sales@.

With a large team, that's one path to update whenever a rep joins or leaves. Every connected mailbox shows up in the list:

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 request

Click a mailbox to change the sender

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

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

3 branches - click to see paths
+
End

Limits, compared with Zapier's Gmail Send Email step: one recipient per send, no CC or BCC, and no attachments yet.

Google's own sending limits apply per mailbox. Google documents about 500 emails a day for a personal Gmail account and 2,000 messages a day per Google Workspace user (500 on trial accounts, and on new accounts until the domain has paid at least $100). This is for 1:1 email from people, not bulk marketing.

Each sent email uses one 0CodeTools credit, and failed sends aren't charged. HubSpot treats one-to-one email as its own subscription type, so add an enrollment filter that leaves out contacts who unsubscribed from one-to-one or all email.

Full details on the Send email with Gmail page, with more use cases in our Gmail workflow guide.

2. Send Google Ads offline conversions when a Stripe invoice is paid

The Zap: Stripe payment, update HubSpot, send an offline conversion to Google Ads. With the Stripe app installed, Stripe: Invoice paid is a trigger in the classic editor under App events, and the conversion upload is one 0CodeTools action.

Google Ads optimizes toward whatever conversions you report. If it only hears about form fills, it counts spam and people who can't buy as wins, and finds you more of them. Reporting the paid invoice tells it which clicks became customers:

Ad click. With auto-tagging on, Google adds a gclid parameter to the landing page URL for every ad click.
Trigger enrollment for contacts
When this happens
Group 1
Stripe: Invoice paid any number of times anytime
Re-enroll offDetails
+
1. Edit record

Set Lifecycle stage to Customer

+
2. Send Google Ads Conversion

Send a conversion to Google Ads account 123-456-7890

Click to see configuration
+
3. Branch

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

3 branches - click to see paths
+
End

How to read it:

  • Re-enroll is off, so only a contact's first paid invoice becomes a conversion, and Order ID gives Google Ads a unique ID per contact.
  • The value comes from the CRM. Conversion Value takes a static number or a token; here it pulls the associated deal's amount with Amount (Deal: Most recently updated). If a paying contact might have no associated deal, use a static value instead.
  • It matches by GCLID only. HubSpot's default contact property Google Click ID holds "the Google Click ID associated with the contact's most recent Google Ads click". A contact without one returns Result = FAILED, and the branch flags it.
  • Timing follows the workflow. The conversion time is the moment the action runs. Google won't import a GCLID conversion more than 90 days after the click, or outside the conversion action's click-through window (30 days by default), so widen the window to fit your sales cycle.
  • Reporting lags. UPLOADED means the upload went through. Google says imported conversions can take several hours to show in reports.

Each uploaded conversion uses one 0CodeTools credit; failed uploads aren't charged. No Google Ads API developer token is needed.

HubSpot's native ad conversion events (Marketing Hub Starter and up) have two documented triggers, lifecycle stage changes and HubSpot form submissions, with a value you set per event. Lifecycle events can match on hashed contact data as well as the GCLID. If that covers you, use it.

Zapier can do this job too. Its Google Ads step is called Send Offline Conversion, and one of its HubSpot templates for it chains four steps: the HubSpot trigger, a Filter, a Delay and the Google Ads action. Google's help page says importing conversions through Zapier needs a paid Zapier account.

The workflow version fires on any trigger from any object, such as a deal moving to Closed Won, which isn't one of the native events' documented triggers, and returns UPLOADED or FAILED for each record.

Setup steps are on the Google Ads offline conversions page and in our guide to sending offline conversions.

3. Google Sheets to HubSpot without Zapier: new row, new contact, Gmail follow-up

A common Zap: the events team logs booth leads in a shared Google Sheet, and Zapier turns each row into a HubSpot contact. HubSpot Community threads ask for exactly this, and the usual answer was a third-party tool like Zapier. In the new builder, it's a trigger:

ExitNew workflow
Run draftPublish
Choose trigger
Google Sheets triggers
Built by HubSpot
ID: Trigger
Trigger
Choose trigger
+

Pick a trigger on the left. App triggers start the workflow from outside HubSpot.

The workflow, step by step:

  1. Trigger: Google Sheets, then Google Sheet row added or updated. Pick the Google account under Connected account and set Trigger when.
  2. Create record: a contact built from the new row. Test it with a row whose email is already in HubSpot, so you know whether a returning lead updates the existing contact or becomes a second one.
  3. Send email with Gmail from the event lead's own mailbox (say, maria@biglytics.net): a short "great to meet you at the booth" note, so replies reach her.
  4. Send Telegram notification (0CodeTools) to the sales team's channel, so someone picks up the conversation.

Because every action is available in the new builder, steps 3 and 4 are the same 0CodeTools actions you'd use in a classic workflow.

Before you switch it on, remember the three Sheets rules from earlier: about a minute of lag, identical rows don't re-trigger, and renaming a header re-enrolls the whole sheet. Protect the header row in Google Sheets so nobody renames a column by accident, and tell the team.

4. Replace a Zapier Catch Hook: webhook in, HubSpot contact created, Slack alert

The Zap: a Catch Hook receives a sign-up from your product or a form tool, creates a HubSpot contact and posts to Slack. Webhooks by Zapier needs a paid Zapier plan; the HubSpot version needs no middle tool.

In the new builder:

  1. Trigger: Webhook event is received, then Create new event. Name it, paste the URL HubSpot shows into the sending app, and click Listen for events to capture a test.
  2. Review properties: on Next: Event properties, adjust each property's name and field type.
  3. Link or don't: choose Yes, link this event to CRM records or No, keep this event unconnected to CRM records. For sign-ups that aren't in HubSpot yet, keep it unconnected and create the record in the next step.
  4. Create record: a contact, using the webhook's properties as tokens. Test it with a sign-up whose email is already in HubSpot, so you know whether it updates the existing contact or creates a second one.
  5. Alert the team: a Slack notification with details from both the webhook and the new record, or a Send Telegram notification step.

The classic When a webhook is received trigger does a narrower job: it enrolls an existing record matched on a unique property, such as your app's user ID. Use it for updates like "trial activated", not new sign-ups. Data Hub Professional includes up to 10 webhook triggers, Enterprise up to 100.

5. Closed-won deal: Slack channel, Asana task, Notion page, Telegram ping

The closed-won kickoff Zap: when a deal closes, create a Slack channel, a project task and a notes page, and tell the team. It's four or more Zapier tasks per deal. In HubSpot, two of the steps are native and two come from 0CodeTools.

Trigger enrollment for deals
Only enroll deals that meet these conditions
Group 1
Deal stage is any of Closed Won (Sales Pipeline)
Re-enroll offDetails
+
1. Create Slack channel

Create a channel for the deal; the Deal owner is invited

+
2. Create an Asana task

Add a Kickoff task to the Client onboarding project

+
3. Create Notion page

Create a kickoff page under Client Onboarding

Click to see configuration
+
4. Send Telegram notification

Post the win to @biglytics_sales

Click to see configuration
+
End

Setup notes (the first two from HubSpot's documentation):

  • Create Slack channel works in company- and deal-based workflows. The record needs an owner, and the owner is invited by default.
  • Create an Asana task only sees projects that aren't private, and the user who connected Asana must be a collaborator on the project.
  • Create Notion page returns Page ID and Page URL as outputs, so a later Edit record step can save the link on the deal.

For customer-facing Telegram messages (a welcome message in a client group, say), use the Telegram for HubSpot actions such as Send Telegram Message to Group. More patterns in Telegram and Notion integration with HubSpot.

6. AI Studio instead of a ChatGPT Zap: Company Insights, Web Search and Send to AI

The Zap: new HubSpot company, scrape the website, ask ChatGPT to classify it, update HubSpot. AI Studio does each step as a workflow action:

Trigger enrollment for companies
Only enroll companies that meet these conditions
Group 1
Website URL is known
Re-enroll offDetails
+
1. Company Insights

Read the company's website and describe the business

Click to see configuration
+
2. Web Search

Search the web for recent news about the company

Click to see configuration
+
3. Send to AI

Score the company against your ICP using steps 1 and 2, and save the answer to ICP fit

+
4. Edit record

Set Description to the Company Description from step 1

+
End

What each step hands to the next:

  • Company Insights takes the website and a Description Type ("1: Essential" or "2: Detailed") and returns Company Name, Company Description and Raw Webpage Content.
  • Web Search returns an AI generated answer, plus AI Summary of page 1 to 3 and Link to page 1 to 3.
  • Send to AI takes a model under Choose AI model (for example "OpenAI Basic (GPT-5-mini)"), a Prompt for AI, an optional Property to include with prompt, and a Save result to a property checkbox. Its output is AI Response.

If the model you want isn't in Send to AI's list, Send to OpenRouter runs any text model on OpenRouter, billed by actual model cost. Link your own OpenRouter key to pay OpenRouter directly, for a flat 1 credit (200 tokens) per run.

HubSpot also has native AI actions in the workflow picker, such as Data Agent: Research, Infer company value proposition and ICP and Research company news. They draw HubSpot Credits: 10 per AI action run, per HubSpot's product catalog. Compare both on a few records before you commit.

7. Everything else: keep the Zap, and trigger it with the API Webhook Connector

Some destinations have no HubSpot action and no API you want to call yourself. For those, keep the Zap, but start it from a workflow instead of a broad HubSpot trigger in Zapier. The API Webhook Connector posts to a Zapier Catch Hook from inside the workflow:

Trigger enrollment for contacts
Only enroll contacts that meet these conditions
Group 1
Lifecycle stage is any of Customer
Re-enroll offDetails
+
1. API Webhook Connector

POST contact tokens to a Zapier Catch Hook

Click to see configuration
+
End

Here the workflow decides which records qualify, not a broad Zapier trigger like "Contact Recently Created or Updated", so the Zap only runs, and only bills tasks, for those.

A Catch Hook needs a paid Zapier plan and fires when the request arrives; Zapier's polling triggers check every 2 minutes on Professional and 1 minute on Team.

HubSpot's native Send a webhook action does the same job if you have Data Hub Professional or Enterprise; it supports POST and GET and retries failed calls for up to three days. The full setup, authentication and pitfalls are in Trigger Zapier instantly from HubSpot.

What it costs: Zapier tasks vs HubSpot workflow actions

The two tools bill on different units, so compare the units first.

Zapier bills per task. A task is any successful action. Triggers, polling, Filter and Paths steps, Formatter and Delay steps, and failed actions don't count.

Free gives you 100 tasks a month with two-step Zaps only. Professional starts at $19.99/month billed annually ($29.99 month to month) for 750 tasks and adds multi-step Zaps and Webhooks. Team starts at $69/month billed annually ($103.50 month to month) for 2,000 tasks.

Go over your limit with pay-per-task on and extra tasks cost 1.25x the base rate on annual plans or 2.5x on monthly plans, up to 3x your plan; with it off, your Zaps pause.

HubSpot doesn't meter most native steps. Workflows come with Professional and Enterprise hubs, and native actions like Send Slack notification, Create Google Sheet row, Edit record, Branch and Delay don't consume tasks. HubSpot's AI actions use HubSpot Credits (10 per run), and so does using a Data Studio dataset in a workflow.

Apps bill for their own steps. 0CodeTools has a free plan with 100 actions a month (no credit card) and paid plans from $49 to $249 a month for 3,000 to 70,000 actions. Send email with Gmail uses 1 credit per sent email and Send Google Ads Conversion uses 1 per uploaded conversion; failures aren't charged.

A worked example. Assumptions: a sample company (Biglytics) already on a HubSpot Professional hub, three HubSpot-centric Zaps, every run succeeds, Zapier prices as listed on its pricing page in September 2026.

AutomationRuns per monthZapier tasksHubSpot: native stepsHubSpot: 0CodeTools credits
Demo request: Slack alert, sheet row, Gmail reply4003 x 400 = 1,200Slack, Google Sheets400
Lead becomes SQL: Google Ads conversion, Slack alert1502 x 150 = 300Slack150
Deal closed won: Slack channel, Asana task, sheet row603 x 60 = 180All three0
Total1,680 tasks550 credits

On Zapier, 1,680 tasks is more than twice the 750 in Professional's entry tier, so you'd move up a task tier or to Team (2,000 tasks, from $69/month billed annually). In HubSpot, the native steps cost nothing extra, and 550 credits fit the entry 0CodeTools paid plan ($49/month for 3,000).

In this example the two bills land in the same range. The difference is how they grow.

Every step you add to a Zap adds tasks on every run. A native HubSpot step adds nothing; only steps HubSpot can't do natively use app credits.

Add one more native step, say an Edit record, to each automation and Zapier's count grows by 610 tasks a month, while the HubSpot bill doesn't move.

How to replace Zapier with HubSpot workflows, phase by phase

Each phase depends on the one before it.

Phase 1: Inventory. List every Zap that touches HubSpot: its trigger, each step, monthly task count, who owns it and what breaks if it stops. Include Zaps in logins that belonged to former staff or an old agency. Look at the Zaps nobody can explain first, and find out what they change in HubSpot before you switch them off.

Phase 2: Classify. Run each Zap through the move / hybrid / keep table above. Start with the Zaps that burn the most tasks or matter most to revenue, like speed-to-lead replies.

Phase 3: Rebuild in HubSpot. One workflow per Zap to start; merge later if it helps. Add a Branch on every app action's Result output so failures create tasks instead of disappearing. Test with a single record: enroll one test contact in a classic workflow, or use Run draft in the new builder before you Publish.

Phase 4: Run in parallel, carefully. Internal steps (Slack alerts, sheet rows) are safe to run twice for a while. Customer-facing steps (emails) and Google Ads conversions are not. Switch those off in the Zap before you turn them on in HubSpot, so nobody gets two emails and Google doesn't get two conversions.

Phase 5: Switch off the Zap. Turn it off, don't delete it. Keep it until the workflow has handled a full cycle of the process it replaces, such as a month-end billing run.

Phase 6: Monitor. In classic workflows, the details page has Action logs, Enrollment history and Performance tabs. HubSpot keeps action logs for 90 days and enrollment history for 6 months, and you can export action logs to CSV. The new builder has a Run History tab next to Edit.

What Zapier still does better

Keep Zapier where it's the better tool:

  • Automations that never touch HubSpot. Form tool to Google Drive, calendar to Notion, app to app. HubSpot has no business sitting in the middle.
  • The long tail of apps. If a tool has no HubSpot action, no HubSpot app event and no API you want to call, a Zapier connector is the practical answer. Trigger it from HubSpot with a webhook, as in walkthrough 7.
  • Heavy data shaping without Data Hub. Zapier's Formatter, Paths and Looping don't cost tasks. In classic workflows, Format data and Custom code need Data Hub Professional or Enterprise, and custom code must finish within 20 seconds.
  • HubSpot Starter portals. The documented actions for Starter's simple automations don't include third-party app actions. Until you move to Professional, Zapier may still be the practical way to reach other apps from HubSpot data.
  • Teams who already live in Zapier. If your ops people know Zapier well and your HubSpot admin is stretched, a working Zap can wait. Move it when you touch it anyway.

Have us audit and rebuild your HubSpot Zaps

We're a HubSpot Diamond Solutions Partner, and we build and maintain 0CodeTools and AI Studio. We'll audit your Zaps, tell you which ones to move, and rebuild them as HubSpot workflows. See HubSpot integrations, or hand the ongoing work to our RevOps support team.

Doing it yourself? Install 0CodeTools from the HubSpot Marketplace or create a free account. The free plan includes 100 actions a month, no credit card.

Related guides

Frequently asked questions

Can HubSpot workflows replace Zapier?+
On a Professional or Enterprise hub, for automations where HubSpot is the trigger or the destination, usually yes. HubSpot's new workflow builder can start from a Google Sheet row, a Slack event, an incoming webhook or a schedule, and classic workflows can start from app events such as Stripe: Invoice paid. 0CodeTools adds Send email with Gmail and Send Google Ads Conversion, plus SendGrid, Notion and Telegram actions, and AI Studio adds AI steps. HubSpot's own integrations cover Slack, Google Sheets, Asana and Microsoft Teams. Keep Zapier for automations that never touch HubSpot.
Can a HubSpot workflow send email from Gmail without Zapier?+
Yes. The 0CodeTools Send email with Gmail action sends from a connected Gmail or Google Workspace mailbox as a workflow step. It has From, To, Reply-To, Subject, Body format and Body fields, accepts HubSpot data tokens, logs each sent email on the record's timeline and returns SENT or FAILED for branching. Compared with Zapier's Gmail Send Email step, it sends to one recipient per step, without CC, BCC or attachments. For transactional email with CC and BCC, 0CodeTools also has Send email with SendGrid. Google's daily sending limits per mailbox apply, so it's for one-to-one email, not bulk marketing.
Can I connect more than one Gmail or Google Workspace mailbox to HubSpot workflows?+
Yes. You can connect several Gmail and Google Workspace (formerly G Suite) mailboxes in 0CodeTools, including personal @gmail.com accounts. Each Send email with Gmail step picks its sender in the From dropdown, so one workflow can send from a rep's mailbox and another from a shared one like sales@ or support@. When you connect a mailbox, 0CodeTools gets permission to send email on your behalf. It can't read your inbox.
Can HubSpot send offline conversions to Google Ads without Zapier?+
Yes, in two ways. HubSpot's native ad conversion events (Marketing Hub Starter and up) have two documented triggers, lifecycle stage changes and HubSpot form submissions, with a value you set per event. The 0CodeTools Send Google Ads Conversion action uploads an offline conversion from any workflow, such as a deal moving to Closed Won, with the deal amount as the conversion value. It matches by GCLID only, so the record needs a Google Click ID, and it returns UPLOADED or FAILED for branching.
Can a Google Sheets row trigger a HubSpot workflow?+
Yes, in HubSpot's new workflow builder: Choose trigger, Apps, Google Sheets, then Google Sheet row added or updated. HubSpot checks connected sheets every minute, so expect about a minute of lag. A row whose exact values existed before won't re-trigger, and renaming a column re-enrolls every row.
Can I use 0CodeTools or AI Studio actions in HubSpot's new workflow builder?+
Yes. The new workflow builder is replacing HubSpot's classic workflow engine, and every action, native or from Marketplace apps like 0CodeTools and AI Studio, is available in it. A Google Sheets-triggered workflow can send email with Gmail or run an AI step directly.
Which HubSpot plan do I need to replace Zapier with workflows?+
Workflows need a Professional or Enterprise hub. Starter plans get simple or restricted automations, and third-party app actions aren't on the documented Starter action list. In classic workflows, the When a webhook is received trigger, Send a webhook, Custom code, Format data and daily, weekly or monthly schedules need Data Hub Professional or Enterprise.
Can a webhook trigger a HubSpot workflow, like a Zapier Catch Hook?+
Yes. The new builder's Webhook event is received trigger gives you a URL, captures a test event, and lets you use its properties as tokens, with or without linking the event to CRM records. The classic When a webhook is received trigger needs Data Hub Professional or Enterprise and only enrolls an existing record matched on a unique property.
Can a HubSpot workflow send Gmail emails from the contact owner's mailbox?+
Yes, with the 0CodeTools Send email with Gmail action and a branch on Contact owner. From is a dropdown of connected mailboxes, not a token, so add one Send email with Gmail step per owner and a None met path that sends from a team mailbox like sales@. HubSpot's native route to a one-to-one email from a rep is a sequence: the Enroll in a sequence workflow action needs Sales Hub or Service Hub Enterprise, and on Professional a sequence's Automation tab can enroll contacts only on triggers like form submissions or page views.
How do I send HubSpot data to Notion, Asana or monday.com without Zapier?+
Notion: use 0CodeTools Create Notion page or Create Notion database item, since HubSpot has no native Notion workflow action. Asana: HubSpot's Asana app adds Create an Asana task. monday.com: there's no native workflow action, so use monday.com's own HubSpot app, HubSpot's Monday.com data sync, or the 0CodeTools API Webhook Connector.
How do I send a Telegram message from a HubSpot workflow without Zapier?+
For customer-facing messages, the Telegram for HubSpot app adds workflow actions such as Send Telegram Message to Group and Send Telegram Message to Contact. For internal alerts to a team channel, 0CodeTools adds Send Telegram notification. A Telegram bot can only message people who started the bot first.
Can a HubSpot workflow run a ChatGPT or Claude step without Zapier?+
Yes. AI Studio adds Send to AI, Send to OpenRouter, Web Search and Company Insights as workflow actions, and Send to OpenRouter runs any text model on OpenRouter. HubSpot's Anthropic app adds Ask Anthropic. HubSpot's own AI actions, such as Data Agent: Research and Summarize record, use HubSpot Credits (10 per AI action run).
Will moving my HubSpot Zaps into workflows lower my Zapier bill?+
It depends on how many steps your automations have. Zapier bills every successful action as a task; Professional starts at $19.99/month billed annually for 750 tasks. Native HubSpot workflow steps don't consume tasks, and app actions use their own credits: 0CodeTools has a free plan with 100 actions a month and paid plans from $49 to $249 a month. The gap grows as you add steps.
Why is Zapier slow with HubSpot, and are HubSpot workflows faster?+
For events inside HubSpot, HubSpot enrolls the record itself, so there's no Zapier polling hop. Zapier's polling triggers check every 15 minutes on Free, 2 minutes on Professional and 1 minute on Team, though some HubSpot triggers on Zapier are instant. HubSpot's Google Sheets trigger checks every minute.
What can Zapier do that HubSpot workflows can't?+
Zapier connects HubSpot to 9,000+ apps (Zapier's HubSpot integrations page, September 2026), so it covers apps that have no HubSpot workflow action and no usable API. Keep it for automations that never touch HubSpot, for heavy data shaping if you don't have Data Hub, and on HubSpot Starter, where third-party app actions aren't on the documented action list. For HubSpot-triggered Zaps you keep, start them from a workflow with a webhook step.
Should I move HubSpot scenarios out of Make too?+
The same logic applies. Make bills credits per module action, with most actions costing 1 credit. Scenarios that start or end in HubSpot are candidates to rebuild as workflows; app-to-app scenarios can stay in Make.