Skip to main content
You send iMessage from GoHighLevel by connecting GHL to Tuco AI and calling Tuco’s Send Message API from a GHL workflow — the fastest way is a plain Webhook action pointed at 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.
If the contact has no phone or email, the send fails with 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

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.
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.
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.
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.