Send Direct Message To Conversation

twitter.send_direct_message_to_conversation
ActionChat & messagingconnection required

Calls the X (Twitter) API with the connection's credentials.

Send a direct message into an existing conversation, including a group DM.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
X (Twitter)
Secret shape
the X OAuth2 user-context access token, or {"access_token": "…"}
Resolved by
config.connection_id, else node.connection_id

Configuration

3 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
dm_conversation_id
The conversation id, e.g. the 'dm_conversation_id' an earlier DM emitted.
stringYes——1346889436626259968
text
Message text. Optional when media_id is set. Supports {{ }}.
stringNo——Following up on this thread.
media_id
A media id from twitter.upload_media (uploaded with a dm_* category).
stringNo———
  • At least one of text, media_id must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "dm_conversation_id": "1346889436626259968",
  "text": "Following up on this thread."
}

Output

One shape.

result

FieldTypeExample
dm_conversation_id
The conversation the message landed in.
string—
dm_event_id
Id of the message event that was created.
string—
{
  "dm_conversation_id": "",
  "dm_event_id": ""
}

Notes

  • X API access is tiered and metered: most read endpoints need a paid plan, and since 6 February 2026 new developers get pay-per-use credits rather than a free tier. A 403 here usually means the plan, not the code.
  • The connection's access token must already carry the scopes this node needs; X does not grant them per call, so a missing scope is a 401 on every run.
  • Needs the OAuth2 scopes dm.write, tweet.read, users.read.

See Send Direct Message To Conversation run in a workflow.

In a technical demo we add the X (Twitter) connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.