https://app.tuco.ai/api/messages with your Tuco API key. GoHighLevel has no native iMessage channel, so Tuco provides the Apple-connected sending lines and handles the iMessage availability check plus SMS fallback automatically. You can also use the Send via Tuco GHL Marketplace action for contact-ID-only sends and native voice notes.
Method 1 — Send from a GHL workflow with a Webhook (fastest)
No Marketplace app or action secret required — just your Tuco API key.1
Add a Webhook action
In your GHL workflow, add a Webhook action — Method
POST, URL https://app.tuco.ai/api/messages.2
Add your API key header
Header
Authorization = Bearer tuco_sk_xxxxxxxxxxxxx (your Tuco API key).3
Map only the message
Under Custom Data, set
message (required). Optionally add lineId to pin a sending line and attachmentUrls. GHL already attaches the full contact payload, so Tuco reads phone → recipient, contact_id → GHL contact, location.id → location, full_name → name, and user.email → owner automatically.missing_recipient. Full field-by-field mapping and a copy-paste example live on the Send Message reference.
Method 2 — The “Send via Tuco” Marketplace action
Use the GHL Marketplace Send via Tuco action when you want Tuco to look up the recipient, pick a line, and run compliance checks from only a contact ID — or when you want to send a native iMessage voice note (the play-button bubble, not a file link). Find both setups in your Tuco dashboard under Leads → AI & API.Control the channel with a GHL tag
Tuco reads a GHL contact tag live on every send, so you can force a channel instantly — no sync, no reinstall:
The tag is matched loosely, so
forcefallback, force-fallback, and Force Fallback all work. forcefallback changes the channel only — a fallback must be configured under Settings → When iMessage isn’t available.
Connect GoHighLevel to Tuco
1
Enter your GHL credentials
In Tuco go to Integrations → CRM, enter your GHL API key and Location ID, and click Test & Connect. A full contact sync starts automatically and re-syncs every 15 minutes.
2
Grant the required scopes
Location access, Contacts (search/read), and Tags (read) are required. Users-read, Custom-fields-read, Contact-tags add/remove, and Conversations-create are recommended for owner mapping, field mapping, and activity logging.
Frequently asked questions
Does GoHighLevel send iMessage natively?
Does GoHighLevel send iMessage natively?
No. GHL sends SMS and email but cannot send iMessage. Tuco AI adds the iMessage channel by sending from Apple-connected lines and exposing a Send Message API and a GHL Marketplace action.
Do I need the Marketplace app to send an iMessage?
Do I need the Marketplace app to send an iMessage?
No. The quickest method is a plain GHL Webhook action to the Send Message API using your Tuco API key. The Marketplace “Send via Tuco” action is optional and adds contact-ID lookups and native voice notes.
How do I send an iMessage voice note from GHL?
How do I send an iMessage voice note from GHL?
Use the Send via Tuco Marketplace action with a public audio URL, set
message to _attachment_only_, and set voiceNote to true. Note that attachments (including voice notes) are blocked on the first-ever message to a contact — warm them up with a text first.Can I force a contact to SMS instead of iMessage?
Can I force a contact to SMS instead of iMessage?
Yes. Add the
forcefallback tag to the GHL contact. Tuco reads it live on every send and routes that contact through your SMS fallback.GoHighLevel integration
Full GHL setup: sync, tags, owner mapping, voice notes, and Check for Replies.