Beam
Start free

Blue bubbles for the leads already in GoHighLevel.

Beam connects to one location and shows up as another channel in the conversation inbox. It sends iMessage when the phone can receive it, and a normal text when it cannot. Email lives in the same inbox. The phone workflows you already run stay where they are.

Opens the Beam app. Create a preview workspace with your work email. Nothing sends until you choose a plan and a dedicated line is assigned. See plans in the app.

9:41LTE
Alex Morgan iMessage

How does this work?

You text this number. The thread stays with your team, on one dedicated line.

Can someone come by Thursday?

Thursday at 10:00 or 2:30. Which works better?

Delivered

Illustrative conversation. Alex is a fictional sample, the same kind of preview Beam uses in the product. Not a customer result.
Channel
iMessage
If blue is unavailable
SMS
CRM tag
imessage-sent

Illustrative conversation, not a customer result. Two real time windows, no calendar link.

From a GoHighLevel lead to a reply, without a new CRM.

Beam is the messaging layer. GoHighLevel stays the system of record. The connection is verified, not assumed.

  1. 1

    Connect one location

    Create a restricted credential with only the contact and calendar permissions Beam needs. Beam checks the live account before it shows Connected. A stored credential that fails that read-back stays Not connected. One workspace maps to one location, and a token cannot read another client.

  2. 2

    Send from the workflow you have

    A Custom Webhook step posts to Beam. The phone number is read from that GoHighLevel contact. You do not paste a destination. Keep dry run on, test your own contact, and expect a validated result with nothing queued. GHL's own Send SMS action does not use this channel.

  3. 3

    Work the reply where you already work

    Beam writes tags back to the contact, including imessage-sent, beam-sms-sent, imessage-replied, bot-booked-call, and bot-handoff. The CRM receives pending, delivered, or failed. It does not get an invented open or read.

Read the GoHighLevel integration or the CRM setup guide.

iMessage, SMS, and email. One inbox.

The lead sees a normal conversation from your dedicated number. There is no platform watermark on the thread. Your team sees the channel on the conversation.

Blue when the phone can take it

iMessage

Thursday at 10:00 or 2:30. Which works better?

On first contact, Beam checks whether the phone supports blue bubbles and remembers the answer. Typing indicators, read receipts, and tapbacks are real signals on blue threads. Texting does not support them, so Beam only offers them there.

Text when it cannot

SMS

Same question, sent as a text because this phone is not eligible for blue bubbles.

Android leads get a regular text and a beam-sms-sent tag. A confirmed-dead blue message can be re-sent as SMS, or left for a person. That is a workspace setting. An uncertain delivery is not automatically retried or downgraded.

Email on your domain

Email
From your verified domain Following up on the visit

Beam runs the email transport. You add the DNS records it lists, and Beam reads the domain back before it reports Ready. The GoHighLevel email bridge is still feature-flagged. Do not plan on it for every sub-account yet.

Plan the day before you promise the launch.

Beam publishes a planning range and calls it a channel limit. No plan removes it. Anyone selling unlimited blue-bubble sending is describing something this channel does not do.

How the daily limit actually works

50 to 100new cold contacts per day on one warmed line. 40 before warm-up. Inbound-first is not paced the same way.

Built for the teams an agency already runs.

Same product, different first motion. Nothing here is a customer count or a promised reply rate. No platform can honestly guarantee replies.

Sales teams

A new opted-in lead can get the first message from the workflow you already built. A reply writes imessage-replied, which can start the call step you already use. The assistant, if you turn it on, offers two real calendar windows and never sends a booking link.

Real estate

Each contact keeps the first number they heard from. The history stays in one thread on their phone, so a buyer is not handed a different line on every follow-up.

Insurance

Sends stay inside the workspace window, 9am to 8pm by default. STOP and ordinary language like "please stop texting me" are blocked at the send layer, including assistant replies. This page is not legal advice. Confirm registration for your lines before a campaign.

Home services

A button on your site opens the visitor's Messages app with the first message already written. Beam does not send an outbound from that embed. When the contact texts you first, the cold-contact ramp does not apply.

Agencies. Each client runs in a separate workspace: inbox, numbers, assistant, team, CRM connection, and API key. Nothing crosses between them. Custom domains are not active. Agency pricing and rebilling are not published or implemented. A client owner pays Beam directly, even when an agency created the workspace.

An assistant that stops when the calendar does not confirm.

It starts off. One owner approves it. Before a reply it reads the next six days of live availability and proposes two windows in plain language. The thread is marked booked only after the calendar confirms. If that write fails after the lead agreed, the assistant pauses and alerts your team.

The playground cannot send, queue, or book. Follow-ups are off unless an owner turns on up to three delays. A human reply pauses the assistant on that conversation. For email, start in draft only. You bring your own model key, and that usage stays on your account.

Details are in the assistant guide.

A documented API, not a screenshot of one.

Your server calls POST /v1/messages with an x-api-key that stays server-side. The response status is queued. Queued is not delivered. The public contract is OpenAPI 3.1 with 20 paths, including availability checks, typing, read receipts, reactions, and email.

curl -X POST https://beam.aisync.link/v1/messages \
  -H "x-api-key: YOUR_WORKSPACE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+15551234567","message":"Thursday at 10:00 or 2:30. Which works better?"}'

Read the iMessage API page or the OpenAPI file.

Questions worth answering before a demo.

Does GoHighLevel send iMessage on its own?

No. HighLevel's marketplace conversation providers cover custom SMS, email, and call providers. There is no iMessage provider type. Beam connects as an additional inbox channel and leaves your existing phone workflows unchanged.

What if the contact cannot receive a blue bubble?

Beam checks the phone once and remembers the answer. Eligible phones get iMessage. Everyone else gets a regular text, and the contact is tagged beam-sms-sent instead of imessage-sent. An uncertain delivery is not silently re-sent or switched to SMS.

Does Beam handle email as well as texting?

Yes. Email sits in the same Beam inbox as blue messaging, SMS, and calls, on a domain you verify with a DNS checklist Beam gives you. The GoHighLevel email bridge is still behind a platform feature flag, so do not assume it is on for every location.

Can I look at Beam before a line is live?

Yes. Open the app and create a preview workspace with your email and business name. The sample conversation stays inside Beam and nothing sends. Live sending stays locked until you choose a plan and a dedicated line is assigned. Plans are shown in the app.

How many new contacts can one line message per day?

Beam's docs put a warmed line at 50 to 100 new cold contacts per day, and 40 per day before warm-up. That is a channel limit, not a plan upgrade. When the contact texts you first, that ramp does not apply.

Is Beam an Apple product?

No. iMessage is a trademark of Apple Inc. Beam is not affiliated with Apple. Beam sends from dedicated business numbers, not from a personal Apple ID.

Open a preview before a message leaves.

See the inbox, the assistant, and the CRM connection with sample data. Choose a plan in the app when you are ready for a line.