Portal Community
API endpoint: Calls POST /{phoneNumberId}/groups with messaging_product, subject, and participants (array of phone numbers). The business phone number is automatically added as the group admin. Returns the new group's id.

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredPermanent System User access token. Store in BizFirst Credentials Manager.
phoneNumberIdRequiredNumeric string ID of the business phone number that will create and admin the group.
apiVersionOptionalMeta Graph API version. Defaults to v18.0.

Operation

FieldRequiredDescription
subjectRequiredGroup name (subject). Max 25 characters. Visible to all participants.
participantsRequiredArray of participant phone numbers in E.164 format (e.g. ["14155552671", "447911123456"]). At least one participant is required.

Sample Configuration

{
  "resource": "group",
  "operation": "create",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "subject": "Project Alpha Team",
  "participants": ["14155552671", "447911123456", "61412345678"]
}

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty.
phoneNumberId is requiredNo Phone Number ID supplied.
subject is requiredNo group name provided.
subject too longGroup subject exceeds 25 characters.
participants is requiredNo participants array provided or array is empty.
100 (Meta)One or more phone numbers in participants is not a valid WhatsApp account.
131026 (Meta)The business number is not permitted to create groups — check WABA permissions.

Output

Success Port

FieldTypeDescription
groupIdstringThe new group's ID. Store this — required for all subsequent group operations.
subjectstringGroup name as stored.
statusstring"created".
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

{
  "groupId": "120363xxxxxxxxxx@g.us",
  "subject": "Project Alpha Team",
  "status": "created",
  "rawResponse": "{\"id\":\"120363xxxxxxxxxx@g.us\"}"
}

Expression Reference

ValueExpressionNotes
Group ID{{ $output.createGroup.groupId }}Store immediately in the project/event database. Required for all subsequent group operations.
Group subject{{ $output.createGroup.subject }}Confirm the group name matches the intended value.
Creation status{{ $output.createGroup.status }}Gate downstream steps — proceed only if "created".

Node Policies & GuardRails

Policy AreaRecommendation
Credential storageStore the access token in BizFirst Credentials Manager.
Group ID persistenceStore the returned groupId immediately in a database. It is the only permanent reference to the group — there is no lookup-by-name API.
Participant phone numbersParticipants must be in E.164 format without the + prefix (e.g. 14155552671). Validate and normalise numbers in a Function node before passing them as the participants array.
Group limitThe WhatsApp Business API enforces limits on the number of groups a phone number can create. Monitor group creation frequency and clean up unused groups via group/delete.
Error portConnect the error port. A 131026 error means the WABA account does not have group creation permissions — contact Meta support to enable it.

Examples

Automated Project Team Group

{
  "resource": "group",
  "operation": "create",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "subject": "{{ $input.projectName }}",
  "participants": "{{ $input.teamPhoneNumbers }}"
}

A project creation webhook triggers this workflow. The project name is used as the group subject and the team members' phone numbers (normalised to E.164 without + by a preceding Function node) are passed as participants. The returned groupId is stored in the project record, and a welcome message is sent via message/sendText with recipient_type: group using the new group ID.

Incident Response Bridge

{
  "resource": "group",
  "operation": "create",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "subject": "INC-{{ $input.incidentId }} Bridge",
  "participants": ["{{ $input.oncallEngineer }}", "{{ $input.incidentCommander }}"]
}

A PagerDuty webhook fires when a critical alert is raised. This node creates a dedicated incident bridge group named with the incident ID. The on-call engineer and incident commander (retrieved from the on-call schedule workflow step) are added immediately. An initial message is posted with the incident summary and a link to the monitoring dashboard.