Send message
facebook_send_messageSend one private Messenger reply to a person as your Page within the 24-hour messaging window, with a dry-run preview by default and support for a single attachment.
Instructions
Send ONE PRIVATE Messenger message as the Page — text, or one attachment (image / audio / video / file by public HTTPS URL or reusable attachment_id) — as a reply inside the 24-hour standard messaging window (messaging_type=RESPONSE). This is not a public comment reply — use the moderation tools for that. Dry run by default: it returns a preview and sends nothing unless apply:true. Pass conversation_id so the messaging window and the recipient can be verified before sending. If the send outcome is ever ambiguous the message may ALREADY have been delivered — verify with facebook_get_conversation instead of resending. Pass reply_to_message_id to quote one message of the thread. No message tags are supported: Outside the 24-hour standard messaging window a plain RESPONSE message is rejected by Facebook: a message tag would be required. Every message tag now hard-fails except HUMAN_AGENT, which needs a separate App Review approval and is NOT supported by this server — so there is no tag this tool can send. Options: (1) wait until the person messages the Page again, which reopens the window; (2) if they commented in the last 7 days, reply privately with facebook_private_reply; (3) answer publicly on the post. Never resend blindly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| apply | No | Set true to actually perform the write. Omitted or false ⇒ the server decides from its configured write mode: usually a dry run that returns a plan preview and changes nothing, but a server (or package) configured apply-first performs the write. To be certain nothing happens, read the result: a dry run always reports the plan and says the write was NOT performed. | |
| message | No | The message text (1–2000 characters). Sent verbatim to a real person; there is no unsend. Exactly one of message / saved_reply_id. | |
| plan_id | No | The `planId` returned by a preceding dry-run preview of this same tool. Required for irreversible and spend-tier writes; plans expire a few minutes after they are created. | |
| profile | No | Page profile key (e.g. "brand-a") or a raw Page ID. Omitted ⇒ the default Page (FB_PAGE_ID). | |
| attachment | No | ONE attachment instead of text: exactly one of url / attachment_id. A message carries text or one attachment, never both. | |
| recipient_id | No | The recipient's page-scoped ID (PSID). Optional when conversation_id is given (it is derived from the thread); required otherwise, and then the messaging window cannot be verified client-side. | |
| saved_reply_id | No | Id of a saved reply (facebook_list_saved_replies) to send instead of `message`. Its text is resolved now and bound to the plan, so editing the template after the preview makes the apply diverge. | |
| conversation_id | No | Conversation id from facebook_list_conversations. Strongly preferred: it identifies the recipient and lets the 24-hour window be checked before the send. | |
| reply_to_message_id | No | Message id (mid, from facebook_get_conversation) this reply quotes. Must belong to the same conversation. Optional. |