Texting an outside contact
Sometimes the person you need on a conversation isn't on the project and doesn't have a ProjectFlowLive login — a subcontractor, a supplier, an inspector from another office. ProjectFlowLive lets you bring them into a conversation by text message, without ever typing their phone number yourself.
How it works, in one line
You create the conversation and get a short join code. You send that code to your contact. They text it to our number, which is how they join — so the request to be texted comes from them, from their own phone.
Why they text first (and you never type their number)
This is deliberate, and it's the whole point of the design.
When a person texts a code to our number, they have supplied their own number and they have asked to receive the messages. That is their consent, in their own words, on the record. If instead the platform let you type someone's number and start texting them, the platform would be sending texts to a number the recipient never handed over — which is exactly the thing carriers, and the law, treat as unsolicited messaging. So the platform doesn't offer it. There is no field for the other person's number anywhere in this flow, on purpose.
Step by step
- In Communications, tap New Conversation.
- Choose the Text an outside contact card.
- Give the conversation a name if you like (optional), then tap Create Conversation. You can add teammates who have a login here too — that's a separate, optional step, and it is not how your outside contact joins.
- The invite panel opens. Tap Generate a join code.
- Send the code to your contact. The quickest way is Open in Messages, which opens your own texting app with the message pre-filled to our number — but read the next line first: that pre-fill is for you to send to your contact, or you can tap Copy link / Copy instructions and send it however you like (text, email, in person).
- Your contact texts the code to our number. As soon as they do, they appear in the conversation and their status flips from Awaiting join to Active.
Text message or WhatsApp
Before you generate the code, choose how your contact joins: Text message or WhatsApp. The code works only on the one you chose.
- Text message — they text the code to our text number, as above.
- WhatsApp — tap Open in WhatsApp (or Copy link) and send it to them.
It opens a WhatsApp chat with ProjectFlowLive with
JOINand the code already typed; they tap send. They use their normal WhatsApp — no account with us, no special app.
Either way, everything they write lands in the conversation, and your team's messages reach them on the same channel they joined by.
Every message says which project it's from
All of your conversations reach outside contacts from the same ProjectFlowLive
number, so each message we send them starts with who wrote it and which project
and conversation it's from — for example
[Dana · JT211A11 — Aggregate chat] Trucks arrive at 7.
When someone is in more than one of your conversations
A subcontractor might be on two of your projects. Their replies come to the same number, so ProjectFlowLive decides where each reply belongs — and it never guesses:
- On WhatsApp, if they swipe-reply to one of our messages, the reply goes to the conversation that message came from.
- If they start with the number of the project (
2: trucks are here), it goes there. - Otherwise ProjectFlowLive asks them, "Which project is this for?", with a numbered list. They answer with the number and their message is filed there.
Each message in the conversation keeps a note of how it was placed (their only conversation, the message they quoted, or the number they chose), so the record shows why it is where it is.
What your invited contact will be able to see
Be deliberate about who you send a code to. Anyone who joins with a code can read that conversation and its full history — every message already in the thread, not just messages sent after they join. Only share a code with someone you mean to let in.
One code, one person. A join code is single-use — the first person to text it in claims it, and it stops working. Send the same code to three people and one joins while the other two get nothing; generate a separate code for each person you want to add. Codes also expire on their own after 7 days.
How to tell when they've joined
Open the invite panel on the conversation. Everyone you've invited is listed with a status:
- Awaiting join — a code was created; they haven't texted in yet.
- Active — they've texted the code in and are now in the conversation.
- Opted out — they've been removed (by them replying STOP, or by your team).
- Blocked — permanently stopped.
STOP and HELP
Your contact controls their own participation from their phone at any time:
- Replying STOP removes them immediately — no further messages reach them, on every conversation they joined through that number and channel. This is theirs to use and always works.
- Replying START turns messages back on — STOP is not final. If they opted out by accident (or you removed the wrong person), they can rejoin by replying START.
- Replying HELP returns a short message explaining who is texting them and how to stop.
Removing someone / revoking access
From the invite panel, the tap the opt-out control next to a participant to remove them (their status becomes Opted out). Their record stays on the conversation — it's marked opted out, never deleted, so the history of who was on the thread and when is preserved. To stop an unused code from being redeemed, generate a New code; each code is single-use and expires on its own after 7 days.
Common questions
How do I text someone who isn't on the project? Use New Conversation → Text an outside contact, generate a join code, and send it to them. They text it in to join. See the steps above.
Can I just add their phone number? No — and that's intentional. There is no field for the other person's number in this flow. They join by texting the join code to us from their own phone, which is what records their consent to be messaged. The Add teammates box on the create screen is only for people who already have a ProjectFlowLive login; putting your outside contact there won't work and isn't how they get added.
What can the person I invited see? The full conversation, including everything said before they joined. Share a code only with someone you intend to give that access.
How do I stop texting someone? They can reply STOP from their phone at any time. You can also open the invite panel and opt them out. Either way messaging to them stops immediately. It isn't final: replying START turns messages back on, so an accidental STOP (or the wrong person removed) can be undone.