Send Media Message

matrix.send_media_message
ActionChat & messagingconnection required

Calls the Matrix API with the connection's credentials.

Post an already-uploaded file into a room as an image, file, audio or video message.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
Matrix
Secret shape
the account access token, or {"access_token": "…"}
Config it needs
base_url, user_id, default_room_id
Resolved by
config.connection_id, else node.connection_id

Configuration

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

FieldTypeRequiredDefaultConstraintsExample
room_id
The room id, e.g. !AbCdEf:example.org. Falls back to the connection's default room; resolve a #alias:server with matrix.resolve_room_alias.
stringNo——!AbCdEf:example.org
mxc_uri
The mxc:// URI matrix.upload_media returned for the file.
stringYes——mxc://example.org/AbCdEf
filename
The file name shown in the room.
stringYes———
msgtype
How clients should render the file.
stringNom.fileone of "m.image", "m.file", "m.audio", "m.video"—
info
Optional metadata as JSON, e.g. {"mimetype": "image/png", "size": 1234}.
objectNo——{"mimetype":"image/png","size":1234}
txn_id
Transaction id that makes this send idempotent — the same id never posts twice. Leave blank for a fresh id on every attempt.
stringNo———

Example configuration

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

{
  "info": {
    "mimetype": "image/png",
    "size": 1234
  },
  "msgtype": "m.file",
  "mxc_uri": "mxc://example.org/AbCdEf",
  "room_id": "!AbCdEf:example.org"
}

Output

One shape.

result

FieldTypeExample
event_id
The id of the event that was sent.
string$abc123:example.org
room_id
The room the event was sent to.
string—
txn_id
The transaction id used; resend with it to avoid a duplicate.
string—
{
  "event_id": "$abc123:example.org",
  "room_id": "",
  "txn_id": ""
}

Notes

  • The connection's base_url is the homeserver (e.g. https://matrix.example.org), not the account's server name; the two differ whenever .well-known delegation is in use.
  • Rooms are addressed by room id (!abc:server). Resolve a #alias:server with matrix.resolve_room_alias first, or set a default room on the connection.
  • Matrix never carries bytes in an event: upload the file with matrix.upload_media first and send the mxc:// URI it returns.

See Send Media Message run in a workflow.

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