# WebhookPayloadMessageMetadata
## Properties
**standby** | Option<**bool**> | WhatsApp only. true when this inbound arrived while Meta Business Agent held the conversation: the agent answers it, and Zernio only observes. Sending a reply takes control back. See conversation.control_changed. | [optional]
**quoted_message_id** | Option<**String**> | Raw platform envelope id (WhatsApp `context.id`; Instagram and Facebook Messenger `reply_to.mid`) of the message this one is a quote-reply to, forwarded verbatim. It may not equal the stored id of that message (see `quotedMessage.platformMessageId`). On outgoing messages the same field appears on `message.sent`, but only on some surfaces: see WebhookPayloadMessageSent.metadata.quotedMessageId. | [optional]
**quoted_message** | Option<[**models::WebhookPayloadMessageMetadataQuotedMessage**](WebhookPayloadMessageMetadataQuotedMessage.md)> | | [optional]
**quick_reply_payload** | Option<**String**> | Payload from a quick reply tap (Facebook/Instagram Messenger). | [optional]
**postback_payload** | Option<**String**> | Payload from a postback button tap (Facebook/Instagram Messenger). | [optional]
**postback_title** | Option<**String**> | Title of the tapped postback button (Facebook/Instagram Messenger). | [optional]
**callback_data** | Option<**String**> | Callback data from an inline keyboard button tap (Telegram). | [optional]
**interactive_type** | Option<**InteractiveType**> | WhatsApp only. Which kind of interactive reply the user sent: `button_reply` (tap on an interactive button), `list_reply` (tap on a list row), or `nfm_reply` (a WhatsApp Flow submission or an `address_message` submission, see `nfmReplyName`). (enum: button_reply, list_reply, nfm_reply) | [optional]
**interactive_id** | Option<**String**> | WhatsApp only. The `id` of the tapped button or list row, matching the `id` you supplied when the message was sent. Not set for Flow responses. | [optional]
**button_payload** | Option<**String**> | WhatsApp only. Payload attached to a tapped template button. Template buttons emit a plain `button` webhook (not an interactive reply), so `interactiveType` is empty while this field is populated. | [optional]
**flow_response_json** | Option<**String**> | WhatsApp only. Raw `nfm_reply.response_json` string returned by a Flow submission. Useful if you need the exact wire payload; for typed access use `flowResponseData` instead. | [optional]
**flow_response_data** | Option<**std::collections::HashMap<String, serde_json::Value>**> | WhatsApp only. Parsed Flow response JSON. Populated when `flowResponseJson` is valid JSON; otherwise omitted. Keys and value types depend on the specific Flow that was submitted. An `address_message` submission (`nfmReplyName: address_message`) carries the address fields (`name`, `address`, `city`, `state`, `in_pin_code`, ...), either at the top level or nested under `values`; read both. | [optional]
**nfm_reply_name** | Option<**String**> | WhatsApp only. `nfm_reply.name` as Meta sent it, e.g. `flow` or `address_message`. Address submissions share the `nfm_reply` envelope with Flow submissions and are otherwise indistinguishable in `flowResponseData`; use this field to tell them apart. | [optional]
**order** | Option<[**models::WebhookPayloadMessageMetadataOrder**](WebhookPayloadMessageMetadataOrder.md)> | | [optional]
**referred_product** | Option<[**models::WebhookPayloadMessageMetadataReferredProduct**](WebhookPayloadMessageMetadataReferredProduct.md)> | | [optional]
**location** | Option<[**models::WebhookPayloadMessageMetadataLocation**](WebhookPayloadMessageMetadataLocation.md)> | | [optional]
**contacts** | Option<**Vec<std::collections::HashMap<String, serde_json::Value>>**> | WhatsApp only. Contact cards the user shared, forwarded verbatim from Meta. Read `contactsOrigin` before treating any number here as the sender's own. | [optional]
**contacts_origin** | Option<**ContactsOrigin**> | WhatsApp only. How the contact card was shared. `contact_request` means the user tapped a `request_contact_info` button, so the number is their own and consented. `other` means they picked a card from their address book: it may be anyone's, and must NOT be stored as the sender's identity. Omitted when Meta sends no origin. (enum: contact_request, other) | [optional]
**story_reply** | Option<[**models::WebhookPayloadMessageMetadataStoryReply**](WebhookPayloadMessageMetadataStoryReply.md)> | | [optional]
**is_story_mention** | Option<**bool**> | Instagram only. True when the message was generated by an IG user mentioning the account in their own story (`story_mention` attachment type). Mutually exclusive in practice with `storyReply`. | [optional]
**referral** | Option<[**models::WebhookPayloadMessageMetadataReferral**](WebhookPayloadMessageMetadataReferral.md)> | | [optional]
**unsupported** | Option<[**models::WebhookPayloadMessageMetadataUnsupported**](WebhookPayloadMessageMetadataUnsupported.md)> | | [optional]
**no_renderable_content** | Option<**bool**> | Instagram / Facebook Messenger only. Set when the message carries nothing an integrator can render (a `template` attachment with no text and no parseable content, or Meta's own `is_unsupported` flag). Sibling of `unsupported` above (WhatsApp only, carries Meta's error code/title/details): this field has no error envelope, only the boolean. Absence means \"not flagged\", never \"checked and renderable\". | [optional]
**tiktok_message_type** | Option<**String**> | TikTok only. The message type as TikTok reports it, forwarded verbatim (for example image, video, sticker, share_post, emoji, reaction, template). Present on every TikTok DM that is not plain text; those arrive with text empty and, for image, video, share_post, sticker and emoji, an attachment (share_post as type share with the embed url and payload.videoId; sticker/emoji as type sticker, url signed and expiring). | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)