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

Bharadwaj Giridhar's profile pictureBharadwaj Giridhar
17 min read

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

  1. Log into your Tuco AI dashboard at app.tuco.ai
  2. Navigate to Settings > Integrations > HubSpot
  3. Click Connect HubSpot
  4. HubSpot's OAuth screen appears — select the HubSpot portal you want to connect
  5. Review the requested permissions:
    • Read and write contact properties
    • Read and write deal properties
    • Create timeline activities
    • Read workflow enrollment data
  6. Click Grant Access
  7. 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 PropertyTuco AI FieldSync Trigger
Phone numberphoneCreate, Update
First namefirstNameCreate, Update
Last namelastNameCreate, Update
EmailemailCreate, Update
Company namecompanyCreate, Update
Lifecycle stagelifecycleStageUpdate
Lead statusleadStatusUpdate
Associated deal stagedealStageUpdate
Contact ownerassignedToUpdate

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 EventHubSpot ActionWhere It Appears
iMessage sentTimeline activity createdContact timeline
iMessage deliveredActivity updated with delivery statusContact timeline
Reply receivedTimeline activity + notificationContact timeline + assigned rep
Opt-out receivedContact property updated"iMessage Opted Out = True"
iMessage availability checkedContact 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:

  1. Tuco AI receives the message
  2. Tuco AI searches HubSpot for a matching phone number
  3. No match found → Tuco AI creates a new HubSpot contact with the phone number
  4. The inbound message is logged as the first timeline activity
  5. 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:

  1. In Tuco AI, go to Settings > Integrations > HubSpot > Field Mapping
  2. Click Add Custom Mapping
  3. Select the HubSpot property (e.g., "Product Interest", "Preferred Language", "Territory")
  4. Map it to a Tuco AI personalization variable
  5. 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:

TriggerUse Case
Form submissionSpeed-to-lead: message within seconds of a website form fill
Deal stage changedPipeline progression: congratulate on moving forward or re-engage stalled deals
Lifecycle stage changedLead nurture: different messages for MQL vs SQL vs Opportunity
Meeting outcome = No ShowRecovery: catch no-shows while they're still warm
Contact property = XSegmented 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:

  1. Click + to add an action
  2. Select Send a webhook (under External Communication)
  3. 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:

  1. Create a custom contact property: "Last iMessage Reply Date" (date picker)
  2. Tuco AI updates this property when a reply is received
  3. Create a HubSpot workflow triggered by "Last iMessage Reply Date is known"
  4. 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":

  1. Tuco AI automatically stops future messages to that number
  2. Tuco AI updates the HubSpot contact property "iMessage Opted Out = True"
  3. 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:

  1. Delivery rate trend (weekly)
  2. Response rate by workflow type
  3. Pipeline value influenced by iMessage
  4. Opt-out rate (should stay below 2%)
  5. Average speed-to-lead time

What Advanced Configuration Options Are Available?

Timezone-Aware Sending

Avoid sending iMessages at 2 AM. In your HubSpot workflows:

  1. Before the webhook action, add an If/then branch
  2. Condition: Contact property "IP Timezone" or manually set timezone property
  3. Branch 1: Eastern timezone → Send between 9:00 AM and 6:00 PM ET
  4. Branch 2: Pacific timezone → Delay until 9:00 AM PT
  5. 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):

  1. Workflow trigger → Send iMessage via webhook
  2. Delay 2 days → Send follow-up iMessage via second webhook
  3. Delay 3 days → If no reply → Send email fallback via HubSpot

Tuco AI-managed sequence (recommended for complex flows):

  1. HubSpot workflow trigger → Enroll contact in Tuco AI campaign
  2. Tuco AI handles the multi-step cadence with configurable delays
  3. Replies at any step → notify HubSpot via webhook, pause sequence
  4. 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:

  1. In your HubSpot workflow, add a Random split action (50/50)
  2. Branch A: Webhook with message template A (e.g., question-based opener)
  3. Branch B: Webhook with message template B (e.g., value-statement opener)
  4. Tag each branch with a custom property ("iMessage Test Variant = A" or "B")
  5. 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

ProblemCauseFix
Workflow fires but no message sentWebhook URL typo or missing API keyVerify webhook URL and Authorization header in HubSpot workflow settings
Message sent but no CRM timeline activityOAuth token expiredReconnect HubSpot integration in Tuco AI settings
Contact receives SMS instead of iMessageContact's number is not on iMessageExpected behavior — Tuco AI falls back to SMS for non-Apple devices
Personalization tokens show as blankHubSpot property is empty for that contactAdd if/then check before webhook: skip if phone is empty
Duplicate messages sentContact enrolled in multiple workflowsAdd suppression lists or "message sent in last X hours" checks
Replies not appearing in HubSpotWebhook endpoint not configured for inboundCheck Tuco AI Settings > Webhooks > Inbound Reply URL

What This Integration Costs

ComponentCost
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 actionsIncluded 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

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

Bharadwaj Giridhar's profile picture

Founder of Tuco AI and InboxPirates Consulting. 5+ years building cold outreach and iMessage automation infrastructure for B2B teams.

See Tuco in action

3x higher reply rates than email

Book a Demo
Book a Demo3x reply rates