How it works

How ZeroSettle's hosted AI agent answers iMessages, with no code

ZeroSettle's hosted AI agent (“Managed by AI Agent”, in Beta) answers every inbound text on your iMessage number from a business context you write, with no server or webhook to build. The hosted agent replies in up to three short texts with the typing bubble first, never invents facts the context doesn't give, and says it is your automated assistant if sincerely asked. Each text it sends uses one AI credit; ZeroSettle's $49-a-month Pro plan includes 1,000 a month.

Key takeaways

  • What it is: an AI agent ZeroSettle hosts that answers texts to your number from a business context you write. The console labels it Managed by AI Agent (Beta); the API value is managed_by: "zerosettle".
  • Who it fits: a business without a developer, or one whose answers to inbound questions and simple follow-ups fit in a written brief.
  • Price: Pro is $49/month with 1,000 AI credits a month; Growth is from $599/mo with 5,000. One credit per text the agent sends.
  • Main limit: the agent knows only its business context (up to 40,000 characters), any files you connect and the conversation, and the conversations it starts count toward the new-contact limit (5 a day per Pro number).
  • What it does not do: look up orders or bookings on its own (only through an MCP server you connect), call your webhook, or let you send from the same line group while it is on.

What does ZeroSettle's hosted AI agent do?

ZeroSettle's hosted AI agent answers every text that reaches your number from a business context you write, so nothing has to be built or hosted. 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. The hosted agent stands in for that code.

The choice is either-or per line group. Every number belongs to a line group (a one-number Pro account has one), and each group is Managed by API, the default, or Managed by AI Agent. On a group the agent manages, inbound texts are not POSTed to your webhook, and your own sends (API, MCP send_imessage or the console composer) are refused with 403 managed_by_zerosettle.

The hosted agent suits answers you can write down: hours, prices, policies, the next step. Examples include an after-hours AI receptionist, an AI SDR for demo requests and winning back lapsed subscribers; more are in the use-case hub and the how-it-works hub.

How do you set up the hosted agent?

Setting up ZeroSettle's hosted agent takes a few settings in the console's Messaging tab, or one API call: write the business context, pick a voice and a response time, and switch the line group to Managed by AI Agent. No webhook is needed.

  1. Get a number: Pro is self-serve at portal.zerosettle.io; Growth starts with a demo.
  2. Open the console's Messaging tab (or use PUT /api/imessage/agent or the MCP tool set_agent).
  3. Replace the example business context. Until you do, the agent is a high-energy assistant closing leads for a made-up software business.
  4. Pick a personality and a response_time; optionally write a first_message and set a goal link.
  5. Switch the group to Managed by AI Agent.
  6. Publish your number, for example as an sms: link on your site, so customers text you first.

The business context is everything the hosted agent knows about your business: who it is texting and why, your product, prices, policies, when to hand off to support, what never to say, and a few sample exchanges. A long one is easiest to send from a file:

bash
BASE=https://portal.zerosettle.io   # ZEROSETTLE_TOKEN is exported in your shell
jq -n --rawfile ctx business_context.txt '{managed_by: "zerosettle", business_context: $ctx,
  personality: "professional", goal: "demo_booked", link: "https://tallyfern.example/demo"}' |
curl -X PUT "$BASE/api/imessage/agent" \
  -H "Authorization: Bearer $ZEROSETTLE_TOKEN" -H "Content-Type: application/json" -d @-

Only the fields you send change. A context over 40,000 characters or about 14,000 tokens is refused with 422 invalid_request, and the saved one stays.

Which settings control the hosted agent?

Six settings shape ZeroSettle's hosted agent: its voice, its speed, what it knows, how it opens, what it is working toward, and when it follows up.

Hosted AI agent settings (ZeroSettle API docs, checked October 12, 2026)
SettingDefaultAllowed values
personalityfriendfriend, eager, zoomer, casual, professional, custom (your own voice in custom_personality, up to 1,000 characters) or none
response_timeinstantinstant; human (5–10 min); busy (30–60 min); hard_to_get (about a day)
business_contextAn example businessRequired; up to 40,000 characters, used exactly as written
first_messageA two-text opener1–3 texts, or off so the agent writes its own
goal + linkpurchasepurchase, trial_start or demo_booked, with a link such as a Stripe payment link or booking page
triggersOne follow-up: once, 1 day after the last message, in the morningUp to 5, each once (0–30 days after the last message) or daily, at morning, afternoon or evening in your timezone, with a plain-words instruction; or none

Personality sets the voice only; what the hosted agent says comes from the business context.

How does the hosted agent talk to people?

ZeroSettle's hosted agent waits for its response time, then answers everything the person sent since its last text in one go: up to three texts with the typing bubble up before each, or nothing when a reply would add nothing.

In the docs' words, the agent “never invents facts your business context doesn't give, says it is your automated assistant if sincerely asked, and points anyone who wants no more texts to STOP.”

  1. Tue 6:41 PM
  2. Customer: hi
  3. Customer: need invoicing for my cleaning business
  4. Customer: does it import from quickbooks?
  5. Business: Invoicing is what Tallyfern is built for, so you're in the right place.
  6. Business: On QuickBooks imports I don't have the details and won't guess. support@tallyfern.example can confirm.
  7. Customer: wait is this a bot
  8. Business: Yes, I'm Tallyfern's automated assistant. Happy to keep helping here.
  9. Customer: ok can I see a demo
  10. Business: Sure, pick a time here: https://tallyfern.example/demo
Illustrative example with a fictional invoicing app whose goal is demo_booked. Blue bubbles are the hosted AI agent, sent from the business's number; gray bubbles are the customer's. One answer covers the three-text burst, and the agent says what its context doesn't cover instead of guessing.

Follow-ups. By default the hosted agent follows up once, the morning after the last message, if the person goes quiet. Triggers fire at a random moment inside their window (morning 9–11 AM, afternoon 1–3 PM or evening 6–8 PM, America/New_York unless you change timezone), so texts land like a person's rather than on the dot.

A cap per contact. The hosted agent writes to one contact on one number at most 60 times per UTC day; every answer, opener and trigger it writes counts, including turns where it decides to send nothing. Past that it doesn't answer that contact until midnight UTC.

Saying it is an AI

The hosted agent discloses that it is automated when sincerely asked; disclosing sooner is up to you. ZeroSettle's terms require “transparent disclosure of AI interaction in systems like chatbots, unless it is contextually evident”. Laws differ on timing. Utah's S.B. 226 (2025) requires a business using generative AI in a consumer transaction to disclose it when the person asks with a “clear and unambiguous request”, and licensed professions to disclose it up front in high-risk interactions such as financial, legal or medical advice. The European Commission says that under Article 50 of the EU AI Act, which applies from 2 August 2026, people must be notified they are interacting with AI “from the start of the first interaction” unless it is obvious. To disclose up front, say so in first_message for conversations the agent starts; first_message isn't sent to people who text you first, so for them, tell the agent in the business context to introduce itself as your automated assistant. This is not legal advice.

Can the hosted agent start conversations?

Yes. ZeroSettle's hosted agent opens a conversation through POST /api/imessage/agent/start or the MCP tool start_conversation, then answers replies and follows up.

bash
curl -X POST https://portal.zerosettle.io/api/imessage/agent/start \
  -H "Authorization: Bearer $ZEROSETTLE_TOKEN" -H "Content-Type: application/json" \
  -d '{"to": "+13105551234", "name": "Dana"}'

Agent texts follow the same rules as yours: STOP is honored, the plan's new-contact limits apply, and so does the two-unanswered-messages rule. Text only people who gave you their number for this; as the docs say, “If you are unsure whether you have consent, you don't.”

Keep links out of the first message

As ZeroSettle's docs put it, “An iPhone won't open links from an unknown sender. Until the recipient replies to your number or saves it as a contact, a link in your text shows as plain text they can't tap.” End first_message on a question. Why first-message links aren't tappable has the details.

Refusals around the hosted agent (ZeroSettle API docs, checked October 12, 2026)
ResponseMeaning
403 managed_by_zerosettleYou sent on a group the agent manages
409 not_managedThe group is still Managed by API
402 ai_credits_exhaustedToo few credits for the first message; nothing sent
429 new_contact_limitThe number reached a new-contact limit; wait retry_after_s
429 agent_call_limitWith first_message off, the agent already wrote to that contact 60 times today (UTC)
502 agent_unavailableWith first_message off, the agent couldn't write the opener just then; nothing sent

What does the hosted agent cost?

ZeroSettle's hosted agent is paid in AI credits, one per text it sends, with a monthly allowance in each plan and packs for more. A number your own server answers uses none.

AI credits and limits by plan (ZeroSettle docs and zerosettle.io, checked October 12, 2026)
Plan detailProGrowth
Price$49/monthFrom $599/mo
AI credits included1,000 a month5,000 a month
New contacts per number5 a day50 a day, 3 per 15 min
Messages with people who message you firstUnlimitedUnlimited
Credit packs1,000 for $50 or 5,000 for $200, paid once, never expire

Included credits are shared by every number on the account and don't carry over. The 30-day money-back guarantee covers the subscription, not packs.

Answers, first messages and trigger texts use one credit per text; typing, tapbacks and an answer it decides not to send use none, and a refused or failed text gives its credit back. For example, a two-text opener, three two-text answers and one follow-up use 9 credits, so Pro's 1,000 covers about 110 such conversations a month.

At 20% left and again at zero, the number you sign in with gets a text with the buy link and the console shows a banner, each once a month. At zero the hosted agent goes quiet until credits refill or you buy a pack; texts still arrive in the inbox, and it does not catch up on them afterwards. See ZeroSettle pricing and the plans on zerosettle.io.

What are the trade-offs of the hosted agent?

ZeroSettle's hosted agent trades control for having nothing to build: it knows only its business context and the connectors you give it, it locks your own sends out of its line group, and it is in Beta.

  • No lookups of its own. Unless you connect an MCP server with an order or booking tool (Messaging → Connectors), the hosted agent cannot check an order, booking or account, so “where is my order?” gets whatever support route your context gives, not a status. Files you connect (price lists, menus, FAQs) add to what it knows.
  • No human replies on that group until you switch it back to Managed by API.
  • No webhook. The group's inbound texts never reach your webhook, so a CRM fed by it misses these conversations; they stay readable in the console, GET /api/imessage/messages and the live stream.
  • iMessage only. Like any ZeroSettle number, the agent reaches people on iMessage; there is no SMS fallback for people on Android.
  • Beta, and the model behind it is not disclosed.

Should you use the hosted agent or your own model?

Use ZeroSettle's hosted agent when everything it needs fits in a written context; run your own model behind the webhook when it must look things up, call tools or use a specific model. The docs describe that route: “Someone texts the line, your webhook fires, you call your model with your keys, and the answer goes back out through POST /api/imessage/send. ZeroSettle is the transport … and nothing else.”

Hosted AI agent vs your own model (ZeroSettle API docs, checked October 12, 2026)
QuestionManaged by AI AgentManaged by API
What you runNothingA webhook receiver and model calls
What it knowsThe business context, plus files and MCP server tools you connectAnything your code reaches
ModelNot disclosedAny provider with a chat endpoint
Reply costOne AI credit per textYour provider's bill

With your own model, “the model, the prompt, the provider account, and the API keys are yours and never touch ZeroSettle.” Give your AI agent an iMessage number walks through that route; the AI agent docs cover both. To try the hosted agent, get a Pro number.

Frequently asked questions

Where do I see how many AI credits are left?

In the console's Messaging tab and under Settings → Billing. Once the account uses the agent, GET /api/imessage/agent and GET /api/imessage/line also return an ai_credits object, and the live stream sends an ai_credits event when credits run low, run out or you buy more.

How do I pause the hosted agent or take over a conversation?

Switch the line group to Managed by API in the Messaging tab, with Answer yourself in the low-credits banner, or with PUT /api/imessage/agent and "managed_by": "api". The switch covers every conversation on that group, not just one; you can then reply from the console or your server, and the group uses no AI credits.

Can one account run the agent on some numbers and its own server on others?

Yes, on an account with more than one line group: each group has its own agent setting. Add ?group=lg_… to the agent endpoints to pick one; without it, the primary line's group is used. When your server starts a new conversation on such an account, it has to name a line managed by API (line_id), or the send is refused with 403 managed_by_zerosettle.

Do customers who text first count against the new-contact limit?

No. Anyone who texted the line first is never limited, and neither is an ongoing conversation, so the limits apply only to conversations the agent starts. Each text the agent sends still uses an AI credit.

Sources

  1. ZeroSettle iMessage API docs: “AI agent” (Managed by AI Agent, AI credits), “Links in a first message” and “Errors, limits, and compliance”. Checked October 12, 2026.
  2. ZeroSettle iMessage API Terms of Service, section 4 (Compliance with Legal and Ethical Standards). Last modified September 28, 2026.
  3. Transparency obligations under Article 50 of the AI Act, European Commission. Checked October 8, 2026.
  4. S.B. 226, Artificial Intelligence Consumer Protection Amendments (2025), enrolled copy, Utah Legislature; enacts Utah Code 13-75-103. Checked October 8, 2026.

Written by the ZeroSettle team. 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.

Product facts on this page come from the ZeroSettle iMessage API docs, zerosettle.io and the iMessage API Terms as of October 12, 2026. Laws on AI disclosure come from the pages listed under Sources, checked October 8, 2026. Tallyfern is a fictional business, and this page is not legal advice.

Text your customers from your own iMessage number

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate for you in a server facility. Your code sends with one API call and hears every reply on a signed webhook.

Pro is $49 a month with a 30-day money-back guarantee. Growth, for several numbers working as one, is from $599/mo.