Portal Community
API endpoint: Calls GET /{phoneNumberId}/groups and returns all groups where the business phone number is a participant or admin. Each record includes id, subject, and description.

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredPermanent System User access token. Store in BizFirst Credentials Manager.
phoneNumberIdRequiredNumeric string ID of the business phone number whose groups are listed.
apiVersionOptionalMeta Graph API version. Defaults to v18.0.

Operation

No additional operation fields are required. The listing is automatically scoped to the connection phone number ID.

Sample Configuration

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

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty.
phoneNumberId is requiredNo Phone Number ID supplied.
100 (Meta)Invalid Phone Number ID or the number is not registered.
200 (Meta)Insufficient permissions to list groups.

Output

Success Port

FieldTypeDescription
groupsarrayArray of group objects. Each contains groupId, subject, and description.
countnumberTotal number of groups returned.
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

{
  "groups": [
    {
      "groupId": "120363xxxxxxxxxx@g.us",
      "subject": "Project Alpha Team",
      "description": "Daily standup and updates for Project Alpha."
    },
    {
      "groupId": "120363yyyyyyyyyy@g.us",
      "subject": "VIP Customer Tier",
      "description": null
    }
  ],
  "count": 2,
  "status": "success"
}

Expression Reference

ValueExpressionNotes
All groups{{ $output.listGroups.groups }}Pipe into SplitInBatches to process each group individually.
Group count{{ $output.listGroups.count }}Compare to account group limit for capacity monitoring.
Filter by name prefix{{ $output.listGroups.groups.filter(g => g.subject.startsWith('VIP-')) }}Use in a Function node to target specific groups by naming convention.

Node Policies & GuardRails

Policy AreaRecommendation
Credential storageStore the access token in BizFirst Credentials Manager.
Group limitsWhatsApp enforces limits on the number of groups a business number can join or create. Run this operation weekly to track usage.
Error portConnect the error port. An empty groups array is a valid success — handle it explicitly to prevent downstream errors when no groups exist.

Examples

Stale Group Identification

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

A weekly housekeeping workflow lists all groups. A Function node cross-references each groupId against the project table, filtering groups associated with closed projects older than 30 days. The matched groups are passed to a SplitInBatches node that calls group/delete for each.

Convention-Based Broadcast

{
  "resource": "group",
  "operation": "get",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "{{ $env.BROADCAST_PHONE_ID }}"
}

A campaign broadcast workflow lists all groups and a Function node filters those whose subject starts with "PROMO-". A SplitInBatches node iterates the filtered list and sends the promotional message to each matching group via message/sendTemplate.