How to Migrate from Sendblue to Tuco AI: Complete Step-by-Step Guide for HubSpot and Salesforce Teams

Data export, field mapping, CRM reconnection, testing, and go-live in under 48 hours

Bharadwaj Giridhar's profile pictureBharadwaj Giridhar
16 min read

Summary

Complete migration guide from Sendblue to Tuco AI for HubSpot and Salesforce users. Step-by-step: export contacts via Sendblue API, map fields to Tuco, reconnect CRM workflows, test delivery, and go live — all within 48 hours.

iMessage automation that actually reaches your leads

Outbound iMessages from your stack—no A2P 10DLC limits, no spam filters. Integrate with your CRM or any API.

Migrating from Sendblue to Tuco AI takes most teams 1-2 business days, with 6-10 hours of active effort. The process covers four stages: exporting your contacts via Sendblue's REST API, mapping fields and importing into Tuco AI, reconnecting your HubSpot or Salesforce workflows, and running delivery tests before going live. No data is lost — your CRM retains all historical conversation activity, and new Tuco AI messages append to the same contact records.

"We built the migration path after seeing teams stuck on Sendblue with API-sent messages that never synced to their CRM — they had data gaps in every sales rep's pipeline," 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. "The switch typically takes under 48 hours because the hardest part — your CRM data — is already intact. You're just changing the delivery layer."

Every message sent through Tuco AI — whether via dashboard, API, or CRM workflow — automatically syncs to your HubSpot or Salesforce contact timeline, eliminating the data gap that Sendblue's own documentation acknowledges for API-sent messages.

What Do You Need Ready Before Starting the Migration?

Collect these credentials and access points before touching any configuration:

  • Sendblue API credentials: Your sb-api-key-id and sb-api-secret-key from the Sendblue dashboard (Settings > API Keys)
  • Tuco AI account: Sign up at tuco.ai and complete onboarding. Your dedicated phone number, API key, and webhook URL will be provisioned during setup
  • CRM admin access: HubSpot Super Admin or Salesforce System Administrator permissions — you'll need to modify workflow actions and webhook endpoints
  • A spreadsheet or JSON viewer: For reviewing exported data before import
  • 30 minutes of scheduled downtime: Plan a window where no active campaigns are running on Sendblue

What Transfers and What Doesn't

Data TypeExportable from Sendblue?Importable to Tuco AI?
Contact list (phone, name, tags)Yes, via APIYes, via API or CSV upload
Message historyYes, via APINo — retained in CRM timeline
Conversation threadsYes, via APINo — new threads start fresh
Phone numberNo — Sendblue-provisionedNew number provisioned by Tuco
CRM workflow configsNo — CRM-side onlyRebuilt on CRM side
Webhook endpointsNo — dashboard configReconfigured in Tuco dashboard
Templates/sequencesNo export endpointRecreated in Tuco AI

Key point: your CRM already has your conversation history logged as timeline activities. When you connect Tuco AI, new messages append to the same contact records. You don't lose context — you just start a new chapter.

Automate iMessage to your leads—from your CRM or API

Send outbound iMessages from Salesforce, HubSpot, GoHighLevel, Clay, or any API. Higher response rates, no carrier filters.

Step 1: Export Your Data from Sendblue

Sendblue does not offer a CSV export button. All data extraction happens through their REST API (v2). Here's how to pull everything you need.

Export Your Contact List

Sendblue's contacts API returns paginated results. Use this endpoint to retrieve all contacts:

curl -X GET "https://api.sendblue.co/api/v2/contacts?limit=100&offset=0" \
  -H "sb-api-key-id: YOUR_KEY_ID" \
  -H "sb-api-secret-key: YOUR_SECRET_KEY"

Each response contains up to 100 contacts. Increment the offset parameter by 100 until you've retrieved all records. Save each page as JSON.

Fields returned per contact:

  • Phone number (E.164 format)
  • Display name
  • Tags
  • Notes
  • Creation date
  • Last message date

For teams with 1,000+ contacts, script the pagination:

const fetchAllContacts = async (apiKeyId, apiSecret) => {
  let allContacts = [];
  let offset = 0;
  const limit = 100;

  while (true) {
    const response = await fetch(
      `https://api.sendblue.co/api/v2/contacts?limit=${limit}&offset=${offset}`,
      {
        headers: {
          'sb-api-key-id': apiKeyId,
          'sb-api-secret-key': apiSecret,
        },
      }
    );
    const data = await response.json();
    if (!data.contacts || data.contacts.length === 0) break;
    allContacts = allContacts.concat(data.contacts);
    offset += limit;
  }

  return allContacts;
};

Export Your Message History (Optional)

If you want an archive of past conversations before disconnecting Sendblue, pull your message history:

curl -X GET "https://api.sendblue.co/api/v2/messages?limit=100&offset=0" \
  -H "sb-api-key-id: YOUR_KEY_ID" \
  -H "sb-api-secret-key: YOUR_SECRET_KEY"

Store this locally as a reference. You won't import these into Tuco AI, but they serve as a backup independent of your CRM records.

Check Your Active Campaigns and Sequences

Before disconnecting anything:

  1. Pause all active sequences in Sendblue
  2. Let any queued messages flush (check your Sendblue dashboard for pending messages)
  3. Document which CRM workflows trigger Sendblue actions — you'll rebuild these for Tuco AI

Step 2: Map Sendblue Fields to Tuco AI Fields

The two platforms structure contact data differently. Here's the field mapping:

Sendblue FieldTuco AI FieldNotes
phone (E.164)phone (E.164)Direct match, no transformation needed
display_namefirstName + lastNameTuco uses separate first/last name fields. Split on first space
tagstagsDirect match — array of strings
notesnotesDirect match — free text
created_atAuto-generatedTuco creates its own timestamp on import

Handling the Name Split

Sendblue stores a single display_name. Tuco AI uses firstName and lastName separately for personalization tokens in messages. Simple transformation:

const mapContact = (sendblueContact) => ({
  phone: sendblueContact.phone,
  firstName: sendblueContact.display_name?.split(' ')[0] || '',
  lastName: sendblueContact.display_name?.split(' ').slice(1).join(' ') || '',
  tags: sendblueContact.tags || [],
  notes: sendblueContact.notes || '',
});

Enrichment Opportunity

This migration is a good time to clean your list. Before importing into Tuco AI:

  1. Remove duplicates — deduplicate by phone number
  2. Verify iMessage availability — Tuco AI's availability checker API lets you verify which contacts actually have iMessage before you import. Contacts without iMessage will receive SMS fallback automatically, but knowing the split helps you set campaign expectations
  3. Update stale records — any contacts who haven't engaged in 6+ months can be tagged for a re-engagement sequence rather than immediate outreach

Step 3: Import Contacts into Tuco AI

Tuco AI accepts CSV uploads through the dashboard. Format your exported data as:

phone,firstName,lastName,tags,notes
+14155551234,Sarah,Chen,"lead;hubspot-synced",Engaged with demo
+12125559876,Marcus,Johnson,"prospect",Downloaded whitepaper

Upload via: Tuco AI Dashboard > Lists > Import > Upload CSV

Option B: API Import (For Developer Teams)

Use Tuco AI's REST API for programmatic import:

curl -X POST "https://app.tuco.ai/api/messages" \
  -H "Authorization: Bearer YOUR_TUCO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155551234",
    "message": "Hi Sarah — this is the Tuco AI team. Quick test message.",
    "firstName": "Sarah",
    "lastName": "Chen"
  }'

For bulk operations, use the list import endpoint or integrate through n8n/Zapier for batch processing.

Post-Import Verification

After importing, verify in the Tuco AI dashboard:

  • Total contact count matches your export count
  • Random-sample 10 contacts and confirm names, phone numbers, and tags transferred correctly
  • Check that phone numbers are in E.164 format (+1XXXXXXXXXX)

Step 4: Reconnect Your CRM After Switching

CRM reconnection is where the migration delivers its biggest improvement. One of Sendblue's documented limitations, confirmed in their own API documentation: API-sent messages do not automatically sync to dashboards or integrated CRMs. Tuco AI's CRM integration is bidirectional from day one — every message (API-sent or dashboard-sent) appears on the contact timeline. This single difference eliminates the data gaps that cause duplicate outreach and missed context for sales reps.

HubSpot Reconnection

Disconnect Sendblue from HubSpot:

  1. In HubSpot, go to Settings > Integrations > Connected Apps
  2. Find Sendblue and click Uninstall
  3. Review any workflows that referenced Sendblue actions — they'll show as broken

Connect Tuco AI to HubSpot:

  1. In your Tuco AI dashboard, navigate to Settings > Integrations > HubSpot
  2. Click Connect and authorize the OAuth flow with your HubSpot Super Admin account
  3. Select which HubSpot properties to sync (contact properties, deal stages, timeline activities)
  4. Enable bidirectional contact sync

Rebuild Your Workflows:

Tuco AI connects to HubSpot workflows via webhook actions. For each workflow that previously triggered a Sendblue message:

  1. Open the workflow in HubSpot's workflow editor
  2. Remove the broken Sendblue action
  3. Add a new Webhook action (or use Tuco AI's native HubSpot action if available in your marketplace installation)
  4. Configure the webhook:
    • URL: Your Tuco AI webhook endpoint (found in Settings > API)
    • Method: POST
    • Body: Include contact phone number, message content, and any personalization tokens

Example workflow triggers that should be migrated:

  • New lead form submission → Send iMessage within 5 seconds
  • Deal stage change → Send stage-appropriate follow-up
  • Meeting no-show → Trigger re-engagement sequence
  • Post-demo follow-up → Send personalized recap

Salesforce Reconnection

Disconnect Sendblue:

  1. In Salesforce Setup, search for Connected Apps
  2. Revoke Sendblue's OAuth access
  3. Note which Process Builder flows or Flow automations referenced Sendblue

Connect Tuco AI:

  1. In Tuco AI dashboard, go to Settings > Integrations > Salesforce
  2. Authenticate with your Salesforce admin credentials
  3. Map Tuco AI message activities to Salesforce Activity records on Lead/Contact objects

Rebuild Automations:

  • Replace Sendblue webhook calls in Salesforce Flows with Tuco AI's API endpoint
  • Update any Apex code that references Sendblue's API headers (sb-api-key-id) to use Tuco AI's Bearer token authentication
  • Test that reply webhooks from Tuco AI correctly create Task records in Salesforce

GoHighLevel Reconnection

If you're on GoHighLevel:

  1. Disconnect Sendblue from your GHL sub-account
  2. Install Tuco AI from the GHL Marketplace (or configure via webhook)
  3. Set Tuco AI as your conversation provider
  4. Test send/receive from the GHL Conversations tab

Step 5: Reconfigure Webhooks

Webhooks are how your systems receive real-time updates about message delivery, replies, and status changes. The payload formats differ between platforms, so every system that consumes webhooks needs updating.

Sendblue Webhook Payload (What You Had)

{
  "accountEmail": "you@company.com",
  "content": "Thanks for reaching out!",
  "is_outbound": false,
  "status": "RECEIVED",
  "message_handle": "msg_abc123",
  "date_sent": "2026-04-08T14:30:00Z",
  "from_number": "+14155551234",
  "to_number": "+12125559876"
}

Tuco AI Webhook Payload (What You'll Get)

{
  "event": "message.received",
  "messageId": "msg_xyz789",
  "conversationId": "conv_456",
  "from": "+14155551234",
  "to": "+12125559876",
  "content": "Thanks for reaching out!",
  "timestamp": "2026-04-08T14:30:00Z",
  "type": "iMessage",
  "status": "delivered"
}

Key Differences to Update in Your Code

AspectSendblueTuco AI
Auth headersb-api-key-id + sb-api-secret-keyAuthorization: Bearer TOKEN
Inbound message fieldis_outbound: falseevent: "message.received"
Phone number fieldsfrom_number / to_numberfrom / to
Message IDmessage_handlemessageId
Status valuesRECEIVED, SENT, DELIVEREDreceived, sent, delivered, failed

Update every system that consumes webhooks: your CRM middleware, Zapier zaps, n8n workflows, and any custom backend code.

Register Your Webhook URL in Tuco AI

In the Tuco AI dashboard:

  1. Go to Settings > Webhooks
  2. Add your endpoint URL (must be HTTPS)
  3. Select which events to receive: message.received, message.delivered, message.failed
  4. Save and test with a sample payload

Step 6: Test Before Going Live

Do not skip this step. Run through this checklist with real messages before switching production traffic. Testing every integration point prevents surprises when you switch production volume to Tuco AI.

Delivery Test Checklist

TestHowExpected Result
Send to iPhone contactSend test message from Tuco dashboardMessage arrives as iMessage, read receipt visible
Send to Android contactSend test message to a known Android numberMessage arrives as SMS (fallback)
Receive inbound replyReply to the test message from your phoneReply appears in Tuco AI inbox within seconds
CRM sync — outboundSend message, check CRM timelineActivity logged on contact record
CRM sync — inboundReply to message, check CRM timelineReply logged on contact record
Webhook deliverySend message, check webhook endpoint logsPayload received with correct format
Workflow triggerTrigger a CRM workflow that sends an iMessageMessage sent within expected timeframe
PersonalizationSend message with {firstName} tokenToken replaced with actual contact name
Rate limitsSend 10 messages in quick successionAll delivered, no throttling errors
Error handlingSend to an invalid numberfailed status webhook received, no crash

For the first 24-48 hours, keep your Sendblue account active (but paused) while running Tuco AI in production. This gives you a fallback if any edge case surfaces. Once you've confirmed:

  • All webhook integrations fire correctly
  • CRM activities log bidirectionally
  • Reply rates match or exceed your Sendblue baseline
  • No delivery failures on your primary contact segments

...then you can safely cancel your Sendblue subscription.

What Is the Go-Live Checklist?

Print this. Check every box before flipping to production.

  • All contacts imported into Tuco AI and verified
  • CRM integration connected and tested (HubSpot, Salesforce, or GHL)
  • All workflows rebuilt and tested with real messages
  • Webhook endpoints updated in all consuming systems
  • Old Sendblue webhook endpoints deregistered (to avoid confusion)
  • Team members trained on Tuco AI dashboard and inbox
  • Opt-out/compliance keywords tested (STOP, UNSUBSCRIBE)
  • Phone number communicated to active contacts (if applicable)
  • Monitoring alerts set up for delivery failures
  • Sendblue account paused (not canceled yet — keep for 7 days as safety net)

What Improves After Migration?

Teams that move from Sendblue to Tuco AI report specific operational improvements across CRM data integrity, cost, and infrastructure transparency.

CRM Data Integrity

Sendblue's documented limitation — API-sent messages not syncing to CRM, as confirmed in Sendblue's own API integration documentation — creates data gaps. Sales reps check the CRM and see an incomplete conversation history, which leads to duplicate outreach or missed context. Tuco AI's bidirectional sync means every message, regardless of how it was sent (dashboard, API, workflow), appears on the contact timeline.

Bidirectional CRM sync is not optional for teams running outbound at scale — it is the foundation of accurate pipeline reporting and prevents the duplicate outreach that damages prospect relationships.

Cost Reduction

Tuco AI's Starter plan costs $149/month with a one-time $335 setup fee, compared to Sendblue's AI Agent plan at $100/line/month with enterprise pricing that often reaches $1,000+ per line, according to Sendblue's published pricing page.

Annual comparison at typical usage:

Sendblue (AI Agent)Tuco AI (Starter)
Monthly cost$100/line (often $1,000+ enterprise)$149/month
SetupVaries$335 one-time (includes hardware + eSIM)
Year 1 total$1,200 - $12,000+$2,123
Per-message feesNoneNone
Apple ID recreationNot availableIncluded free
Number portingNot supportedNew number provisioned

Apple ID Recovery

When Apple flags a sending number (which happens under heavy outreach volume), Sendblue cannot recreate the Apple ID. The number is dead. Tuco AI manages Apple IDs in-house — when a flag occurs, the team provisions a new Apple ID on the same hardware, typically within hours. This means less downtime and fewer lost numbers.

Infrastructure Transparency

Tuco AI runs on real iPhone hardware with dedicated eSIM provisioning. Health checks run every 60 seconds. If a device goes offline, you're notified by email (and optionally Telegram) before it affects deliverability. Sendblue's infrastructure is less documented — their Trustpilot reviews from early 2026, as published on Trustpilot.com, include reports of unexpected carrier line cutoffs with limited support response.

The most critical difference between iMessage platforms is what happens when Apple flags a sending number — Tuco AI provisions a new Apple ID on the same hardware within hours, while Sendblue-provisioned numbers cannot be recovered once flagged.

Common Migration Questions

Q: Can I migrate on a weekend? Yes. The technical migration (data export, import, webhook config) can happen any time. CRM workflow rebuilds may require business-hours access to your HubSpot or Salesforce admin.

Q: What happens to contacts who reply to my old Sendblue number? Once you cancel Sendblue, that number goes inactive. Send a final broadcast from Sendblue before cutover: "We've updated our number. Replies to this thread will reach us at [new Tuco AI number]. Save this number in contacts as our new line."

Q: Do I need developer resources for the migration? If you're using Sendblue purely through the dashboard and CRM integration — no. A marketing ops or rev ops person can handle it. If you have custom API integrations (backend code calling Sendblue's API), you'll need a developer for 2-4 hours to swap endpoints, headers, and payload parsing.

Q: Is there a bulk message limit during migration? Tuco AI's daily limits depend on your plan (50-500+ messages/day per line). During migration, start with lower volume for the first 24 hours to warm the new number, then ramp to full capacity.

Q: What about compliance — do I need to re-collect consent? If you already have documented opt-in consent for messaging contacts, that consent carries over to your new platform. The consent is between you and your contacts, not tied to a specific vendor. Maintain your existing consent records.

Migration Timeline: What to Expect

DayActivityTime Required
Day 0 (Prep)Collect credentials, sign up for Tuco AI, pause Sendblue campaigns30 minutes
Day 1 (Morning)Export contacts from Sendblue API, map fields, import into Tuco AI2-3 hours
Day 1 (Afternoon)Connect CRM, rebuild workflows, configure webhooks2-4 hours
Day 1 (End of Day)Run full test checklist, fix any issues1-2 hours
Day 2 (Morning)Send final Sendblue broadcast with new number, switch production traffic to Tuco AI1 hour
Day 2 (Ongoing)Monitor first 24 hours of live traffic, verify CRM sync and webhook deliveryPassive monitoring
Day 7+Cancel Sendblue subscription after confirming stable operation5 minutes

Total active effort: 6-10 hours spread over 2 days.

Next Steps

  1. Sign up for Tuco AI — onboarding includes dedicated number provisioning and CRM setup assistance
  2. Read the HubSpot integration guide — detailed walkthrough of workflow configuration
  3. Compare Tuco AI vs. Sendblue features — full feature comparison if you're still evaluating
  4. Check iMessage API pricing across platforms — side-by-side cost analysis

Last updated: April 2026. Sendblue API documentation referenced: v2 (api.sendblue.co). Tuco AI integration specs current as of this publication date. Migration timelines based on observed client implementations — your timeline may vary based on CRM complexity and team size.

Frequently asked questions

  • How long does it take to migrate from Sendblue to Tuco AI?

    Most teams complete the migration in 1-2 business days. The actual data transfer takes a few hours. The remaining time is spent reconfiguring CRM workflows and running delivery tests before going live.

  • Will I lose my conversation history when switching from Sendblue?

    You can export your full message history from Sendblue's API before canceling. Tuco AI does not import historical threads, but your CRM retains all logged activities from Sendblue. New conversations in Tuco AI start fresh with full CRM sync from message one.

  • Can I keep my existing phone number when migrating to Tuco AI?

    Sendblue-provisioned numbers cannot be ported to other platforms. Tuco AI provisions a new dedicated number during onboarding, including Apple ID setup and eSIM activation. Most teams notify contacts of the new number through a final Sendblue broadcast before cutover.

  • Does Tuco AI support the same CRM integrations as Sendblue?

    Tuco AI has native integrations with HubSpot, Salesforce, and GoHighLevel. It also supports Zapier, Make.com, n8n, Clay, and Apollo. Unlike Sendblue, Tuco AI's API-sent messages sync to the CRM automatically — Sendblue's API messages do not sync to dashboards or CRM integrations.

  • What is the cost difference between Sendblue and Tuco AI?

    Sendblue's AI Agent plan costs $100/line/month with enterprise pricing often reaching $1,000+/line. Tuco AI's Starter plan is $149/month with a one-time $335 setup fee that includes real iPhone hardware, eSIM, and Apple ID management. Year-one total: Tuco AI at $2,123 vs. Sendblue at $1,200 minimum (but typically $12,000+ for enterprise features).

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