draft_dm
posts:writeuses credits
Write a fresh next message for a tracked X DM conversation in the user's voice: an opener when nothing's logged, a reply when they spoke last, a follow-up when the user did. guidance steers it, e.g. 'ask for a quick call' or 'shorter'.
When the model thinks no message should be sent (they said no), draftText is empty and draftReason says why. Spends AI credits and sends nothing; the user sends it on X via sendOnXUrl.
Input
conversationIdstring (uuid)requiredguidancestringmin length 1 · max length 500
Permission
Needs the posts:write scope: create drafts. It changes your workspace, so clients may ask you to confirm each call.
Example call
Your assistant sends this for you. It is shown so you can see the shape of a call, with placeholder values for the required fields.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "draft_dm", "arguments": { "conversationId": "3f8e2c1a-0000-4000-8000-000000000000" } }}Same action over the REST API
The tool runs POST /v1/orgs/{orgId}/dms/{conversationId}/draft as the signed-in user, with the same validation, approval rules and limits. See it in the X DMs API reference.