Portal Community
API endpoint: Calls DELETE /{groupId}/participants/{phoneId} where phoneId is the participant's WhatsApp ID (wa_id). Retrieve the wa_id from group/getParticipants before calling this operation.

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 admin.
apiVersionOptionalMeta Graph API version. Defaults to v18.0.

Operation

FieldRequiredDescription
groupIdRequiredThe WhatsApp group ID.
participantIdRequiredThe participant's WhatsApp ID (wa_id from group/getParticipants). This is the numeric WhatsApp identifier, not a phone number string.

Sample Configuration

{
  "resource": "group",
  "operation": "remove-member",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "120363xxxxxxxxxx@g.us",
  "participantId": "14155552671"
}

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty.
phoneNumberId is requiredNo Phone Number ID supplied.
groupId is requiredNo group ID provided.
participantId is requiredNo participant WA ID provided.
100 (Meta)Group not found or participant is not a member of the group.
200 (Meta)Business phone number is not a group admin.

Output

Success Port

FieldTypeDescription
groupIdstringThe group ID.
statusstring"member_removed".
rawResponsestringFull raw JSON from the Meta Graph API.

Error Port

FieldTypeDescription
groupIdstringGroup ID echoed from input.
statusstring"failed" or "error".
errorCodestringMeta error code or "timeout".
errorMessagestringHuman-readable error description.

Sample Output

{
  "groupId": "120363xxxxxxxxxx@g.us",
  "status": "member_removed"
}

Expression Reference

ValueExpressionNotes
Removal success{{ $output.removeParticipant.status }}Confirm "member_removed" before updating the local membership record.

Node Policies & GuardRails

Policy AreaRecommendation
Credential storageStore the access token in BizFirst Credentials Manager.
WA ID retrievalAlways retrieve the wa_id via group/getParticipants immediately before calling this node. Do not rely on cached WA IDs — they may be stale.
Audit loggingLog every removal with the group ID, participant WA ID, phone number, removal reason, timestamp, and initiating workflow/user. Required for HR and compliance processes.
Not-found idempotencyA 100 not-found error when removing a participant who is already not in the group is safe to treat as success in offboarding workflows.
Error portConnect the error port.

Examples

Employee Offboarding — Cross-Group Removal

{
  "resource": "group",
  "operation": "remove-member",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "{{ $item.groupId }}",
  "participantId": "{{ $item.leavingEmployeeWaId }}"
}

An offboarding workflow first calls group/getMany to retrieve all groups. For each group, it calls group/getParticipants and checks whether the leaving employee's phone number appears. If found, the wa_id is extracted and passed to this node for removal. All removals are logged to the HR system with the exit timestamp.

Subscription Lapse Removal

{
  "resource": "group",
  "operation": "remove-member",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "groupId": "{{ $env.VIP_GROUP_ID }}",
  "participantId": "{{ $input.lapsedCustomerWaId }}"
}

When a customer's VIP subscription lapses, the membership system fires a webhook. The workflow retrieves the customer's wa_id from the customer table (stored when they were originally added to the group) and calls this node to remove them from the VIP group. A farewell message is sent to the customer via direct message before removal, informing them of their subscription status.