

How to Create HubSpot Tasks for Meeting Requests with Make
Automatically scan Gmail emails for meeting request phrases and create HubSpot tasks for the assigned sales rep.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
HubSpot Gmail extension exists as a native integration, but it requires manual setup per user and doesn't create contacts automatically. This guide uses an automation platform for full control. View native option →
Best for
Sales teams who need fast response to inbound meeting requests with proper task assignment
Not ideal for
High-volume email processing or teams without HubSpot Sales Hub Professional
Sync type
pollingUse case type
notificationReal-World Example
A 12-person B2B SaaS sales team uses this to catch meeting requests from trial users who email their personal addresses instead of using the booking calendar. Before automation, reps missed 30% of these requests because they didn't check personal email during work hours. Now every meeting request becomes a task assigned to the account owner within 15 minutes.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Make
Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Task Title | hs_task_subject | |
| Contact Email | email | |
| Task Status | hs_task_status | |
3 optional fields▸ show
| Task Body | hs_task_body |
| Task Owner | hubspot_owner_id |
| Due Date | hs_timestamp |
Step-by-Step Setup
Scenarios > + > Gmail > Watch emails
Connect Gmail to Make
Set up Gmail as a trigger to watch for new emails. This monitors your inbox for incoming messages that might contain meeting requests.
- 1Click the + button to create a new scenario
- 2Click the ? icon and search for Gmail
- 3Select 'Watch emails' from the trigger options
- 4Click 'Create a connection' and authenticate with your Google account
Gmail module > Settings
Configure email watching parameters
Set Gmail to monitor your inbox and limit the scope to avoid processing every email. Focus on unread messages to catch new meeting requests.
- 1Set 'Folder' to INBOX
- 2Check 'Process only unread emails'
- 3Set 'Maximum number of emails' to 10
- 4Leave 'From' and 'To' fields empty to catch all emails
Connection > Set up a filter
Add text detection filter
Create a filter that checks email content for meeting request phrases. This prevents the automation from firing on irrelevant emails.
- 1Click the wrench icon between Gmail and the next module
- 2Select 'Set up a filter'
- 3Set condition to 'Text contains'
- 4In 'Text' field, select Gmail > Plain text content
- 5In 'Pattern' field, enter: schedule a call|book a meeting|set up a time|arrange a meeting
Gmail > + > HubSpot > Create a Task
Connect HubSpot
Add HubSpot as the action module to create tasks when meeting requests are detected. This requires admin permissions in HubSpot.
- 1Click the + button after the filter
- 2Search for and select HubSpot
- 3Choose 'Create a Task' from the actions list
- 4Click 'Create a connection' and enter your HubSpot API key
HubSpot module > Associated with
Extract sender email for contact lookup
Get the sender's email address to find the associated contact in HubSpot. This links the task to the right person.
- 1In HubSpot module, find 'Associated with' section
- 2Set 'Object type' to Contact
- 3Set 'Object ID search property' to email
- 4In 'Object ID search value', map Gmail > From (email)
HubSpot module > Task details
Configure task title and description
Set up the task content to give your sales rep context about the meeting request. Include sender info and original email content.
- 1In 'Task title' field, enter: Meeting request from {{Gmail.From (name)}}
- 2In 'Task notes' field, enter: Email subject: {{Gmail.Subject}}\n\nMessage: {{Gmail.Plain text content}}
- 3Set 'Task status' to NOT_STARTED
- 4Set 'Task type' to CALL
Drop this into a Make custom function.
JavaScript — Custom Function{{if(contains(lower(1.`Plain text content`); "urgent"); formatDate(now; "X"); formatDate(addDays(now; 1); "X"))}}▸ Show code
{{if(contains(lower(1.`Plain text content`); "urgent"); formatDate(now; "X"); formatDate(addDays(now; 1); "X"))}}... expand to see full code
{{if(contains(lower(1.`Plain text content`); "urgent"); formatDate(now; "X"); formatDate(addDays(now; 1); "X"))}}HubSpot module > Owner ID
Set task assignment logic
Configure how tasks get assigned to the right sales rep. You can assign to contact owner or a specific user.
- 1In 'Owner ID' field, click the mapping icon
- 2Select 'Use a function' from the dropdown
- 3Choose 'Get contact owner' to assign to the contact's assigned rep
- 4Alternatively, enter a specific HubSpot user ID number
HubSpot module > Due date
Set task due date
Add a due date to ensure meeting requests don't get ignored. Set it to same day or next business day for urgency.
- 1Click in the 'Due date' field
- 2Select 'Use a function' > 'Date/Time functions'
- 3Choose 'Add days' function
- 4Set base date to 'now' and add 1 day
Scenario footer > Run once
Test the workflow
Run a test to make sure emails are detected and tasks are created properly. Use a real email with meeting request language.
- 1Click 'Run once' at the bottom left
- 2Send yourself a test email with 'let's schedule a call' in the body
- 3Click the Gmail module to see if it captured the email
- 4Check the HubSpot module output for task creation confirmation
Gmail module > Scheduling
Enable automatic scheduling
Turn on the scenario to run continuously. Set appropriate polling frequency to catch meeting requests quickly without burning operations.
- 1Click the clock icon on the Gmail module
- 2Set schedule to 'Every 15 minutes'
- 3Click 'OK' to save the schedule
- 4Toggle the scenario 'ON' using the switch at bottom left
Scaling Beyond 100+ emails/day+ Records
If your volume exceeds 100+ emails/day records, apply these adjustments.
Batch email processing
Increase max emails per run to 50 and reduce polling frequency to every 30 minutes. This reduces total operations while maintaining reasonable response time.
Add pre-filtering
Use Gmail search operators in the trigger to only fetch emails from external domains. Internal emails rarely contain meeting requests and waste operations.
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Make for this if you need precise control over email content detection and task assignment logic. Make's text filtering is more flexible than Zapier's — you can use regex patterns and complex conditions without coding. The visual scenario builder makes it easy to add fallback assignments and custom due date calculations. Skip Make if you're processing 1000+ emails daily — Pipedream handles high-volume email parsing better with its code-first approach.
This workflow uses 2 operations per detected email — one Gmail check and one HubSpot task creation. At 50 meeting requests per month, that's 100 operations monthly. Make's free tier includes 1,000 operations, so you're covered until you hit 500 requests monthly. The Core plan at $9/month gives you 10,000 operations. Zapier's equivalent starts at $20/month and N8n cloud costs $20/month for the same reliability.
Zapier beats Make on Gmail trigger reliability — their Gmail integration fires within 30 seconds while Make polls every 5+ minutes minimum. N8n offers better email parsing with built-in HTML-to-text conversion and attachment handling. But Make wins on HubSpot integration depth — you can assign tasks based on contact properties, territory rules, or round-robin logic without custom code. The visual mapping makes complex assignment rules manageable.
You'll hit Gmail API rate limits if you poll more than every 2 minutes or process batches over 20 emails. HubSpot's contact lookup fails silently when emails don't match existing contacts — add error handling or your tasks will be orphaned. The text filter is case-sensitive by default, so 'Schedule A Call' won't match 'schedule a call' unless you add the lowercase function.
Ideas for what to build next
- →Add Slack notifications for urgent requests — Send a Slack message to the assigned rep when emails contain 'urgent' or 'ASAP' along with meeting request phrases.
- →Create calendar blocking automation — Automatically block 30-minute slots on the rep's calendar when meeting request tasks are created to reserve time for the call.
- →Build meeting outcome tracking — Update the original task with meeting notes and outcomes when calendar events are completed or rescheduled.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup