Portal Community

When to Use

Media ID required: Stickers must be sent using a pre-uploaded mediaId. You cannot send a sticker by URL. Always upload your sticker file first via media/upload with MIME type image/webp, then use the returned mediaId here. Store the mediaId in your workflow configuration for reuse.

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredPermanent System User access token. Store in BizFirst Credentials Manager.
phoneNumberIdRequiredNumeric string ID of the sending WhatsApp Business phone number.
apiVersionOptionalMeta Graph API version. Defaults to v18.0.

Operation

FieldRequiredDescription
toRequiredRecipient's phone number with country code, no + prefix (e.g. 14155552671).
mediaIdRequiredID of the uploaded WebP sticker from media/upload. Sticker must be WebP format, static or animated. Maximum size: 100 KB for static, 500 KB for animated. Recommended dimensions: 512 x 512 px.

Sticker Requirements

PropertyRequirement
FormatWebP only (MIME type image/webp).
Dimensions512 x 512 pixels. Non-square stickers may not display correctly.
Static max size100 KB
Animated max size500 KB
BackgroundTransparent background recommended for best visual result.
SourceMust be uploaded via media/upload first. URL-based stickers are not supported.

Sample Configuration

{
  "resource": "message",
  "operation": "sendSticker",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "to": "{{ $input.customerPhone }}",
  "mediaId": "{{ $config.celebrationStickerMediaId }}"
}

Validation Errors

ErrorCause
accessToken is requiredThe accessToken field is empty.
phoneNumberId is requiredThe phoneNumberId field is empty.
to is requiredThe to field is empty.
mediaId is requiredStickers require a mediaId. You cannot send a sticker by URL.
131052 (Meta)The media type is not WebP, or the sticker exceeds the size limit.
131047 (Meta)24-hour customer service window expired.

Output

Success Port

FieldTypeDescription
messageIdstringUnique WhatsApp message ID (wamid).
phoneNumberIdstringThe sending phone number ID.
tostringThe recipient phone number.
statusstring"sent" on success.
errorCodestringEmpty on success.
errorMessagestringEmpty on success.
rawResponsestringFull raw JSON from the Meta API.

Error Port

FieldTypeDescription
statusstring"failed" or "error".
errorCodestringMeta error code or BizFirst validation code.
errorMessagestringHuman-readable error description.
rawResponsestringRaw API error response.

Sample Output

{
  "messageId": "wamid.HBgLMTQxNTU1NTI2NzEVAgARGBIxQzM4NjhGQTExMjQ3RDMAA",
  "phoneNumberId": "123456789012345",
  "to": "14155552671",
  "status": "sent",
  "errorCode": null,
  "errorMessage": null,
  "rawResponse": "{\"messaging_product\":\"whatsapp\",\"contacts\":[{\"input\":\"14155552671\",\"wa_id\":\"14155552671\"}],\"messages\":[{\"id\":\"wamid.HBgLMTQxNTU1NTI2NzEVAgARGBIxQzM4NjhGQTExMjQ3RDMAA\"}]}"
}

Expression Reference

ValueExpressionNotes
Message ID{{ $output.sendSticker.messageId }}Retain for audit trail. Rarely needed for downstream operations.
Recipient{{ $output.sendSticker.to }}For delivery confirmation logging.
Status{{ $output.sendSticker.status }}Branch on outcome in IfCondition.

Node Policies & GuardRails

Policy AreaRecommendation
Credential storageStore the access token in BizFirst Credentials Manager. Never inline in configuration.
Sticker pre-upload patternUpload all stickers via media/upload during a one-time setup workflow, not inside a per-message workflow. Store the resulting mediaId values in workflow configuration or a database. Sticker mediaIds are persistent and do not expire.
WebP format onlyConvert PNG or GIF stickers to WebP format before uploading. Use a Function node with a library like Squoosh or a server-side conversion endpoint if your source stickers are not WebP.
File size complianceValidate sticker file size before uploading: max 100 KB for static, 500 KB for animated. Oversized stickers are rejected at upload time with a 131052 error.
Professional toneReserve stickers for consumer-facing, informal workflows. Stickers may not align with the expected communication tone for B2B, financial services, healthcare, or legal workflows.
24-hour windowStickers are free-form messages and subject to the 24-hour customer service window. They cannot be sent via templates.

Examples

Milestone Celebration Sticker

{
  "resource": "message",
  "operation": "sendSticker",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "to": "{{ $input.customerPhone }}",
  "mediaId": "{{ $config.goldStarStickerMediaId }}"
}

A loyalty program workflow sends a branded gold star sticker when a customer reaches a new tier. The sticker mediaId is stored in workflow configuration. A follow-up message/sendText node sends the formal congratulations and tier benefits.

Session Close Farewell

{
  "resource": "message",
  "operation": "sendSticker",
  "accessToken": "{{ $credentials.whatsAppToken }}",
  "phoneNumberId": "123456789012345",
  "to": "{{ $input.customerPhone }}",
  "mediaId": "{{ $config.wavingStickerMediaId }}"
}

At the end of a successful support session resolution, the chatbot sends a branded waving character sticker before closing the conversation. The sticker creates a warm, humanised ending that increases customer satisfaction scores compared to a plain "Thank you for contacting us" text message.