Drawing 1 · Interactive
From invite sent to member: where do people drop?
13.3% drop-off · 16 people lost(biggest leak)
9.6% drop-off · 10 people lost
6.4% drop-off · 6 people lost
5.7% drop-off · 5 people lost
Stage 5 of 5
Still in the group at handover
83 people
94.3% of the previous stage made it here (5.7% drop-off, 5 people lost). That is 69.2% of the top.
Leaves arrive as group_participants_remove, initiated by the participant.
- Top to bottom
- 69.2%
- Biggest leak
- Invite delivered → Invite read (13.3%)
Stage 5 of 5: Still in the group at handover, 83 people. 94.3% of the previous stage made it here (5.7% drop-off, 5 people lost). That is 69.2% of the top. Leaves arrive as group_participants_remove, initiated by the participant.
What is a group invite link?
A group invite link is the https://chat.whatsapp.com/… link that lets a WhatsApp user join a group a business created through the Groups API — the membership mechanism behind WhatsApp groups for business on the Cloud API. A business cannot add people to such a group directly, so the invite link is the only way in: the business sends it to the people it wants, in a chat message or a group invite link template, and each person decides whether to tap and join.
The link belongs to the group. It is included in the group_lifecycle_update webhook that confirms the group was created, and can be fetched at any time with GET /{GROUP_ID}/invite_link. POST /{GROUP_ID}/invite_link resets it, issuing a new link and invalidating every earlier one — the way to close a link that has been forwarded too widely. People already in the group stay in it, and participants the business removes cannot rejoin through an invite link.
A group can admit people instantly or on approval. With join_approval_mode: auto_approve, the default, a tap adds the person and fires a group_participants_update webhook of type group_participants_add with reason: invite_link. With approval_required, a tap creates a join request — webhook type group_join_request_created, with a join_request_id and the requester's wa_id — which the business lists with GET /{GROUP_ID}/join_requests, approves with POST or rejects with DELETE. Groups made this way hold up to 8 participants, so an invite link suits a family, a project team or a class; for one-to-many reach, broadcast list vs group explains the alternatives.
Key takeaways
- A group invite link is the chat.whatsapp.com URL that lets people join a group your business created with the Groups API.
- Businesses cannot add participants directly; people join only by opening an invite link they were sent.
- Fetch the link with
GET /{GROUP_ID}/invite_link; a POST to the same path resets it and invalidates every earlier link. - With
join_approval_mode: approval_required, each tap becomes a join request you approve or reject through the API. - Groups API groups are small, up to 8 participants, and need an Official Business Account on the Cloud API.
Specifications
A group invite link: key facts and limits
- Link format
- https://chat.whatsapp.com/…
- Get the link
- GET /{GROUP_ID}/invite_link
- Reset the link
- POST /{GROUP_ID}/invite_link (old links die)
- Join modes
- auto_approve (default) or approval_required
- Participants per group
- Up to 8
- Groups per business number
- Up to 10,000
- Eligibility
- Official Business Account; not Business app numbers
- Join webhooks
- group_participants_update
Implementation
A group invite link in code
# Create a group that needs approval to joincurl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/groups" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"messaging_product": "whatsapp","subject": "Flat 1204 · Interiors","description": "Project updates for Flat 1204, Kondapur","join_approval_mode": "approval_required"}'# Get the current invite linkcurl "https://graph.facebook.com/v26.0/{GROUP_ID}/invite_link" \-H "Authorization: Bearer {ACCESS_TOKEN}"# → "invite_link": "https://chat.whatsapp.com/{INVITE_CODE}"# Reset it: every earlier link stops workingcurl -X POST "https://graph.facebook.com/v26.0/{GROUP_ID}/invite_link" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{ "messaging_product": "whatsapp" }'# Approve pending join requests (DELETE with the same body rejects them)curl -X POST "https://graph.facebook.com/v26.0/{GROUP_ID}/join_requests" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{ "messaging_product": "whatsapp", "join_requests": ["{JOIN_REQUEST_ID}"] }'
Operating sequence
How does a group invite link work?
Create the group
POST to
/{PHONE_NUMBER_ID}/groupswith asubject(up to 128 characters), an optionaldescription(up to 2,048) andjoin_approval_mode. The business number becomes the group's creator and admin.Get the link
Read
invite_linkfrom thegroup_lifecycle_updatewebhook, or fetch it withGET /{GROUP_ID}/invite_link. It always starts withhttps://chat.whatsapp.com/.Send it to the right people
Share it one to one with the people who should join, in a chat message or a group invite link template that takes the group's ID. Never post it publicly.
Handle joins
Auto-approve groups report each join as
group_participants_add. Approval groups reportgroup_join_request_created: check thewa_idagainst your invite list, then approve or reject through/{GROUP_ID}/join_requests.Reset when it leaks
If the link reaches people it should not,
POST /{GROUP_ID}/invite_linkissues a new one and kills all old links. Remove anyone unwanted withDELETE /{GROUP_ID}/participants.
Failure modes
Common mistakes with a group invite link
Posting the link publicly
Anyone with the link can join an auto-approve group. Share it one to one, or create the group with
approval_requiredso every tap becomes a request you check.Approving requests blindly
A join request carries the requester's
wa_id. Match it against the people you invited before approving, and reject numbers nobody can vouch for.Never resetting the link
Forwarded links keep working until reset. Reset after a project ends or a link leaks — and remember a reset also breaks the link for invitees who have not joined yet.
Looking for an add-participant call
The Groups API cannot add people directly. Design the flow around sending links and handling the joins and requests they produce.
Using a group as a broadcast
With at most 8 participants and no interactive messages, a Groups API group is for small, shared conversations. Use templates, broadcasts or Channels for one-to-many reach.
Design intent
Why does a group invite link matter?
An invite link is where a business group's privacy is won or lost. People join by their own tap, which makes membership opt-in by design, but a link forwarded beyond the intended family or batch can let strangers into a conversation full of personal or project details. Approval mode, timely resets and a disciplined join-request workflow keep a group to the people it was meant for — and the join webhooks leave a record of who came in, when and how.
Example: One group per home project in Hyderabad
A Hyderabad interior-design studio opens a WhatsApp group for each home project: the homeowners, a relative or two, the designer and the site supervisor. Every group is created with approval_required. The studio sends the invite link to the homeowner, who forwards it to her parents; their taps arrive as join requests, the designer approves the two numbers the homeowner named, and rejects a third nobody recognises. At handover the studio resets the link so an old forward cannot add anyone later. Across a quarter's projects the funnel shows most invited people joining, and where the rest fell away.
Recommended practice
Best practices for a group invite link
- Give the group a subject the invitee will recognise, such as the project or batch name, so the invite looks expected.
- Send the link with a sentence on who else will be in the group and why.
- Log every join, request, approval, removal and leave from the webhooks as the group's membership record.
- Create Groups-specific templates; Meta does not report template performance metrics for templates used in groups.