> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hiveku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SMS Messaging

> Send and receive SMS and MMS from your business numbers

Send and receive SMS and MMS from any DID on your account. Threaded inbox, auto-replies, templates, group messaging, and full carrier compliance — all in `/dashboard/communications/` under the **SMS** tab.

<Info>
  This is **inbox-style** SMS for human-driven conversations between your team and your customers. For sending SMS programmatically from your application code (e.g., 2FA codes, transactional alerts), see [Connect Twilio](/how-tos/connect-twilio). The two products complement each other.
</Info>

## What you can do

<CardGroup cols={2}>
  <Card title="Threaded inbox" icon="messages">
    Every conversation grouped by contact, with full history.
  </Card>

  <Card title="Send and receive" icon="paper-plane">
    From any of your DIDs that has SMS capability.
  </Card>

  <Card title="MMS" icon="image">
    Send and receive images, video, and other media. US/Canada only on most networks.
  </Card>

  <Card title="Group messaging" icon="users">
    Multi-recipient group threads (US/Canada).
  </Card>

  <Card title="Auto-replies" icon="reply">
    Out-of-office, "we got your message", or after-hours replies.
  </Card>

  <Card title="Templates" icon="file-lines">
    Reusable snippets with variable substitution.
  </Card>

  <Card title="Click-to-text from CRM" icon="user-tag">
    Open a thread from any CRM contact's page.
  </Card>

  <Card title="Voicemail-to-SMS" icon="voicemail">
    Voicemails delivered as SMS with transcription.
  </Card>
</CardGroup>

## Sending an SMS

<Steps>
  <Step title="Pick a thread or start a new one">
    Existing thread: click the conversation. New thread: click **Compose** and enter a phone number.
  </Step>

  <Step title="Pick the sending number">
    If you have multiple DIDs, choose which one to send from. Replies come back to that number.
  </Step>

  <Step title="Type, attach, send">
    Plain text. Add an image or video for MMS. Standard message length: 160 characters; MMS up to \~5 MB media.
  </Step>
</Steps>

The recipient's reply appears in the same thread, and you'll see a desktop notification (and optionally an email or Slack alert).

## Receiving SMS

Inbound SMS arrives in the **SMS** tab. Hiveku threads by phone number, so you see a single conversation across all messages with that contact, regardless of which DID you used to send.

If the inbound number matches a CRM contact, the thread links to that contact and the message lands on their activity timeline.

## Auto-replies

Auto-replies fire on inbound SMS based on rules you configure.

<Tabs>
  <Tab title="Out-of-office">
    Activate manually before vacation. Inbound SMS gets a one-time auto-reply: "Thanks — I'm out of office until April 30. For urgent issues, call (555) 123-4567."
  </Tab>

  <Tab title="After-hours">
    Auto-reply outside business hours: "Thanks for your message. Our office is open 9-5 ET. We'll get back to you tomorrow morning."
  </Tab>

  <Tab title="Keyword-based">
    Inbound contains "STOP" → unsubscribe (also handled at the carrier level by law). Inbound contains "INFO" → reply with a stock info message and a link.
  </Tab>

  <Tab title="First-touch">
    First inbound from a number Hiveku has never seen: "Thanks for reaching out. We'll respond within an hour during business hours."
  </Tab>
</Tabs>

Auto-reply is rate-limited per recipient (one auto-reply per 24 hours by default) so you never accidentally storm a contact.

## Templates

Pre-written messages with variable substitution. Save common replies as templates and insert them in one click.

```
Template: "appointment-confirm"
Body: "Hi {{first_name}}, confirming your {{meeting_time}} appointment. Reply YES to confirm, RESCHEDULE to move."
```

Variables can come from the CRM contact, the booking record, or the thread context.

## Group messaging

Send a single SMS to multiple recipients. Two modes:

| Mode                     | Behavior                                                                                                     |
| ------------------------ | ------------------------------------------------------------------------------------------------------------ |
| Group thread (MMS group) | All recipients see each other; replies go to the whole group. US/Canada MMS only.                            |
| Broadcast                | Each recipient gets the message individually; replies come back as separate threads. Best for announcements. |

<Warning>
  Broadcast messaging has stricter carrier rules. Sending the same message to many recipients in a short window can trip spam filters. For marketing-volume sends, use a registered 10DLC campaign and respect rate limits.
</Warning>

## Rate limits and compliance

US and Canada SMS is governed by carrier rules — primarily 10DLC for local numbers and toll-free verification for 1-800-style numbers. Hiveku registers your numbers automatically when you buy them, but final approval can take a few days.

| Number type    | Throughput before approval   | After approval                       |
| -------------- | ---------------------------- | ------------------------------------ |
| US local 10DLC | \~1 msg/sec, may be filtered | Up to 30+ msg/sec, low filtering     |
| US toll-free   | \~3 msg/sec                  | Higher, depending on traffic profile |
| Short codes    | n/a                          | Available on enterprise plans        |

<Info>
  Hiveku enforces opt-out compliance automatically. If a recipient texts STOP, UNSUBSCRIBE, QUIT, or CANCEL to one of your numbers, all future messages from any of your numbers to that recipient are blocked.
</Info>

## CRM integration

Every SMS thread auto-links to a CRM contact. From any contact's page in `/dashboard/crm/`, you can:

* See the SMS history
* Click "Send SMS" to open a thread
* Reference SMS context in CRM notes and tasks

Your [AI Sales Co-pilot](/sales/overview) reads SMS history when prepping for a meeting and can draft replies for your approval.

## API

```bash theme={null}
# Send an SMS
curl -X POST https://api.hiveku.com/api/communications/sms \
  -H "Authorization: Bearer hk_live_xxx" \
  -d '{
    "from": "+14155551234",
    "to": "+14155559876",
    "body": "Hi! Confirming our 3 PM tomorrow."
  }'

# List threads
curl "https://api.hiveku.com/api/communications/sms?type=threads" \
  -H "Authorization: Bearer hk_live_xxx"

# List messages in a thread
curl https://api.hiveku.com/api/communications/sms/threads/thr_01HQ/messages \
  -H "Authorization: Bearer hk_live_xxx"
```

## MMS specifics

MMS supports `image/jpeg`, `image/png`, `image/gif`, `video/mp4`, and a few others. Max attachment size is 5 MB on US/Canada carriers. Outside North America, MMS support is spotty — fall back to a hosted link in plain SMS for those regions.

## Troubleshooting

<AccordionGroup>
  <Accordion title="My SMS didn't deliver">
    Most common causes: recipient is on a carrier blocking unverified senders (10DLC pending), recipient texted STOP previously, recipient's number is a landline with no SMS gateway. Delivery status appears on each message — check the icon next to it.
  </Accordion>

  <Accordion title="MMS images aren't sending">
    Some carriers downgrade MMS to SMS when the image is too large or in an unsupported format. Resize images under 1 MB and use JPEG or PNG. International recipients often can't receive MMS at all.
  </Accordion>

  <Accordion title="Auto-replies aren't firing">
    Check the auto-reply rule is enabled, the time condition matches the current time/zone, and rate limiting hasn't already sent one to this recipient in the last 24 hours.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Phone numbers" icon="phone" href="/communications/phone-numbers">
    Buy or port numbers with SMS capability.
  </Card>

  <Card title="Compliance" icon="shield-check" href="/communications/compliance">
    10DLC, opt-out, and carrier rules.
  </Card>
</CardGroup>
