Portal Community

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredPermanent System User access token from Meta Business Manager. Store in BizFirst Credentials Manager.
phoneNumberIdRequiredNumeric string ID of the WhatsApp Business phone number whose profile you want to retrieve.
apiVersionOptionalMeta Graph API version, e.g. v18.0. Defaults to v18.0.

Operation

This operation has no additional fields beyond the connection parameters. The node uses the phoneNumberId from the connection section to identify the business profile to retrieve.

FieldRequiredDescription
No additional operation fields required.

Sample Configuration

{
  "resource": "profile",
  "operation": "getBusiness",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345"
}

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty or missing.
phoneNumberId is requiredThe phoneNumberId field is empty or missing.
100 (Meta)Phone number ID not found or the token does not have access to it.
190 (Meta)Access token expired or invalid.
200 (Meta)Insufficient permissions. Token requires whatsapp_business_management scope.

Output

Success Port

Fires when the business profile is successfully retrieved. Fields may be null if not configured in Meta Business Manager.

FieldTypeDescription
aboutstringThe business "About" status text shown on the profile (max 139 chars).
addressstringBusiness physical address.
descriptionstringLonger business description shown on the profile page.
emailstringBusiness contact email address.
profilePictureUrlstringURL of the business profile picture. Publicly accessible.
websitesarrayArray of up to 2 website URLs associated with the business.
verticalstringIndustry category. Examples: RETAIL, FINANCE, HEALTH, EDUCATION, ENTERTAINMENT, HOSPITALITY, NOT_A_BIZ.
statusstring"success" on success.
errorCodestringEmpty on success.
errorMessagestringEmpty on success.
rawResponsestringFull raw JSON response from Meta.

Error Port

FieldTypeDescription
statusstring"failed" or "error".
errorCodestringMeta error code.
errorMessagestringHuman-readable description.
rawResponsestringRaw API error JSON for diagnostics.

Sample Output

{
  "about": "Your trusted partner for fast, reliable deliveries.",
  "address": "123 Commerce Street, San Francisco, CA 94105",
  "description": "BizFirstAI Commerce provides same-day and next-day delivery across the Bay Area. We partner with 500+ local businesses.",
  "email": "support@bizfirstai.com",
  "profilePictureUrl": "https://pps.whatsapp.net/v/t61.29466-19/...",
  "websites": ["https://bizfirstai.com", "https://shop.bizfirstai.com"],
  "vertical": "RETAIL",
  "status": "success",
  "errorCode": null,
  "errorMessage": null,
  "rawResponse": "{\"data\":[{\"about\":\"Your trusted partner...\",\"address\":\"123 Commerce...\",\"description\":\"BizFirstAI Commerce...\",\"email\":\"support@bizfirstai.com\",\"profile_picture_url\":\"https://pps.whatsapp.net/...\",\"websites\":[\"https://bizfirstai.com\",\"https://shop.bizfirstai.com\"],\"vertical\":\"RETAIL\"}]}"
}

Expression Reference

ValueExpressionNotes
About text{{ $output.getBusinessProfile.about }}Short status/tagline. Null if not set.
Address{{ $output.getBusinessProfile.address }}Physical address. Use for display or validation.
Description{{ $output.getBusinessProfile.description }}Full business description text.
Email{{ $output.getBusinessProfile.email }}Contact email. Null if not configured.
Profile picture URL{{ $output.getBusinessProfile.profilePictureUrl }}Publicly accessible. Null if no picture is set.
Websites{{ $output.getBusinessProfile.websites }}Array of URLs. Use .websites[0] for the primary website.
Vertical (industry){{ $output.getBusinessProfile.vertical }}Industry category string.
Status{{ $output.getBusinessProfile.status }}"success" on success.

Node Policies & GuardRails

Policy AreaRecommendation
Null field handlingAll profile fields except status may be null if not configured. Always use null-safe expressions and provide fallback values in downstream nodes that display profile data.
Credential storageStore the access token in BizFirst Credentials Manager. Never paste it into node configuration as plain text.
CachingThe business profile changes infrequently. Cache the result for 1 hour in workflow session variables to avoid redundant API calls when profile data is needed multiple times in a workflow run.
Error port handlingAlways connect the error port. A 200 permissions error indicates the token scope needs updating in Meta Business Manager.
Profile picture URLThe profile picture URL is a dynamic WhatsApp CDN URL. Do not store it long-term — URLs can change. Fetch fresh when needed.

Examples

Profile Completeness Check

{
  "resource": "profile",
  "operation": "getBusiness",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345"
}

A new tenant setup workflow calls this node and checks each output field in a Function node. If any required field (address, email, description) is null, it sends a notification to the account owner with a list of missing fields and a link to Meta Business Manager to complete the profile setup.

Profile Change Detection

{
  "resource": "profile",
  "operation": "getBusiness",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345"
}

A daily monitoring workflow fetches the live profile and compares each field against values stored in a database table. If any field has changed, it creates an audit log entry recording the old value, new value, detection timestamp, and triggers a Slack alert for the account manager to review the change.

Multi-Account Profile Sync

// Loop node iterates over all managed phone number IDs
{
  "resource": "profile",
  "operation": "getBusiness",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "{{ $loop.currentItem.phoneNumberId }}"
}

A multi-tenant management workflow iterates over all registered phone number IDs and retrieves each profile. The collected data is upserted into a central CRM as a "WhatsApp Business Profile" record linked to each tenant account, giving the support team a single view of all managed WhatsApp profiles.