Use cases

One iMessage Group per Job: Homeowner, Project Manager and Crew

For a multi-day painting, remodeling or roofing job, start one iMessage group from your business number with the homeowner(s), the project manager and the crew lead. Use it for a daily progress update with photos, color confirmations, schedule changes, change orders the homeowner approves in writing, the final walkthrough and the payment link. Keep pricing disputes, complaints and access codes in 1:1 texts. With ZeroSettle, the group lives on your company's number rather than on a crew member's personal phone, and an optional AI assistant can answer “what time are you here tomorrow?” from what the project manager posted.

Key takeaways

  • One group per job, started by the company number: homeowner(s), project manager, crew lead. Name it by client and address so nobody posts in the wrong one.
  • Everything that changes the job gets a written “Approved”: colors, added work, price and schedule changes.
  • Crew rules matter more than the tool: one update a day, no prices from the crew, no promises, and never send “Stop” as a message on its own.
  • Limits to know: up to 31 people per group, each member new to the number must be on iMessage and counts as one new contact, and a STOP from any member blocks every send into the group.
  • Records: the thread stays on your account, but group messages are not logged in Close or HubSpot.

Why run one iMessage group per job?

A job group puts the homeowner, the person running the job and the person on site in one thread, so nobody relays messages and every decision is written down once. Without it, the homeowner texts the estimator, who texts the project manager, who calls the crew lead, and details drop at each hop: the hallway was supposed to be the lighter white.

  • The homeowner sees progress without asking. A photo and three lines each afternoon head off the “how's it going?” calls.
  • Decisions are in writing. A color or an added closet approved in the thread is easier to point to at the walkthrough than a driveway conversation.
  • The thread belongs to the company. When the group is started from your business number on ZeroSettle, every message in it is stored on your account. If a crew lead leaves, the history of the job doesn't leave with their phone.

It fits any job that runs more than a day: painting, remodeling, roofing, flooring, decks. One-visit service calls are better served by 1:1 on-the-way texts.

Who should be in the job group?

Keep the group to the people who make or carry out decisions on this job: the homeowner(s), the project manager, the crew lead and your business number. Every extra person adds noise.

Who to add to a job group
PersonAdd?Why
Homeowner who signedYesApproves colors, changes and the final walkthrough.
Second homeowner (spouse, partner)Yes, if they make decisions or are home during workAvoids a surprise color change on day three.
Project manager or ownerYesThe only person who agrees to price, scope or schedule changes.
Crew leadYesPosts the daily update and photos, answers on-site questions.
Every painter on the crewNoToo many voices; the crew lead speaks for the crew. Coordinate them in your internal crew thread.
Subcontractor (drywall, electrician)Only for the days they are on siteAdd them for a specific handoff, then remove them.

An iMessage group holds up to 31 people, but a job group rarely needs more than five or six.

Two caveats. Members of an iMessage group see each other's phone numbers or email addresses, so the homeowner will see your crew lead's number. And each member new to your number must be on iMessage: if one isn't, the group isn't started (422 not_on_imessage) and nothing is sent, so keep a homeowner on Android on calls and email.

How do you start and name the group?

Start the group from your business number at the kickoff, once the homeowner has agreed to a job group, and name it by client, address and scope. A name such as “Hale | 14 Birch Ln | Interior” tells a crew lead with three active jobs exactly where they are posting. Names can be up to 60 characters.

There are three ways to start it:

  1. Ask your AI assistant: with ZeroSettle's MCP connector in Claude, it uses the create_group_chat tool.
  2. Have the project manager start it on their iPhone and add the business number. Groups your number is added to work the same way as ones it starts, but your account only has the messages from after the number joined, so add it before the first update.
  3. Start it from your own software when a job is scheduled:
bash
curl -s -X POST https://portal.zerosettle.io/api/imessage/groups \
  -H "Authorization: Bearer $ZEROSETTLE_TOKEN" -H "Content-Type: application/json" \
  -d '{"to": ["+15035550142", "+15035550178", "+15035550123", "+15035550191"],
       "name": "Hale | 14 Birch Ln | Interior",
       "text": "Hi Dana and Chris, this is Brightline Painting. This group is for your interior job at 14 Birch Ln, with Priya (project manager) and Marco (crew lead). You will get a photo update here each afternoon, and any color or scope change gets confirmed here in writing."}'

The response carries the group's chat_id; store it on the job, because it never changes even when the group is renamed or members change. Rarely the answer is "status": "group_unconfirmed" with "chat": null: the message went out, so don't send it again, or you'll start a second group. The group chats docs cover the full request and response.

New contacts. Each member your number has never exchanged a message with counts as one new contact for the day when the group starts. A homeowner who texted you for the estimate is already known. Your project manager and crew lead count once, the first time, and are known on every later job. Pro allows 5 new contacts a day per number, so a typical new job group uses zero to two; a company kicking off many jobs a day with new subs belongs on Growth (50 a day per number). Growth also caps new contacts at 3 per 15 minutes, so start a group with no more than three people new to the number at once. If the members don't all fit, the request is refused with 429 new_contact_limit and nothing is sent.

Consent. Everyone in the group must have agreed to hear from you about this job. Ask the homeowner at kickoff (“OK if we set up a group text with Priya and Marco?”), and never use a job group for promotions. See our consent guide (not legal advice).

Ask the homeowner to save the number

An iPhone shows links from an unknown sender as plain text that can't be tapped. Links from your number open normally once the recipient has replied to it or saved it as a contact, so ask the homeowner to save it as “Brightline Painting” at kickoff. That keeps the payment link at the end tappable. See why first-message links aren't tappable.

What goes in the group from kickoff to payment?

Post the things the homeowner needs to see or approve, in a predictable rhythm: the plan, a daily update with photos, color and scope confirmations, schedule changes, the punch list and the payment link.

  • Kickoff: who handles what, start date, crew hours, what to do before day one (clear the rooms, take down art).
  • Daily update (crew lead): done, next, tomorrow's arrival time, anything the homeowner must do. Two or three photos, not twenty.
  • Color confirmations (project manager): room, surface, color name and code, sheen. “Hallway walls: Alabaster SW 7008, eggshell. Reply Approved.” Choosing between two whites? A poll works in a group, and every member can vote (voting needs iOS 26 or later).
  • Schedule changes (project manager, as soon as known): rain, a late material order. Give the new date, not just the delay.
  • Change orders (project manager only): what is added, the price, the effect on the finish date, and “Reply Approved to add it.” Homeowners can long-press the message and reply inline, which threads their approval under the exact change order. If your contract requires a signed change order form, send that too; the group message is the record that it was agreed, not a replacement for your paperwork.
  • Final walkthrough: the punch list as one numbered message, a photo of each fix, then “All 6 items done. Anything else?”
  • Payment: the final total and the payment link, from the business number, once the homeowner confirms the walkthrough.

Here is what the middle of a job looks like:

  1. Mon 4:38 PM
  2. Marco: Day 1 done. Living room and hall patched, sanded and primed. Furniture is in the middle of the room under plastic. Back at 8 tomorrow.
  3. Marco sent 3 photos
  4. Dana: Looks great! Could the hallway go a little lighter than Pure White? Like the swatch taped by the stairs?
  5. Priya: Yes. That swatch is Alabaster SW 7008. To confirm: hallway walls in Alabaster, eggshell, instead of Pure White. Same price. Reply Approved and Marco switches tomorrow.
  6. Dana: Approved
  7. Tue 4:15 PM
  8. Priya: Plan for Wed: kitchen ceiling and hall trim, crew on site 8:00 to 4:30. Walkthrough still Thursday 3 PM.
  9. Tue 9:12 PM
  10. Chris: what time are you guys here tomorrow? need to move my car
  11. Brightline's number: Hi Chris, this is Brightline's assistant. Marco's crew arrives at 8:00 AM tomorrow, per Priya's plan above. A clear driveway by 7:45 helps them unload.
  12. Wed 10:05 AM
  13. Priya: Change order 1: paint both hall closet interiors (walls and shelves), $340, adds half a day. Walkthrough moves from Thursday 3 PM to Friday 10 AM. Reply Approved to add it.
  14. Dana: Approved
  15. Priya: Added, thanks. I'll email the change order form tonight.
Illustrative example with a fictional company, Brightline Painting (brightlinepainting.example). The view is the company's: the blue bubble is its ZeroSettle number, here answered by the optional AI assistant; gray bubbles are members writing from their own iPhones. The color change and the change order each get an explicit “Approved”.

In a full painting workflow on iMessage, the estimate is 1:1, the job runs in the group, and the review request goes back to 1:1.

What rules should the crew follow?

The crew lead posts one clear update a day, answers on-site questions, and sends anything about money, scope or dates to the project manager. Put the rules in writing at onboarding; the homeowner reads every message.

House rules for crew leads in job groups
DoDon't
Post one update by the end of each work day: done, next, arrival time tomorrow, two or three photos.Post every small step, or go silent on a day the crew was on site.
Answer on-site questions: which room is next, when a room will be usable again, where the crew parks.Quote prices, agree to extra work or promise dates. “Priya will confirm that here” is the answer.
Flag problems early and factually: “Found water damage behind the vanity; Priya will call you this afternoon.”Complain about the homeowner, the materials or another crew member. Assume every message will be read twice.
Write “Hold off” or “Wait” when something must pause.Send a message that is just “Stop” or starts with the sentence “Stop.”: it can be read as an opt-out (see below).
Keep posts between 7 AM and 8 PM unless something is urgent (a leak, a lockout).Post photos from the truck at 11 PM.
Use the internal crew thread for crew logistics.Ask the homeowner to settle crew scheduling or pass messages between painters.

Why the “Stop” rule. ZeroSettle enforces STOP on every number of your account. A message whose whole text, or first sentence, is “stop” or a phrase like “don't text me” is treated as an opt-out, and the business number then can't send into any group that member is in (403 recipient_opted_out) until they are removed (POST /api/imessage/groups/update with remove) or text START. A crew lead who sent it by mistake can text START to the number. If a homeowner means it, remove them from the group and call or email to ask how they'd like updates instead. More in how STOP works.

When should a topic move to a 1:1 text?

Move a topic out of the group when it involves money in dispute, a complaint, private information, or only two people. The group is for things everyone on the job should see.

Where each conversation belongs
TopicJob group1:1 with the homeownerInternal crew thread
Daily progress and photosYes
Colors, scope and schedule changesYes, with “Approved”
A complaint about quality or a crew memberAcknowledge only (“Priya will call you”)Yes, project manager or owner
Payment problems, deposits, financingYes
Lockbox, garage or alarm codesNeverTo the project manager, who passes it to the crew lead directly
Crew assignments and materials runsYes
Review request and referrals after the jobYes, a day or two after payment

Your number can text any member 1:1. Members of a group your number started, or added them to, are known contacts, so a 1:1 text to them doesn't count as a new one. After payment, the 1:1 thread is also where review requests and referral asks belong, never the job group.

Can an AI assistant answer the group's logistics questions?

Yes. If your number is Managed by AI Agent, ZeroSettle's hosted agent answers inside the group, from the group's recent messages (labeled by sender) and the details you give it. Per the AI agent docs, it answers only when a message is meant for it or asks something it can help with, keeps it short, and stays silent when people are talking to each other.

Its business context covers every conversation on the number, so add a section for job groups:

text
JOB GROUPS
Groups named "Client | Address | Scope" are active jobs. In them you are
Brightline's assistant. Answer logistics only, from the group's messages
and the details below:
- Crews arrive between 7:45 and 8:15 AM, Monday to Friday, unless the
  project manager posted a different time in the group.
- Homeowners keep pets out of the rooms being painted, and clear a parking
  spot in the driveway for the van.
- The crew needs a utility sink or outdoor spigot for cleanup.
- Anyone with a health or safety question: the project manager answers.
Never quote prices, approve or discuss change orders, promise finish dates,
or answer complaints. For those say "Priya will answer that here" (use the
project manager's name from the group). If the project manager hasn't
posted tomorrow's plan, say so and that they will confirm.

What to know before turning it on:

  • It is either-or per number. With the agent on, the console's composer is off and Close or HubSpot sends are refused (403 managed_by_zerosettle). Your people still post from their own iPhones, and the office can post as the business number through the API or MCP. If your office types into job groups from the console, keep the number Managed by API.
  • It doesn't start anything in a group. Its triggers (follow-ups, daily texts) never fire into a group, so the daily update stays the crew lead's job, or your own code's (POST /api/imessage/send with the group's chat_id).
  • Live data needs a connector. To answer from your real schedule, connect a read-only MCP server for your scheduling tool (Messaging → Connectors).
  • It costs a credit per text it sends. Texts and photos members send from their own phones use no credits. Videos do, whoever manages the number: 1 credit per 3 MB of each video the number sends or (on accounts with videos enabled) receives, which is one more reason crew leads should post photos rather than video walk-throughs.

For the design side of an assistant that shares a thread with people, see when an AI should speak in a group chat; to build your own with your own model, see how to build an AI assistant for iMessage group chats.

Where does the job record live?

The job record lives on your ZeroSettle account: every message the number receives or sends in the group is stored, readable in the console or with the API, and stays readable after your number leaves the group. It doesn't reach your CRM on its own.

  • Close and HubSpot: group messages are not logged in either; 1:1 conversations still are. Note approved change orders and the walkthrough sign-off on the deal yourself.
  • Reading the thread: GET /api/imessage/messages?chat_id=… returns one group's messages, each inbound one with the member who sent it, ready to export to the job file (see the group chat API guide).
  • Webhooks: on a number Managed by API, group messages arrive at your webhook as message.received with a chat_id (renames and members joining or leaving arrive as group.event), so your own code can log them anywhere. On a number Managed by AI Agent, the webhook isn't called.

Closing the job. Once the job is paid and your warranty touch-up window has passed, have the business number leave the group (POST /api/imessage/groups/leave, or update_group_chat with leave: true over MCP). The stored messages stay readable, and the homeowner can still text your number 1:1. If you reach past customers later, do it 1:1 and only with people who agreed.

What does it cost?

Group chats are on for every ZeroSettle number at no extra charge; you pay for the number, and credits pay only for the hosted AI assistant's texts and for videos.

ZeroSettle plans, November 2026
PlanPriceNew contactsFree credits (once)
Pro$49/month for one dedicated number5 a day500
Growth$199/month per number (upgrade in the console), or $599/month for 3 numbers plus $199 per extra number from a Growth link; includes team members50 a day per number (and 3 per 15 minutes)1,000
EnterpriseCustom pricing through sales, for high volume and compliance needsSet with salesSet with sales

Each number allows 10,000 messages a day, sent and received, with known contacts. People who text you first never count as new contacts. Free credits never refill; packs are 1,000 for $50 or 5,000 for $200 and never expire. The subscription has a 30-day money-back guarantee.

An owner-operator fits Pro; several crews with office staff in the console fit Growth. For the bigger picture, read how to grow a home service business with iMessage, or book a demo to talk about Enterprise.

Frequently asked questions

Can a homeowner with an Android phone be in the job group?

No. Each member new to your number must be on iMessage, or starting the group is refused with 422 not_on_imessage and nothing is sent. Keep that homeowner on your usual phone calls and email, and use the group for the people who are on iMessage.

Will the homeowner see my crew lead's phone number?

Yes. As in any iMessage group, members see each other's phone numbers or email addresses. If your crew lead would rather not share a personal number, give them a work iPhone or Apple ID for job groups.

Does every job group count against the new-contact limit?

Only members the number has never exchanged a message with. A homeowner who texted you for the estimate is already known, and your project manager and crew lead count once, the first time, and are known on every job after that. Pro allows 5 new contacts a day per number and Growth 50.

Do job group messages show up in Close or HubSpot?

No. Group messages are not logged in Close or HubSpot. Your 1:1 conversations still log as usual, so record approved change orders and the final walkthrough on the deal yourself, or read the group with GET /api/imessage/messages?chat_id=….

What happens if someone in the group texts STOP?

That person is opted out on every number on your account, and the number can't send into any group they are in until they are removed from it or text START. People in the group can still message each other from their own phones.

Can the AI assistant post the daily update for us?

No. The hosted agent's triggers, such as follow-ups and daily texts, never fire into a group, and it answers only when a message is meant for it. Daily updates come from your crew lead or project manager, or from your own code with POST /api/imessage/send and the group's chat_id.

Sources

  1. ZeroSettle iMessage API docs: Group chats (start a group, send to a group, read groups, rename, add, remove, leave, limits and compliance, not covered). Checked November 2, 2026.
  2. ZeroSettle iMessage API docs: AI agent (Managed by AI Agent, in group chats, triggers, connectors, credits) and AI agent in the console. Checked November 2, 2026.
  3. ZeroSettle iMessage API docs: Errors, limits, and compliance (limits, consent, STOP is enforced). Checked November 2, 2026.
  4. ZeroSettle iMessage API docs: CRM integrations and Send a message (links in a first message, polls). Checked November 2, 2026.
  5. ZeroSettle iMessage API docs: Your iMessage number (pricing). Checked November 2, 2026.

Written by the ZeroSettle team. ZeroSettle gives your business a dedicated phone number on real iMessage, running on Apple hardware we operate for you in a server facility, with a REST API, signed webhooks, an MCP connector, CRM integrations and a hosted AI agent.

Product facts on this page come from the ZeroSettle iMessage API docs as of November 2, 2026. Brightline Painting and the people in the example are fictional, and this page is not legal advice.

Run every job from your company's iMessage number

ZeroSettle gives your business its own number on real iMessage, running on Apple hardware we operate for you in a server facility. Start job groups, keep the thread on your account, and add an AI assistant when you want one.

Pro is $49 a month for one number with a 30-day money-back guarantee. Growth is $199 a month per number, or $599 a month for 3 from a Growth link. Enterprise pricing is custom, for high volume and compliance needs.