ChatGPT Dots vs Claude Duet vs Grok Bot for an iMessage business line
None of the three always-on agents can text your customers by itself, so each needs a business iMessage number. Where they differ is how much of that number they can drive. Grok Bot is the only one with a documented real-time path: a webhook routine wakes it for each inbound text, and it replies through ZeroSettle's API. Claude Duet can probably use the ZeroSettle connector in live chat, but reportedly not in its scheduled runs. On ChatGPT Pro, custom MCP gets read-only tools, which would be enough for a morning briefing, though OpenAI hasn't confirmed that a dot can call a custom plugin at all; write tools need Business or Enterprise. For customers who expect an answer in seconds, put ZeroSettle's hosted AI agent or your own server on the line, and run whichever agent you like on top.
Key takeaways
- Texting other people: none of them can natively. A dot's texting channel reaches only its owner, Duet "doesn't make phone calls or send text messages to other people," and Grok Bot's docs list no texting tool.
- Connecting: all three can point at
https://portal.zerosettle.io/mcpwith OAuth. ChatGPT Pro is limited to read/fetch tools, and OpenAI doesn't confirm a dot can use a custom plugin. Duet relies on your Claude account's connectors, which Anthropic hasn't confirmed for custom ones. Grok Bot also calls the REST API from its cloud computer. - Triggers: Grok Bot has webhook routines (real time, through a small relay). Dots run scheduled tasks. Duet sends a morning brief and checks in every few hours, with no documented way for anything outside its app to wake it.
- Approvals: all three hold sensitive actions for your OK, in different ways. A Grok Bot approval card from a background run expires after 30 minutes.
- Pick: Grok Bot to answer a small, known group in real time; Duet to review threads and draft replies; a dot for a read-only briefing and alerts to you; the hosted agent for the public.
The fastest way: connect ZeroSettle and ask your Bot to text
With Grok Bot you don't need to build anything to start. Ask the Bot to add the custom MCP server https://portal.zerosettle.io/mcp and sign in with your phone number. If you don't have a number yet, it can get you one (sign_up, then subscribe for the payment link you open in your browser). Send the first text to your own number as a test. Then ask it to text someone who asked to hear from you, and it calls send_imessage; ask it to check for replies, and it calls list_messages (or list_conversations for every thread).
That covers sending and reading, under the same rules as POST /api/imessage/send. Two things to know. A new number starts with the hosted AI agent on (managed_by: "zerosettle"), and it also answers replies to the Bot's texts, so have the Bot check get_agent and ask you before it switches the number to managed_by: "api", which turns the hosted agent off for that number. And the connector doesn't wake the Bot when a text arrives: for that, you still need the relay and webhook routine in the Grok Bot setup guide. Duet and dots would call the same tools, with the limits covered below.
Where does each agent fit next to a business number?
ChatGPT dots, Claude Duet and Grok Bot are the same kind of product: an agent that works for one person, keeps going between conversations on its own cloud computer, and reaches your other tools through connectors. OpenAI announced dots on September 29, 2026. Duet has been an Anthropic research preview since October 21, 2026. Grok Bot has been in early beta since August 11, 2026. All three are still changing, so every claim below is dated and sourced.
A business line is a different job. Customers text it and expect a quick answer. ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate in a server facility, with your brand name and photo (shown according to each recipient's settings). ZeroSettle is backed by Y Combinator and built by former Apple engineers. A new number starts out managed by the hosted AI agent (managed_by: "zerosettle"), which answers from a business context you write. Setting managed_by to "api" sends inbound texts to your webhook instead.
So the useful question for each agent isn't "can it do iMessage?" It's which of three roles it can play: answer texts itself, read the line and brief you, or send and manage things with your approval.
How do they compare side by side?
| ChatGPT dots | Claude Duet | Grok Bot | |
|---|---|---|---|
| Who can get it | Rolling out: Pro users 18+ outside the EEA, UK and Switzerland; Business Premium in supported regions; an Enterprise/Edu/Healthcare beta an admin turns on | US-only waitlist on Pro and Max (Anthropic's announcement, help center and product page also list Ultra); no Team or Enterprise yet | Premium, Super and Ultra on The X Subscription (not Plus or Free), and legacy Cursor Pro, Pro+, Ultra and self-serve Teams |
| Where you talk to it | ChatGPT (chat or call), Slack, Teams, owner-only texting (US Pro beta) | Its iOS and Android apps, or claude.ai | The Grok Bot app, X Chat (rolling out) and Slack |
| How it reaches ZeroSettle | A custom MCP plugin, added on ChatGPT web only | A custom connector on your Claude account | A custom MCP server by URL; for webhook routines, also an API key on its cloud computer for the REST API |
| Custom MCP by plan | Pro: read/fetch only. Business: full, added by admins and owners. Enterprise/Edu: full, by role. Free, Go, Plus: none (per a secondary source) | Any Claude plan can add one (Free: one); Duet itself is limited to the plans above | Any Bot can add one by URL |
| Does the agent use it? | Unconfirmed; implied by shared plugin permissions, but OpenAI doesn't say so for custom plugins | Live chat likely, not confirmed; scheduled runs reportedly can't | Yes; our setup guide is built on it |
| What wakes it | Scheduled and recurring tasks, self-scheduled wakeups, event monitoring where a service supports it | A morning brief, checks every few hours, tasks you give it | Routines: a schedule (5 minutes apart at least), an app event, an email, a webhook call |
| Reacts to a text within seconds | No documented way | No | Yes, through a webhook routine and a relay |
| Can send from your number | Not on Pro; maybe on Business or Enterprise (unverified) | Maybe, through send_imessage in chat (unverified) | Yes, send_imessage over MCP or POST /api/imessage/send |
| Approvals | Custom MCP writes confirmed by default; Custom Rules; Auto-review | Asks before sending, posting, paying, signing or deleting | Auto Review on by default; background cards expire after 30 minutes |
| Agent cost | First dot included; chat doesn't count toward usage limits, Work and Codex tasks do | Included in the preview; uses the plan's five-hour and weekly limits | Included with an eligible plan; every routine run spends usage |
The pattern: Grok Bot is the most open, because it has a command line and a webhook trigger, and you own the plumbing that comes with that. Duet is the most guarded and the least reachable from outside. A dot's abilities depend most on your ChatGPT plan.
How does each one connect to ZeroSettle?
All three use the same server, https://portal.zerosettle.io/mcp. You sign in with your phone number and an SMS code, and there's no token to paste. ZeroSettle's OAuth metadata advertises dynamic client registration, PKCE (S256) and refresh tokens. Since November 5, 2026, ZeroSettle's docs say the connector both sets up your line and texts from it: an agent on it can send with send_imessage to your own number for a test and to people who asked to hear from you, and read replies with list_messages, under the same rules as the REST API. A server still uses the REST API and webhooks.
ChatGPT dots
On ChatGPT web, open Plugins, select +, then Add custom MCP server. Enter the URL, choose OAuth, tick I understand and want to continue (ChatGPT labels custom servers "Elevated risk"), then Create as a plugin and install it. Setup is web only. ChatGPT offers OAuth or no authentication, so ZeroSettle's static API token can't be used. The plan decides everything else. OpenAI's help article says "Full MCP is only available to Business and Enterprise/Edu users, currently. Pro users can connect custom MCP servers with read/fetch permissions." On Pro that leaves the tools ZeroSettle marks read-only: get_line, read_docs, list_conversations, list_messages and get_agent. We read "read/fetch" as meaning those annotations; OpenAI doesn't spell that out. Assume the tool list is frozen once the plugin is added. Screens and details are in add the ZeroSettle plugin for ChatGPT Dots.
Claude Duet
Duet has no connector setup of its own. Anthropic's safety article says apps connected to your Claude account carry over, and switching one off in either place switches it off in both. On claude.ai, open Customize > Connectors and choose Add custom connector (Add > Custom > Web in some versions). Enter the URL, then pick OAuth with Register automatically. No Anthropic page about Duet mentions MCP or custom connectors. The one hands-on report, from Dan Shipper at Every after about two weeks of early access, says Duet's "scheduled runs can't reach my custom connectors." Walkthrough: the ZeroSettle connector for Claude Duet.
Grok Bot
Ask the Bot to add the MCP server by URL, and the ZeroSettle sign-in opens in your browser. From there it can text and read threads over MCP (send_imessage, list_messages). For the webhook routine, have it call create_api_key and save the key to a file on its cloud computer, so it can send and read over the REST API with a bearer token, the same way any backend does. Keep one thing in mind: Grok Bot's docs say that computer's files and credentials are visible to every Bot on your account. The full setup is in how to give your Grok Bot iMessage. The same server also works from Claude Code or Cursor.
What wakes each agent up?
This decides whether an agent can be on the line itself or only above it.
- Grok Bot: on every text. ZeroSettle POSTs each inbound text to your webhook, normally 1 to 2 seconds after it lands, signed with HMAC-SHA256. A Grok Bot webhook routine wants its own secret key as a bearer token, so a Cloudflare Worker of about 80 lines checks one and sends the other. Scheduled routines (at least 5 minutes apart) cover polling and daily jobs. See scheduled check-ins.
- ChatGPT dots: on a schedule. Scheduled and recurring tasks take a time zone and an end date. Event-triggered work runs only "when a connected service supports event monitoring." OpenAI's MCP Events work with dots, but ZeroSettle doesn't implement them, and we found no public API or webhook into a dot. One plausible but untested workaround: forward ZeroSettle webhooks to a Slack channel and ask the dot to watch it (Slack alerts with ChatGPT Dots).
- Claude Duet: on its own rhythm. A morning brief over email and calendar, checks "every few hours," and what you ask it. No webhook, event trigger or public API into Duet is documented. The path that relies only on documented behavior: email a digest of new texts to a Gmail inbox connected to Claude, and the brief will pick it up (customer texts in your Duet morning brief). That can be hours late.
Can any of them text your customers?
Not natively. Since October 28, 2026, a dot can text over iMessage or RCS through a provider OpenAI names as Linq, as a limited US Pro beta, but OpenAI says "Your dot can only text you, and you're the only one who can text your dot." Anthropic's help center says Duet "doesn't make phone calls or send text messages to other people." Grok Bot's phone tools cover Calendar, Contacts (read-only), Location and Alarms, plus Reminders and Home on iPhone, with nothing for texting.
Through a ZeroSettle number, the picture changes:
- Grok Bot: yes, to people who asked to hear from you. Ask it in chat and it calls
send_imessageover MCP. In the setup guide, the number is managed by the API and the Bot answers each inbound text through the REST API. If the hosted agent is still on, it answers replies to the Bot's texts too. - Claude Duet: possibly, by calling
send_imessagein live chat. Anthropic doesn't document whether its approval card covers custom tool calls. - ChatGPT dots: not on Pro, because
send_imessageis a write tool. On Business or Enterprise an admin-added plugin might allow it, but that a dot calls custom plugins at all is unconfirmed.
More on the difference between a dot's channel and a business number: dot texting vs a business iMessage number.
How do approvals differ?
- ChatGPT dots: custom MCP write actions need confirmation by default, and ChatGPT treats any tool without
readOnlyHintas a write. Custom Rules offer four behaviors: take action without asking, take action if pre-approved, ask before taking action, or hand off to you. Auto-review checks sensitive actions and can block them, and Custom Rules can't turn it off. OpenAI says approving one message isn't ongoing permission. Over texting, approvals arrive as links into ChatGPT. - Claude Duet: before it sends, posts, pays, signs or deletes, Duet shows the action, the destination, the content and every recipient, then waits. A check that runs outside the working model judges whether the action matches your intent. Whether this covers MCP tool calls is undocumented.
- Grok Bot: Auto Review is on by default and can hold an action for an approval card. A card from a background run, such as a webhook routine, expires after 30 minutes, so a reply waiting on you never goes out. Custom Rules can allow narrow actions automatically and ask first for the rest. When both match, "Ask first" wins. See approve before send.
Whichever you use, treat incoming texts as data, not instructions. A customer's message should never be able to tell your agent what to do.
What does each one cost?
The agents come with plans you may already have. A first dot is included in eligible ChatGPT plans. Chatting with it doesn't count toward ChatGPT usage limits, but the Work and Codex tasks it starts do, and OpenAI hasn't published terms for after the first month. Duet is included during the research preview and draws on the same five-hour and weekly limits as the rest of Claude, background work included. Its App Store listing sells usage-credit packs (20 for $20, 50 for $45, 250 for $200). Grok Bot comes with eligible plans, and every routine run spends usage. We found no price per run.
The ZeroSettle side is the same whichever agent you use:
| Plan | Price | New contacts a day | Free agent credits |
|---|---|---|---|
| Pro | $49/month, one number, self-serve, 30-day money-back guarantee | 5 per number | 500, once |
| Growth | From $199/month for one dedicated number; multi-number terms are agreed in an operator-priced invite | 25+ new outbound contacts a day for the starting number | 1,000, once |
| Enterprise | Custom pricing through sales, for high volume and compliance needs | Set with sales | Set with sales |
Credits pay for the hosted agent: 1 for each reply it sends. A number managed by the API, as with Grok Bot, uses none for texts, only for videos (1 credit per 3 MB). Details: ZeroSettle pricing and which plan is right for you.
Which one should you pick for each job?
| The job | Pick | Why |
|---|---|---|
| Answer anyone who texts your number, at any hour | ZeroSettle's hosted agent (or your server) | Built for strangers and quick answers; none of the three is. See the hosted agent |
| Answer you, your team or a few clients, using your calendar and inbox | Grok Bot | The only real-time trigger, and the relay's allowlists keep strangers out |
| A morning summary of the line | A dot on Pro, or a Grok Bot scheduled routine | Read-only tools fit Pro's limit, if a dot can call the plugin (unconfirmed); Grok Bot's path is documented end to end. With Duet, use the email digest |
| Alerts to your own phone when a thread needs you | A dot (owner-only texting, US Pro beta) or Grok Bot | The dot's channel exists for exactly this, though a dot reading the line is unconfirmed; Grok Bot can text you from the number |
| Review threads and draft replies for your OK | Claude Duet, after a connector test | Built to show recipients and content and wait; see review and draft replies |
| Send approved one-off texts to customers who opted in | Grok Bot; Duet if your test passes | A dot can't on Pro; on Business or Enterprise it's unverified |
| Keep the hosted agent's prices and policies current | Grok Bot, or Duet after a test | Both can call set_agent with your OK. On Pro a dot could at most read get_agent (unconfirmed) and draft, and you apply it in the console |
| A team workspace | A dot on Business Premium or Enterprise | Duet has no Team or Enterprise yet; on Business, only admins and owners add the plugin |
What isn't confirmed, and how do you test it?
As of November 4, 2026, these are open: whether a dot calls a custom MCP plugin at all; whether "read/fetch" on Pro maps to ZeroSettle's read-only annotations; whether Duet's chat reaches custom connectors, and whether its approval card covers them; and what a Grok Bot texting run costs in usage. The same first test works in all three and changes nothing a customer sees:
Using the ZeroSettle tools, call get_line and tell me my number, whether it is
active, and who manages it (managed_by). Then call list_conversations and list the
three most recent conversations by handle and time. Read only: don't send anything,
don't change any settings.
If the agent says it can't see ZeroSettle, it isn't reaching the plugin or connector. Fall back to the documented paths: the Slack pattern for a dot, the email digest for Duet. If the read works and you want writes, send one test to your own number before anyone else, and watch for the confirmation step:
Ask me first, then use send_imessage to text "Test from my agent" to
+1 555-0142 (my own number). Show me the recipient and text before it goes.
Replace the fictional number with yours. For Grok Bot, compare your usage before and after a day of test texts, and time a few replies from your own phone before you put anyone else on it.
Which rules apply whichever agent you pick?
ZeroSettle's limits bind the number, not the agent, and texts sent with the connector's send_imessage follow the same rules as POST /api/imessage/send; a limit comes back as HTTP 429. Pro opens 5 new contacts a day per number, and Growth includes 25+ new outbound contacts a day for the starting number. People who text first and ongoing conversations don't count. Each number handles up to 10,000 messages a day with known contacts and sends at most 2 messages to someone who hasn't replied, with no attachments before they reply. A reply whose whole message or first sentence is STOP or a listed opt-out phrase (such as "unsubscribe" or "opt out") opts the sender out of every number on the account. Above all, text only people who asked to hear from you: cold messaging gets a line suspended, and the TCPA applies. Read iMessage and TCPA consent before any agent texts first.
Frequently asked questions
Which of the three can answer my customers' iMessages in real time?
Only Grok Bot has a documented way: a webhook routine starts a run for each inbound text that a small relay forwards from ZeroSettle, and the Bot replies through ZeroSettle's API. No webhook or public trigger into a ChatGPT dot or Claude Duet is documented. For a number strangers text, ZeroSettle's hosted AI agent or your own server is the better fit.
Can a ChatGPT dot send iMessages from my ZeroSettle number on ChatGPT Pro?
Not as of November 4, 2026. OpenAI says Pro users can connect custom MCP servers with read/fetch permissions only, and send_imessage is a write tool. Full MCP, including write tools, is for Business, where only admins and owners add the plugin, and Enterprise/Edu, where admins grant that right by role. Whether a dot can call a custom MCP plugin at all isn't confirmed by OpenAI.
Does Claude Duet work with the ZeroSettle connector?
Probably in live chat, but Anthropic hasn't confirmed it. Apps connected to your Claude account carry over to Duet, and no source says custom connectors fail in chat. The one hands-on review says Duet's scheduled runs can't reach custom connectors, so don't build its morning brief on ZeroSettle calls. Test with a read-only call such as get_line first.
My dot already texts me. Do I still need a ZeroSettle number?
For customers, yes. A dot's texting channel is a US Pro beta that only talks to you: OpenAI says your dot can only text you, and you're the only one who can text it. A ZeroSettle number is your business's own iMessage number that anyone you have consent from can text, answered by the hosted AI agent, your server or Grok Bot.
What does it cost to run one of these agents with ZeroSettle?
The ZeroSettle side is the same for all three: Pro is $49 a month for one dedicated iMessage number with a 30-day money-back guarantee, Growth starts at $199/month for one dedicated number, with 25+ new outbound contacts a day (multi-number Growth terms are agreed in an operator-priced invite), and Enterprise is custom pricing through sales. The agent comes with its own plan: a first dot is included in eligible ChatGPT plans, Duet is included in eligible Claude plans during the preview and uses the plan's limits, and Grok Bot comes with eligible plans, with each routine run spending usage.
Sources
- Introducing dots, OpenAI (snapshot October 26, 2026): cloud computer, plugins, channels. Checked November 4, 2026.
- Getting started with your dot and Dots privacy, security, and safety FAQs, OpenAI Help Center (snapshots October 26, 2026): eligibility, texting beta, Custom Rules, Auto-review, shared plugin permissions. Checked November 4, 2026.
- ChatGPT release notes, OpenAI (snapshot November 3, 2026): September 29 launch, October 28 texting. Checked November 4, 2026.
- Meet dots, Message your dot and Tasks and memory, OpenAI: supported plugins, owner-only texting, scheduled and event-triggered work. Checked November 4, 2026.
- Connecting custom MCP servers in ChatGPT, OpenAI Help Center (snapshot October 19, 2026): plan limits, web only, frozen tool snapshots. Checked November 4, 2026.
- Add custom MCP server and MCP Events, OpenAI developer docs. Checked November 4, 2026.
- ChatGPT MCP: plans, setup and what breaks in 2026, Peliqan, November 2, 2026 (secondary source): Free, Go and Plus. Checked November 4, 2026.
- Introducing Claude Duet and the Claude Duet product page, Anthropic: plans, platforms, brief and check-ins. Checked November 4, 2026.
- Get started with Claude Duet, Claude Help Center: no texts to other people, connectors, usage limits. Checked November 4, 2026.
- Claude Duet safety, privacy, and security, Anthropic: approvals, connected apps carrying over. Checked November 4, 2026.
- Add a connector that isn't in the directory, Anthropic: custom connector setup and authentication. Checked November 4, 2026.
- Claude Duet on the App Store: usage-credit packs. Checked November 4, 2026.
- Vibe Check: Duet, Dan Shipper, Every, October 21, 2026: scheduled runs and custom connectors. Checked November 4, 2026.
- Computer and apps, Skills and routines, Approvals, security and privacy, Mobile, Chat and collaboration and FAQ, Grok Bot docs: plans, X Chat and Slack, routines, approvals, phone tools. Checked November 4, 2026.
- Grok Bot early beta launch, GIGAZINE, August 12, 2026: launch date and launch plans. Checked November 4, 2026.
- ZeroSettle OAuth metadata, plus MCP, AI agent, Webhooks, step by step and Errors, limits, and compliance, ZeroSettle iMessage API docs. Checked November 5, 2026.
Changelog
- ZeroSettle's connector now texts from the line: added the fastest way to have Grok Bot text with
send_imessageand read replies withlist_messages, and updated the connector, texting and rules sections. - First published.