Portal Community
API endpoint: Calls GET /{groupId}/participants. Returns an array of participant objects each containing wa_id, phone_number, and is_admin. Includes the business phone number itself if it is a participant.

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredPermanent System User access token. Store in BizFirst Credentials Manager.
phoneNumberIdRequiredNumeric string ID of the business phone number (must be a group member).
apiVersionOptionalMeta Graph API version. Defaults to v18.0.

Operation

FieldRequiredDescription
groupIdRequiredThe WhatsApp group ID.

Sample Configuration

{
  "resource": "group",
  "operation": "get-members",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "120363xxxxxxxxxx@g.us"
}

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty.
phoneNumberId is requiredNo Phone Number ID supplied.
groupId is requiredNo group ID provided.
100 (Meta)Group not found or phone number is not a group member.
200 (Meta)Insufficient permissions to read group members.

Output

Success Port

FieldTypeDescription
membersarrayArray of participant objects. Each contains waId, phoneNumber, and isAdmin.
countnumberTotal number of participants.
statusstring"success".
rawResponsestringFull raw JSON from the Meta Graph API.

Error Port

FieldTypeDescription
statusstring"failed" or "error".
errorCodestringMeta error code or "timeout".
errorMessagestringHuman-readable error description.

Sample Output

{
  "members": [
    { "waId": "14155552671", "phoneNumber": "+14155552671", "isAdmin": true },
    { "waId": "447911123456", "phoneNumber": "+447911123456", "isAdmin": false },
    { "waId": "61412345678", "phoneNumber": "+61412345678", "isAdmin": false }
  ],
  "count": 3,
  "status": "success"
}

Expression Reference

ValueExpressionNotes
All members{{ $output.getParticipants.members }}Pipe to SplitInBatches to process each member individually.
Member count{{ $output.getParticipants.count }}Compare to group capacity limit (1024) for monitoring.
Admin members only{{ $output.getParticipants.members.filter(m => m.isAdmin) }}Use in Function node to verify admin presence.
Member WA IDs{{ $output.getParticipants.members.map(m => m.waId) }}Use as the input list for group/removeParticipant operations.

Node Policies & GuardRails

Policy AreaRecommendation
Credential storageStore the access token in BizFirst Credentials Manager.
Privacy complianceThe returned phone numbers are personal data. Handle in compliance with your jurisdiction's data protection requirements. Do not log the full member list in workflow execution records.
Admin checkBefore performing admin-only operations, verify that the business phone number (your phoneNumberId) appears in the list with isAdmin: true.
Error portConnect the error port.

Examples

Offboarding Member Removal

{
  "resource": "group",
  "operation": "get-members",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "{{ $item.groupId }}"
}

An employee offboarding workflow iterates all known groups via SplitInBatches. For each group, this node retrieves the participant list. A Function node checks whether the departing employee's phone number ($input.leavingEmployeePhone) appears in members. If found, the workflow calls group/removeParticipant to remove them from that group.

Group Capacity Alert

{
  "resource": "group",
  "operation": "get-members",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "{{ $input.groupId }}"
}

Before adding new participants to a large group, this node retrieves the current participant count. An IfCondition checks whether {{ $output.getParticipants.count }} exceeds 900 (90% of the 1024 limit). If so, the workflow sends an alert to the group admin and halts the add operation until capacity is reviewed.