The $body context variable in OSB contains the actual message payload that needs to be published. When a Publish action is invoked, it sends this payload to the target endpoint. The $header variable contains transport headers (not message content). $attachments is for MIME attachments, not the primary message payload. User-defined variables can hold temporary data but are not the standard input for Publish actions. The $body variable is specifically designed to carry the message content through the service pipeline.