Features
Real conversations aren't plain text.
People react, reply to one message in a busy thread, send a photo of the roof, edit a typo, unsend the wrong address, drop a voice note from the car. If your automation only sees plain strings, it is reading a transcript with the meaning stripped out.
autoMessage reads what Messages actually stores — group threads, reactions, attachments, replies, edits, unsends and read receipts — and makes all of it available to your dashboard, your API calls, your webhooks and your AI tools.
What syncs, and what you can send
Two different questions, and we keep them separate. Reading is close to complete, because Messages stores it all on your Mac. Sending is narrower, because Messages only exposes so much to automation.
| Message type | Syncs in | You can send |
|---|---|---|
| Text — iMessageBlue bubble, from your number | Yes | Yes |
| Text — SMS / RCSGreen bubble; needs Text Message Forwarding | Yes | Yes |
| Group chatsParticipants and group name included | Yes | Replies into existing groups |
| Tapbacks / reactionsAll six, including removals | Yes | — |
| AttachmentsPhotos, video, files, stickers | Yes | — |
| Voice notesFlagged, with played state | Yes | — |
| Threaded repliesLinked to the message replied to | Yes | — |
| EditsCaught even hours later | Yes | — |
| UnsendsRetraction and its timestamp | Yes | — |
| Read receiptsDelivered and read timestamps | Yes | Mark as read |
| Send effectsSlam, loud, invisible ink | Yes | — |
| Subject linesRare, but preserved | Yes | — |
A dash means reading only. Sending attachments and tapbacks is on the roadmap; we would rather list it here as missing than imply it works.
In more detail
Group chats
A group thread syncs with every participant and its name, and you can send into it through the API by passing the conversation ID instead of a number. A reply into a group you are already in never counts against your new-outreach limit — it is a conversation, not cold outbound.
Tapbacks
All six reactions sync — heart, thumbs up, thumbs down, haha, exclamation and question — attached to the message they land on, with the sender and the time. Removing a reaction syncs too, so the state you read is the current one.
Attachments and stickers
Photos, videos and files arrive with a URL your code can fetch, plus mime type, filename and size. Stickers are flagged separately so you can tell a sticker from a photo without guessing at the file.
Voice notes
Voice messages sync as their own type, labelled, with whether the recipient has played it yet. A transcript is not something Messages gives us, so you get the audio and the metadata, not text.
Replies, edits and unsends
A threaded reply carries a pointer to the message it answers. An edit updates the body and records when it was edited. An unsend marks the message retracted rather than quietly deleting your record of it — and because the connector re-reads messages whose timestamps move, an edit or unsend hours after the fact still lands.
Read receipts
Delivered and read timestamps sync on both directions where Messages reports them, so you can tell a message that was ignored from one that was never seen. You can also mark a thread read through the API.
Why the rich types matter
A thumbs-up on "Tuesday at 2 works?" is a confirmation. An agent that only reads text sees no reply at all and chases a client who already answered. A threaded reply four messages up is answering a different question than the one you just asked. An unsent message your CRM still shows is a wrong address someone is about to drive to.
This is also the line between a finished product and a library. The free self-hosted frameworks in this category document reactions, threaded replies, edits, unsends, read receipts and effects as unavailable in local mode. We sync all six. See that comparison →
Everywhere at once
There is one sync, and every surface reads the same data. A group thread with reactions and a photo appears in your dashboard, in the REST API, in your webhook payloads, and to any AI client connected through the MCP server — and it is still a normal thread on your iPhone that you can pick up and type into by hand.
Questions
- Can I send to a group chat?
- Yes, into a group thread that already exists on your Mac — pass the conversation ID instead of a phone number. Replies into a group do not count against your new-outreach limit. Creating a brand-new group through the API is not supported; start it once on your phone and it is available from then on.
- Do tapbacks and reactions come through?
- Yes. All six reaction types sync onto the message they target, with the sender and timestamp, and removals sync as well. Sending a tapback is not supported — Messages gives no automation hook for it, so a reaction has to be tapped by a human.
- Can I send photos or files?
- Not yet. Inbound attachments sync with a fetchable URL, mime type, filename and size, and stickers are flagged. Outbound sending is text only today.
- What about edits and unsends?
- Both sync. The connector re-reads messages whose edit or retraction timestamps move, so a message edited or unsent well after it arrived still updates your record instead of going stale.
- Does any of this need extra setup?
- No, with one exception: green-bubble SMS and RCS need Text Message Forwarding switched on for that Mac in your iPhone settings. Everything else works as soon as the connector is signed in with Full Disk Access.