AI receptionist on iMessage: answer customer texts after hours
ZeroSettle's hosted AI agent (Beta) works as an AI receptionist on your iMessage number: it answers customers' texts, day or night, from a business context you write with your hours, prices and policies, and you need no server or code. The agent is designed not to invent facts the context doesn't give, and it says it is your automated assistant if sincerely asked. Each text it sends uses one AI credit; ZeroSettle's Pro plan ($49 a month) includes 1,000 a month.
Key takeaways
- What it is: ZeroSettle's hosted AI agent answering the texts that reach your iMessage number, switched on in the console as Managed by AI Agent (Beta).
- Who it fits: gyms, studios, shops and service businesses with no developer, whose customers text the same questions after closing.
- Price: Pro is $49/month with 1,000 AI credits (one per text the agent sends). Growth is from $599/mo with 5,000.
- Main limit: the agent knows only the business context you write (up to 40,000 characters) and any files you connect. It can't look up bookings or class spots unless you connect an MCP server that can.
- What it does not do: answer phone calls, let staff reply in the same thread while it is on, or reach Android phones (there is no SMS fallback).
Who uses an AI receptionist on iMessage?
ZeroSettle's AI receptionist on iMessage suits a gym, yoga studio, local shop or service business with no developer, whose customers text after closing: “Are you open Sunday? How much is a drop-in? Can I bring my kid?” Left until morning, some give up and go elsewhere. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks. For a receptionist, the hosted agent takes the place of that code.
The same agent runs a hotel's guest line, an event help line and a creator's text line; more jobs are on the use cases hub.
How an iMessage AI receptionist works, step by step
You write a business context once and switch the line group to Managed by AI Agent; from then on, ZeroSettle's hosted agent answers each text as it arrives.
- In the console's Messaging tab, switch the line group to Managed by AI Agent (Beta). There is no server or webhook to build.
- Write the
business_context, pick a personality, and leave the goal off or set it totrial_startordemo_bookedwith your booking link. - Publish the number on your website, Google Business Profile and front door.
- A customer texts at 8:47 PM. The agent shows the typing bubble and answers everything they sent since its last text in one go, as up to three texts, or sends nothing when a reply would add nothing.
- Each text it sends uses one AI credit.
- Staff read every thread live in the console, but their own sends are refused while the agent manages the line. Handoffs go to people through a phone number or booking link you put in the business context, or you switch the group back to Managed by API.
Example conversation: an AI receptionist on a Saturday evening
A fictional studio, Bramblewood Yoga, answers from the business context shown in the setup section. The customer texted first, so the booking link is tappable; iPhone shows links from an unknown sender as plain text until the recipient replies or saves the number.
- Sat 8:47 PM
- Customer: hey are you open sunday? and how much is a drop in
- Business: Hi! This is Bramblewood Yoga's automated assistant. We're open Sunday 8am-1pm.
- Business: Drop-ins are $25, or your first class is free if you book online: book.example.com/bramblewood
- Customer: can i bring my own mat
- Business: Yes, or borrow one of ours for free 🙂
- Customer: are you a real person lol
- Business: I'm Bramblewood Yoga's automated assistant. For anything I can't answer, call the studio at (415) 555-0134 once we open at 8am.
Setup: switch the line group to Managed by AI Agent
Setting up ZeroSettle's AI receptionist takes a business context and four settings in the console's Messaging tab. The business context is the receptionist's only source of facts about your business: up to 40,000 characters, used exactly as written. Replace ZeroSettle's default first, because it describes a made-up software business, and give your hours with their time zone.
You are Bramblewood Yoga's automated assistant, answering texts after the
front desk closes. Say so in your first reply to anyone new.
Hours (Pacific time): Mon-Fri 6:30am-8pm, Sat 8am-4pm, Sun 8am-1pm.
Drop-in $25. First class free if booked at https://book.example.com/bramblewood.
Mats: bring yours or borrow ours free. Kids 12+ with a parent.
Never promise a spot in a class (you can't see bookings), give injury
advice or offer unlisted discounts. Anything else: call (415) 555-0134
when we open.
| Setting | Default | For a receptionist |
|---|---|---|
response_time | instant | Keep it. The others delay every answer: human by 5 to 10 minutes, busy by 30 to 60, hard_to_get by about a day. |
personality | friend | friend, or professional for no slang or emoji |
goal + link | purchase, no link | trial_start with your first-class booking page, or off |
triggers | One follow-up, the morning after the last message | Off (enabled: false on it, or triggers: []): each follow-up costs a credit, and a “just bumping this” text suits a lead, not someone who asked your hours. If you keep it, set timezone to yours: mornings are 9 to 11 AM America/New_York by default. |
If staff answer texts during opening hours, flip the line group between Managed by API and Managed by AI Agent at opening and closing, in the console or from a scheduler. Agent-managed lines never call your webhook, so these two calls are the only code a receptionist needs, and they are optional. The AI agent docs and how ZeroSettle's hosted AI agent works cover every setting.
BASE=https://portal.zerosettle.io
# at closing: the hosted agent answers
curl -s -X PUT "$BASE/api/imessage/agent" -H "Authorization: Bearer $ZEROSETTLE_TOKEN" \
-H "Content-Type: application/json" -d '{"managed_by": "zerosettle"}'
# at opening: staff answer from the console again
curl -s -X PUT "$BASE/api/imessage/agent" -H "Authorization: Bearer $ZEROSETTLE_TOKEN" \
-H "Content-Type: application/json" -d '{"managed_by": "api"}'
On your website, an sms: link opens Messages on iPhone but the SMS app on Android, so keep email beside it. Google Business Profile takes up to two numbers besides the primary; keep your calling number primary, because ZeroSettle's number exists only for iMessage. Getting customers to text first covers links and QR codes.
Limits and consent for an AI receptionist
On a ZeroSettle receptionist line, customers text first, so inbound is never limited; the limit that matters is AI credits, one per text the hosted agent sends.
| Limit | Value |
|---|---|
| New contacts (customers who text first) | Not counted |
| AI credits | Pro 1,000/month, Growth 5,000, per account |
| Texts per answer | Up to 3 |
| Times the agent writes to one contact | At most 60 per UTC day, counting times it decides to send nothing |
Credit math. Pro's 1,000 credits cover roughly 330 to 1,000 answers a month, depending on whether each takes three texts or one. The Bramblewood Yoga thread used four, so 1,000 covers about 250 threads like it, around eight a day. A refused or failed text gives its credit back.
At zero the agent goes quiet. ZeroSettle texts your sign-in number at 20% left and again at zero, with a console banner. Texts still land in the inbox, but the agent doesn't catch up on them once credits refill or you buy a pack; it answers a customer again only when they text again. Answer the waiting ones yourself under Managed by API.
“Can I stop by?” is an opt-out
A text with the word STOP in it, or a clear request like “take me off your list”, opts the sender out of every number on your account, including “can I stop by after work?”. The agent can't answer them until they text START (or ZeroSettle clears it on request); see how STOP works.
Consent. Replying to someone who texted first is expected. If you also start conversations with POST /api/imessage/agent/start, text only people who gave you their number for that purpose, send nothing promotional before 8 am or after 9 pm in their time zone, and know that each person who hasn't texted you before counts toward Pro's 5 new contacts a day per number. ZeroSettle's terms require AI disclosure unless it is contextually evident; the agent points anyone who wants no more texts to STOP. This isn't legal advice.
When ZeroSettle is not a fit for an AI receptionist
ZeroSettle's hosted agent answers texts from a written brief, so it is the wrong tool when the job needs calls, live data or staff in the same thread.
- You need calls answered. The number exists only for iMessage.
- Staff want to reply in the agent's threads. A group the agent manages refuses your own sends with
403 managed_by_zerosettle; switch it back to Managed by API. - Answers depend on live data, such as class spots or a booking time. The agent answers only from its
business_contextand connected files, and can't look things up without an MCP server you connect; run your own model on the webhook instead. - Most customers use Android. There is no SMS fallback.
- Intake involves health information. ZeroSettle's terms don't allow protected health information without a Business Associate Agreement with ZeroSettle. This isn't legal advice; check your HIPAA obligations with counsel.
How much does an iMessage AI receptionist cost?
An AI receptionist on ZeroSettle costs the plan price, plus credit packs if a month runs past its included credits.
| Plan | Price | Numbers | AI credits a month |
|---|---|---|---|
| Pro | $49/month | One | 1,000 |
| Growth | From $599/mo | 3+, working as one | 5,000 |
Included credits reset each billing month and don't carry over. Credit packs add 1,000 for $50 or 5,000 for $200, paid once, and never expire. Pro is self-serve, with unlimited messages with people who message you first, no setup fee and a 30-day money-back guarantee on the subscription (not packs); Growth starts with Book a demo. See ZeroSettle pricing, the plans and the API docs, or get a number.
Frequently asked questions
Which AI model does the receptionist use?
ZeroSettle doesn't publish which model runs the hosted agent. If you need a specific model, run your own on the webhook instead.
Can the AI receptionist book appointments?
It can send your booking link (goal trial_start or demo_booked) and answer questions about it; on its own, it can't write into your booking system.
How do I update holiday hours?
Edit the business context in the console's Messaging tab (or send business_context to PUT /api/imessage/agent), and the agent answers from the saved text. A context over 40,000 characters is refused, and the one already saved stays.
Can the receptionist answer one number while my own system texts from another?
Yes, on an account whose numbers sit in more than one line group: the setting is per line group, so one group can be Managed by AI Agent while another stays Managed by API. Every number shares the account's AI credits.
Sources
- ZeroSettle iMessage API docs: “AI agent” (Managed by AI Agent, AI credits) and “Errors, limits, and compliance”. Checked October 12, 2026.
- ZeroSettle iMessage API Terms, section 4 (AI disclosure) and section 13 (protected health information). Last modified September 28, 2026.
- SMS Links, Apple URL Scheme Reference, Apple Developer. Checked October 8, 2026.
- Edit your Business Profile, Google Business Profile Help. Checked October 8, 2026.