Portal Community

Shared Input Pattern

Every operation on this node takes the same top-level config keys, plus its own operation-specific fields:

KeyRequiredDescription
resource✓ YesOne of message, media, template, profile, phone-number, qrcode, group, commerce.
operation✓ YesThe operation within that resource, e.g. send-text.
accessToken✓ Yes*Bearer token for the Graph API call. Overridden by a configured vault credential when present. See Authentication & Setup.
phoneNumberIdDepends on operationRequired by most messaging/media/profile/phone-number/qrcode/group operations; not required by catalog- or business-account-scoped template and commerce operations.

* May come from a vault credential instead of inline config.

Everything else is specific to the chosen resource + operation pair — see that resource's page for the exact field list.

Shared Output Shape

A successful call returns a JSON object whose shape is documented on each operation's page. Message-send operations converge on a common shape (messageSent, messageId, phoneNumberId, to, status, errorCode, errorMessage, payload); every other resource returns the fields relevant to that operation plus the raw Graph API response under payload/RawResponse for anything not explicitly surfaced.

How Errors Surface

SituationError CodeWhat happens
No access token resolvable (vault or inline)MISSING_ACCESS_TOKENFails before any HTTP call is made.
Missing phoneNumberId on an operation that requires itMISSING_PHONE_NUMBER_IDFails before any HTTP call is made.
Missing a required operation-specific fieldMISSING_FIELDFails with the field name in the message, before any HTTP call is made.
Unknown resource/operation pairunsupported_operationThe router falls through to the base "operation not found" handler.
Routed but unimplemented operation (send-and-wait, Trigger ops)not_implementedReturns immediately with a clear message — no HTTP call attempted.
Graph API returns an error response(passed through)Surfaces on the error output port with the Graph API's own error code/message in errorCode/errorMessage.
HTTP 429 (rate limited)Retried automatically by WhatsAppRateLimitHandler before surfacing. See Troubleshooting.
Two output ports: like every ProcessEngine node, results land on either the success or error output port (OutputMapping.GetOrCreatePortSuccessAndError()), so downstream branches can react differently to failures without inspecting errorCode directly.