# Send iPhone Texts to Home Assistant

> Turn incoming iPhone texts into Home Assistant automations with a webhook trigger. Set up the trigger, open it to the internet, and read the text as JSON.

Last updated: 2026-10-23
Canonical HTML page: https://www.fwrdsms.com/blog/iphone-texts-to-home-assistant
Published: 2026-10-18

To send iPhone texts to Home Assistant, give an automation a webhook trigger, get an HTTPS address for it through Home Assistant Cloud or your own domain, and have a Shortcuts Message automation post each new text to that address. Home Assistant reads the text as `trigger.json`, so a text from your alarm can turn on a light or announce a delivery on a speaker.

**What you need:** an iPhone that gets the texts, a Home Assistant server, and an HTTPS address for it, either through Home Assistant Cloud (Nabu Casa) or your own domain and reverse proxy. To use Fwrd, you also need iOS 26 or later.

## How does a text reach Home Assistant?

Through a webhook. No app can read your texts on its own, so a Shortcuts automation hands each matching text to an action that posts it to Home Assistant’s webhook address.

Home Assistant’s [automation trigger docs](https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger) (read October 18, 2026) say the address is `/api/webhook/` followed by your webhook ID, and that it’s created as soon as you set the ID in a trigger. They also say JSON sent to it is available as `trigger.json`, as long as the request is sent as `application/json`, which Fwrd does.

## How to send iPhone texts to Home Assistant

1. **Create the automation.** In Home Assistant, go to Settings, then Automations & scenes, then Create automation, then Create new automation. In the When section, select Add trigger, add a Webhook trigger, and leave the Webhook ID as it is.

2. **Choose how the iPhone reaches it.** Home Assistant’s docs say webhooks answer only devices on the same network or Nabu Casa Cloud webhooks by default. With Home Assistant Cloud, leave Only accessible from the local network on. With your own domain or reverse proxy, select the cogwheel beside the Webhook ID and clear it, because your iPhone posts from wherever it is.

3. **Get the HTTPS address.** With Home Assistant Cloud, save the automation, go to Settings, then Cloud, scroll to the webhooks card, and select Manage next to your webhook. Nabu Casa’s [webhook article](https://support.nabucasa.com/hc/en-us/articles/25619382358685) (read October 18, 2026) says the dialog shows a unique URL for it. With your own domain, the address is `https://` your domain, then `/api/webhook/` and the ID.

4. **Add a Webhook destination in [Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=blog-home-assistant&mt=8).** Open Fwrd, tap +, and choose Webhook. Paste the whole HTTPS address into Configuration. Tap Send Test Message, then save with the tick.

5. **Create a Message automation in Shortcuts.** On iOS 27, open Shortcuts, tap Library, then Automation, then +, and choose Message. On iOS 26, open the Automation tab, tap +, and choose Message. Choose Message Contains and type a word your texts share, such as alarm.

6. **Make it run without asking.** On iOS 27, tap the arrow beside the trigger and check that Confirm Before Run is off. Under ⓘ, then Privacy, check that Allow Running When Locked is on. On iOS 26, choose Run Immediately, then tap Next and Create New Shortcut.

7. **Add Fwrd’s action.** Search for Forward and add Forward Message to All Destinations. Set its Message to Shortcut Input (on iOS 26, Shortcut Input, then Message). Tap back to save (Done on iOS 26).

8. **That’s it.** New texts with your word now reach Home Assistant on their own, with the iPhone unlocked or locked.

The [webhook guide](https://www.fwrdsms.com/guides/webhook) has every Fwrd screen, and [Forward iPhone SMS to a webhook](https://www.fwrdsms.com/iphone-sms-to-webhook) covers the request in full.

Watch the setup video on the [setup guide](https://www.fwrdsms.com/guides/webhook).

### What does the automation look like in YAML?

Fwrd’s body is `{"content": "…", "text": "…"}`, both holding the text exactly as it arrived, so the automation reads `trigger.json.content`. This one turns on the porch light when a text mentions the alarm:

```yaml
alias: Alarm text turns on the porch light
triggers:
  - trigger: webhook
    webhook_id: "a-long-random-id-only-you-know"
    allowed_methods:
      - POST
    local_only: false # only needed without Home Assistant Cloud
conditions:
  - condition: template
    value_template: "{{ 'alarm' in trigger.json.content | lower }}"
actions:
  - action: light.turn_on
    target:
      entity_id: light.porch
```

Swap the action for a speaker announcement and a courier’s “out for delivery” text can tell the house a parcel is coming. Turn on Include Who Sent It in Fwrd’s Settings and fill in the Sender field on Fwrd’s action, and the body also gets a `sender` field you can read as `trigger.json.sender`.

## What does Fwrd add to the webhook?

Fwrd’s Webhook destination does the posting, so the automation is one action:

- **Filters.** The webhook destination can keep only texts with words you choose, ones that look like a verification code, or ones that arrive at certain hours. Try a Text checks a filter against a sample. A text a filter skips doesn’t use up a free forward.
- **One text, several places.** The same action can send the text to Home Assistant and a family chat on Slack, Discord, Telegram or Teams at once.
- **Retries without repeats.** If a send times out or the server is busy, Fwrd tries again, up to twice, with the same `Idempotency-Key` header each time.
- **The address stays private.** Fwrd keeps the URL in the iPhone’s Keychain, not inside a shortcut. There’s no Fwrd account or server; each text goes from your iPhone straight to Home Assistant.
- **A history on the phone.** It shows each forward and whether Home Assistant accepted it.

## The limits to know

- **The webhook ID is the password.** Home Assistant’s docs say webhooks need no other login, so use a long, unguessable ID and keep it private. Fwrd adds no login headers.
- **Don’t open locks with it.** The same docs warn against webhook automations that open a door lock or a garage door. Lights, speakers and notifications are a better fit.
- **Fwrd needs a public HTTPS address.** It turns down IP addresses and names ending in .local, and it refuses redirects, so paste the final address. A cloud webhook URL needs a Home Assistant Cloud subscription.
- **The phone has to stay on and online.** Only new texts that match the automation are sent, and after a restart forwarding waits until you unlock the iPhone once.

## Questions people ask next

### Can Home Assistant read the text itself?

Yes. Fwrd sends the whole text in `content` and `text`, so a template such as `trigger.json.content` holds it. You can match words in a condition, put the text in a notification, or have a speaker read it out.

### Do I need Home Assistant Cloud?

No. Any HTTPS address that reaches your server works, such as your own domain behind a reverse proxy. Home Assistant’s [remote access page](https://www.home-assistant.io/docs/configuration/remote/) (read October 18, 2026) calls Home Assistant Cloud the easiest option, with no router ports to open.

### Does it work when I’m away from home?

Yes, through a Home Assistant Cloud webhook URL, or through your own public HTTPS domain once Only accessible from the local network is off. The iPhone posts over Wi-Fi or mobile data, wherever it is.

### What does Fwrd cost?

Fwrd is free for 15 forwards a month, and a text counts once however many places it goes. Fwrd Pro removes the limit for $4.99 a month or $29.99 a year in the US.

## Keep reading

- [Forward alarm and sensor texts to a group chat](https://www.fwrdsms.com/blog/forward-alarm-sensor-texts-to-group-chat)
- [How to send a webhook from Apple Shortcuts](https://www.fwrdsms.com/blog/apple-shortcuts-webhook)
