HubSpot iMessage Automation: Complete Setup Walkthrough with Contact Sync, Workflows, and Reporting
From installation to first message in 15 minutes — then advanced workflows for every deal stage
Summary
Step-by-step technical walkthrough: install Tuco AI's HubSpot integration, configure bidirectional contact sync, build workflow-triggered iMessage sends for every deal stage, route replies back to CRM timelines, and measure attribution with custom HubSpot reports.
Get 98% Open Rates with Brand Marketing
Launch iMessage brand marketing campaigns that deliver 98% open rates and 30%+ response rates. Verified branding, rich media support, guaranteed delivery.
HubSpot does not natively support iMessage — you need a third-party integration like Tuco AI to send iMessages from HubSpot workflows. HubSpot's built-in SMS runs on A2P 10DLC, the same carrier infrastructure that filters 30-40% of business messages before they reach prospects, according to industry delivery data aggregated by Outreaches.ai's 2025 SMS Benchmark Report. The full setup takes about 15 minutes for the OAuth connection, then 30-60 minutes to build your first workflows.
"Most teams have their first HubSpot-triggered iMessage firing within 20 minutes of connecting. The real value shows up in week two, when they see every message — API-sent, dashboard-sent, workflow-triggered — appearing on the HubSpot contact timeline automatically," says Bharadwaj Giridhar, Founder of Tuco AI, who has managed over 1,000 cold outreach campaigns and built iMessage automation infrastructure serving 37,500+ leads across 2,500+ campaigns.
This walkthrough covers the full technical setup: connecting Tuco AI to HubSpot, configuring bidirectional contact sync, building workflow-triggered iMessage sends for every stage of your pipeline, routing replies back to CRM timelines, and measuring attribution through HubSpot's reporting tools.
What Do You Need Before Starting the HubSpot iMessage Setup?
HubSpot requirements:
- Paid HubSpot plan (Starter, Professional, or Enterprise — for any Hub)
- Super Admin or Admin permissions
- At least one active workflow (or permission to create new ones)
Tuco AI requirements:
- Active Tuco AI account on any paid plan ($59+/month)
- At least one provisioned phone line with health status "Active"
- API key (found in Settings > API in Tuco AI dashboard)
Time commitment: 15 minutes for initial connection, 30-60 minutes to build your first 3-4 workflows.
Scale outreach without carrier caps
iMessage from your CRM or API. Higher reply rates than SMS. Integrate and go.
How Do You Install and Authenticate the HubSpot Integration?
Connect Tuco AI to HubSpot
- Log into your Tuco AI dashboard at app.tuco.ai
- Navigate to Settings > Integrations > HubSpot
- Click Connect HubSpot
- HubSpot's OAuth screen appears — select the HubSpot portal you want to connect
- Review the requested permissions:
- Read and write contact properties
- Read and write deal properties
- Create timeline activities
- Read workflow enrollment data
- Click Grant Access
- You'll be redirected back to Tuco AI with a confirmation banner
The OAuth token handles authentication automatically. No API keys to copy between platforms.
Verify the Connection
After connecting, check two things:
In Tuco AI: Navigate to Settings > Integrations. HubSpot should show status "Connected" with your portal ID and last sync timestamp.
In HubSpot: Go to Settings > Integrations > Connected Apps. Tuco AI should appear in your connected apps list. Click into it to see which scopes are authorized.
If the connection fails, the most common causes are:
- Insufficient HubSpot permissions (need Super Admin or Admin)
- Browser pop-up blocker intercepting the OAuth window
- HubSpot portal already connected to a different Tuco AI workspace (disconnect the old one first)
How Does Bidirectional Contact Sync Work Between HubSpot and Tuco AI?
Bidirectional contact sync is where Tuco AI differs from most iMessage platforms. The sync runs both directions, continuously, so every message appears on the HubSpot contact timeline regardless of how it was sent.
HubSpot → Tuco AI (Outbound Sync)
When contacts are created or updated in HubSpot, the following properties sync to Tuco AI automatically:
| HubSpot Property | Tuco AI Field | Sync Trigger |
|---|---|---|
| Phone number | phone | Create, Update |
| First name | firstName | Create, Update |
| Last name | lastName | Create, Update |
| Create, Update | ||
| Company name | company | Create, Update |
| Lifecycle stage | lifecycleStage | Update |
| Lead status | leadStatus | Update |
| Associated deal stage | dealStage | Update |
| Contact owner | assignedTo | Update |
Sync frequency: real-time via webhooks. When a HubSpot property changes, Tuco AI receives the update within seconds.
Tuco AI → HubSpot (Inbound Sync)
When events occur in Tuco AI, they write back to HubSpot:
| Tuco AI Event | HubSpot Action | Where It Appears |
|---|---|---|
| iMessage sent | Timeline activity created | Contact timeline |
| iMessage delivered | Activity updated with delivery status | Contact timeline |
| Reply received | Timeline activity + notification | Contact timeline + assigned rep |
| Opt-out received | Contact property updated | "iMessage Opted Out = True" |
| iMessage availability checked | Contact property updated | "iMessage Available = True/False" |
This means every conversation — whether initiated from the Tuco AI dashboard, via API call, or from a HubSpot workflow — appears on the HubSpot contact timeline. Sales reps see the full conversation history without leaving HubSpot.
Handling New Inbound Numbers
When someone texts your Tuco AI number and they don't exist in HubSpot:
- Tuco AI receives the message
- Tuco AI searches HubSpot for a matching phone number
- No match found → Tuco AI creates a new HubSpot contact with the phone number
- The inbound message is logged as the first timeline activity
- A notification goes to the assigned rep (or default owner)
This prevents orphaned conversations. Every inbound text, even from unknown numbers, gets a HubSpot record.
Every inbound text message to your Tuco AI line automatically creates a HubSpot contact record if one does not already exist, ensuring zero conversations are lost outside your CRM.
Custom Property Mapping
Beyond the default sync, you can map custom HubSpot properties to Tuco AI fields for message personalization:
- In Tuco AI, go to Settings > Integrations > HubSpot > Field Mapping
- Click Add Custom Mapping
- Select the HubSpot property (e.g., "Product Interest", "Preferred Language", "Territory")
- Map it to a Tuco AI personalization variable
- Use that variable in message templates:
Hey {{firstName}}, following up on your interest in {{productInterest}}
This lets you pull any HubSpot data point into your iMessage templates without hardcoding values.
How Do You Build Workflow-Triggered iMessage Sends?
Here's where the integration pays for itself. Every HubSpot workflow trigger can now fire an iMessage instead of (or alongside) an email.
Workflow Architecture
HubSpot Workflow Trigger
↓
Webhook Action (POST to Tuco AI endpoint)
↓
Tuco AI receives payload with contact data + message template
↓
Tuco AI sends iMessage via dedicated phone line
↓
Delivery confirmation writes back to HubSpot timeline
↓
Reply webhook fires → HubSpot timeline updated + rep notified
Creating Your First iMessage Workflow
Step 1: Create a new workflow in HubSpot
Go to Automation > Workflows > Create Workflow > From Scratch
Select Contact-based as the workflow type.
Step 2: Set the enrollment trigger
Choose your trigger. Common triggers for iMessage:
| Trigger | Use Case |
|---|---|
| Form submission | Speed-to-lead: message within seconds of a website form fill |
| Deal stage changed | Pipeline progression: congratulate on moving forward or re-engage stalled deals |
| Lifecycle stage changed | Lead nurture: different messages for MQL vs SQL vs Opportunity |
| Meeting outcome = No Show | Recovery: catch no-shows while they're still warm |
| Contact property = X | Segmented outreach: message based on industry, product interest, or lead score |
| Date-based (days since last activity) | Re-engagement: wake up dormant leads after 30/60/90 days |
Step 3: Add the webhook action
In the workflow editor:
- Click + to add an action
- Select Send a webhook (under External Communication)
- Configure:
- Method: POST
- Webhook URL:
https://app.tuco.ai/api/hubspot/workflow-send - Request headers:
Authorization: Bearer YOUR_TUCO_API_KEY - Request body: JSON
Step 4: Configure the webhook body
{
"to": "{{contact.phone}}",
"message": "Hey {{contact.firstname}}, saw you just checked out our pricing page. Any questions I can answer?",
"lineId": "YOUR_TUCO_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
Use HubSpot's personalization tokens (the {{contact.property}} syntax) to dynamically populate contact data.
Step 5: Add conditional logic (optional)
Before the webhook, add an If/then branch to check:
- Contact has phone number (skip if blank)
- Contact has not opted out of messaging
- Contact is in a supported timezone (for business-hours sends)
8 Ready-to-Use Workflow Templates
Here are specific workflows with exact configurations. Copy the webhook body JSON into your HubSpot workflow.
1. Speed-to-Lead (Form Submission)
Trigger: Contact submits any form on pricing, demo, or contact page
Delay: 0 seconds (send immediately)
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hey {{contact.firstname}} — just got your request. I'm putting together the details now. Quick question: what's the main thing you're looking to solve?",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
Why this works: The message arrives while the lead is still on your site. Research published by InsideSales.com shows responding within 5 minutes makes you 21x more likely to qualify the lead vs waiting 30 minutes. The average B2B company takes 42 hours to respond, according to a Harvard Business Review study on lead response times. You respond in 5 seconds.
2. Demo Confirmation (24 Hours Before)
Trigger: Meeting starts in 24 hours
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hi {{contact.firstname}}, confirming our call tomorrow at {{meeting.start_time}}. Anything specific you'd like to cover? Here's the link just in case: {{meeting.meeting_link}}",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
Expected outcome: Teams using iMessage for appointment confirmations report show-up rates around 68%, compared to 58% with email-only reminders, based on aggregated data from Tuco AI deployments across 2,500+ campaigns.
3. No-Show Recovery
Trigger: Meeting outcome set to "No Show"
Delay: 15 minutes after trigger
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hey {{contact.firstname}}, missed you on our call — no worries, things come up. Want to reschedule? I've got time Thursday or Friday this week.",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
4. Deal Stage Progression (Proposal Sent)
Trigger: Deal stage changed to "Proposal Sent"
Delay: 1 hour
Webhook body:
{
"to": "{{contact.phone}}",
"message": "{{contact.firstname}} — just sent the proposal to your email. Let me know if anything looks off or if your team has questions. Happy to hop on a quick call to walk through it.",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
5. Stalled Deal Re-Engagement
Trigger: Deal has not progressed in 14 days AND deal stage is not "Closed Won" or "Closed Lost"
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hey {{contact.firstname}}, wanted to check in — is there anything holding things up on your end? Happy to address any concerns or get your team the info they need.",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
6. Post-Close Onboarding Kickoff
Trigger: Deal stage changed to "Closed Won"
Delay: 2 hours
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Welcome aboard {{contact.firstname}}! I'm handing you off to our onboarding team. {{contact.hubspot_owner_firstname}} will reach out within 24 hours to get you set up. In the meantime — any immediate questions?",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
7. Lead Score Threshold Reached
Trigger: HubSpot lead score exceeds 80 AND lifecycle stage is "Marketing Qualified Lead"
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hi {{contact.firstname}} — noticed you've been checking out a few things on our site. Would it be helpful to walk through how this works for {{contact.company}}? I've got 15 minutes this week.",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
8. Quarterly Check-In (Existing Customers)
Trigger: Date property "Last QBR" is more than 90 days ago AND lifecycle stage is "Customer"
Webhook body:
{
"to": "{{contact.phone}}",
"message": "Hey {{contact.firstname}}, it's been a few months — how's everything going with the platform? Anything we can help with or improve?",
"lineId": "YOUR_LINE_ID",
"hubspotContactId": "{{contact.hs_object_id}}"
}
How Are iMessage Replies Routed Back to HubSpot?
When a contact replies to an iMessage sent via HubSpot workflow, the reply flows back to HubSpot automatically through Tuco AI's webhook integration. This is the path:
Contact replies via iMessage
↓
Tuco AI receives reply on dedicated line
↓
Reply logged to Tuco AI inbox
↓
Webhook fires to HubSpot
↓
Timeline activity created on contact record
↓
Contact owner notified (email, Slack, or in-app)
↓
(Optional) Workflow enrollment based on reply
Configuring Reply Notifications
In Tuco AI dashboard, go to Settings > Notifications and configure:
- Email notifications: Send to contact owner's email on every reply
- Slack integration: Post replies to a designated Slack channel
- In-app notifications: Browser push notifications when inbox receives a reply
Reply-Based Workflow Triggers
You can enroll contacts into new HubSpot workflows based on iMessage replies:
- Create a custom contact property: "Last iMessage Reply Date" (date picker)
- Tuco AI updates this property when a reply is received
- Create a HubSpot workflow triggered by "Last iMessage Reply Date is known"
- Use this to: assign the contact to a sales rep, create a follow-up task, move the deal stage, or send a Slack notification
Handling Opt-Outs
When a contact replies "STOP" or "UNSUBSCRIBE":
- Tuco AI automatically stops future messages to that number
- Tuco AI updates the HubSpot contact property "iMessage Opted Out = True"
- All future workflows should include an if/then check: skip iMessage action if opted out
Add this check to every workflow that sends an iMessage. It takes 10 seconds to add and prevents compliance violations.
How Do You Measure iMessage ROI in HubSpot Reporting?
Custom HubSpot Reports for iMessage
Build these three reports in HubSpot to track iMessage's impact on your pipeline. These reports answer the questions your leadership team will ask: is iMessage driving pipeline, and how does it compare to email-only outreach?
Report 1: iMessage Delivery and Response Rate
Type: Custom report (contacts) Filters:
- Contact property "iMessage Sent" = True
- Date range: last 30 days
Metrics:
- Count of contacts messaged
- Count of contacts with reply (property "Last iMessage Reply Date" is known)
- Response rate = replies / sent
Benchmark: Expect 5-10% response rates on re-engaged/warm outreach and 1-2% on cold, based on Tuco AI platform data from 100K+ messages sent across 2,500+ campaigns. The iMessage advantage is not raw reply rate -- it's 94%+ delivery (vs roughly 60% for email, per Instantly's 2026 Cold Email Benchmark Report), sub-5-second speed-to-lead, and messages that don't get spam-filtered.
The HubSpot iMessage integration pays for itself when one additional deal closes per quarter -- at a $3,000 average deal value, that single deal covers the entire annual cost of Tuco AI's Starter plan.
Report 2: Pipeline Influence — iMessage vs Email Only
Type: Custom report (deals) Setup: Create two deal segments:
- Segment A: Associated contact has "iMessage Sent = True"
- Segment B: Associated contact has "iMessage Sent" is unknown (email-only)
Compare:
- Average days in pipeline
- Win rate (% closed won)
- Average deal value
This is the report that justifies the integration cost. When we deployed this comparison across early Tuco AI users, iMessage-touched deals showed shorter sales cycles and higher close rates compared to email-only contacts, consistent with Belkins' 2025 B2B Cold Outreach Benchmarks finding that multichannel sequences produce 287% more responses than single-channel outreach.
iMessage-touched deals in HubSpot consistently show shorter sales cycles and higher close rates because 94% of messages are delivered and read, compared to roughly 60% of cold emails that ever reach an inbox.
Report 3: Speed-to-Lead Measurement
Type: Custom report (contacts) Calculation:
- Time from form submission to first iMessage sent (should be under 10 seconds)
- Time from iMessage sent to first reply
- Compare to historical email response times
Dashboard Setup
Create a HubSpot dashboard called "iMessage Performance" with:
- Delivery rate trend (weekly)
- Response rate by workflow type
- Pipeline value influenced by iMessage
- Opt-out rate (should stay below 2%)
- Average speed-to-lead time
What Advanced Configuration Options Are Available?
Timezone-Aware Sending
Avoid sending iMessages at 2 AM. In your HubSpot workflows:
- Before the webhook action, add an If/then branch
- Condition: Contact property "IP Timezone" or manually set timezone property
- Branch 1: Eastern timezone → Send between 9:00 AM and 6:00 PM ET
- Branch 2: Pacific timezone → Delay until 9:00 AM PT
- Default: Use your company's primary timezone
Tuco AI also supports time-window restrictions at the campaign level — messages queued outside business hours hold until the next valid window.
Multi-Line Routing
For teams with multiple Tuco AI phone lines (Growth and Enterprise plans):
- Assign lines by territory (East Coast rep → East line, West Coast → West line)
- Route by deal owner — each rep's workflows use their dedicated line
- Round-robin for inbound: distribute incoming messages across available reps
Configure in Tuco AI under Settings > Lines > Routing Rules.
Sequence Integration
Tuco AI supports multi-step sequences alongside HubSpot workflows:
HubSpot-managed sequence (recommended for simple flows):
- Workflow trigger → Send iMessage via webhook
- Delay 2 days → Send follow-up iMessage via second webhook
- Delay 3 days → If no reply → Send email fallback via HubSpot
Tuco AI-managed sequence (recommended for complex flows):
- HubSpot workflow trigger → Enroll contact in Tuco AI campaign
- Tuco AI handles the multi-step cadence with configurable delays
- Replies at any step → notify HubSpot via webhook, pause sequence
- Sequence completion → update HubSpot property
Use HubSpot-managed sequences when you want full visibility in the workflow editor. Use Tuco AI-managed sequences when you need features like business-hour windowing, day-of-week restrictions, and automatic pause on reply.
A/B Testing Message Templates
Test which messages get more replies:
- In your HubSpot workflow, add a Random split action (50/50)
- Branch A: Webhook with message template A (e.g., question-based opener)
- Branch B: Webhook with message template B (e.g., value-statement opener)
- Tag each branch with a custom property ("iMessage Test Variant = A" or "B")
- After 2 weeks, compare response rates per variant
Run tests for at least 100 contacts per variant to get statistically meaningful results.
Troubleshooting Common Issues
| Problem | Cause | Fix |
|---|---|---|
| Workflow fires but no message sent | Webhook URL typo or missing API key | Verify webhook URL and Authorization header in HubSpot workflow settings |
| Message sent but no CRM timeline activity | OAuth token expired | Reconnect HubSpot integration in Tuco AI settings |
| Contact receives SMS instead of iMessage | Contact's number is not on iMessage | Expected behavior — Tuco AI falls back to SMS for non-Apple devices |
| Personalization tokens show as blank | HubSpot property is empty for that contact | Add if/then check before webhook: skip if phone is empty |
| Duplicate messages sent | Contact enrolled in multiple workflows | Add suppression lists or "message sent in last X hours" checks |
| Replies not appearing in HubSpot | Webhook endpoint not configured for inbound | Check Tuco AI Settings > Webhooks > Inbound Reply URL |
What This Integration Costs
| Component | Cost |
|---|---|
| HubSpot (Starter or above) | From $20/month (existing cost — not incremental) |
| Tuco AI Starter plan | $149/month |
| Tuco AI setup fee | $335 one-time (includes iPhone hardware + eSIM + Apple ID) |
| Per-message fees | $0 (included in plan) |
| HubSpot webhook actions | Included in all paid HubSpot plans |
Total incremental cost: $335 setup + $149/month. At a $3,000 average deal value, one additional closed deal per quarter covers the entire annual cost.
Further Reading
- Migrate from Sendblue to Tuco AI — if you're switching from another iMessage platform
- HubSpot Workflows vs Sequences for iMessage — understanding which HubSpot automation tool to use
- iMessage ROI Payback Analysis — calculate your break-even timeline
- Salesforce iMessage Integration — if you're also running Salesforce alongside HubSpot
- Compare iMessage Automation Platforms — full market comparison
Last updated: April 2026. HubSpot workflow capabilities referenced: Marketing Hub and Sales Hub (Starter, Professional, Enterprise). Tuco AI integration specs current as of this publication date. Delivery rates and response benchmarks based on aggregated user data — individual results vary by industry, list quality, and message content.
Frequently asked questions
Does HubSpot natively support iMessage?
No. HubSpot's built-in messaging supports SMS through A2P 10DLC carriers, not iMessage. To send iMessages from HubSpot workflows, you need a third-party integration like Tuco AI that connects via OAuth and webhooks. HubSpot's own community forums have open feature requests for native iMessage support that remain unresolved.
How does bidirectional contact sync work between Tuco AI and HubSpot?
When you connect Tuco AI to HubSpot via OAuth, contact properties sync both directions. New leads in HubSpot automatically appear in Tuco AI with phone, name, company, and deal stage. Replies received in Tuco AI create timeline activities on the matching HubSpot contact record. If a new number texts your Tuco line that doesn't exist in HubSpot, a new contact record is created automatically.
Which HubSpot plans support iMessage workflow automation?
You need at least Marketing Hub Starter or Sales Hub Starter to create workflows with webhook actions. HubSpot's free CRM does not include workflow automation. The webhook action (which triggers iMessage sends) is available on all paid tiers including Starter, Professional, and Enterprise.
How fast are iMessages sent after a HubSpot workflow triggers?
Tuco AI processes webhook triggers in under 5 seconds. From the moment a HubSpot workflow fires (form submission, deal stage change, etc.) to the iMessage arriving on the contact's phone, typical latency is 3-8 seconds. This is the speed-to-lead advantage — your message arrives while the lead is still on your website.
Can I A/B test iMessage templates in HubSpot workflows?
Yes. Use HubSpot's native workflow branching to split contacts into groups, with each branch sending a different message template via separate Tuco AI webhook calls. Track reply rates per branch using custom properties to determine which template converts better. Tuco AI Growth plan also includes built-in A/B testing.
About the author
Founder of Tuco AI and InboxPirates Consulting. 5+ years building cold outreach and iMessage automation infrastructure for B2B teams.