Cross-platform DM

Direct messaging across platforms.

2 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.

dm.send

POST · mutating

Send a direct message on any supported platform (twitter, linkedin, instagram, slack, discord, sms). Routes through Composio for social platforms and Twilio for SMS. Messages are mirrored into a platform conversation so the thread stays visible in the comms hub.

When the agent calls it: Use this to send DMs on any platform. For SMS, also set fromPhoneNumberId. The to field is platform-specific: Twitter → @handle or user_id, LinkedIn → profile URL or URN, Instagram → username, Slack → channel/user id, Discord → channel_id, SMS → E.164 phone number.

  • AI tool: dm_send
  • API: POST /api/invoke/dm.send

Input

Field Type Required Description
platform string yes Platform slug — e.g. twitter, linkedin, instagram, slack, discord, telegram, whatsapp, sms, or any connected channel provider.
to string yes Recipient handle, username, user ID, or phone number (for SMS).
body string yes
conversationId string — Existing conversation to continue. If omitted, one is found or created.
actorId string — Which agent/actor persona sends. Falls back to workspace default.
fromPhoneNumberId string —
composioUserId string —
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "platform": {
      "type": "string",
      "minLength": 1,
      "description": "Platform slug — e.g. twitter, linkedin, instagram, slack, discord, telegram, whatsapp, sms, or any connected channel provider."
    },
    "to": {
      "type": "string",
      "minLength": 1,
      "description": "Recipient handle, username, user ID, or phone number (for SMS)."
    },
    "body": {
      "type": "string",
      "minLength": 1
    },
    "conversationId": {
      "description": "Existing conversation to continue. If omitted, one is found or created.",
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "description": "Which agent/actor persona sends. Falls back to workspace default.",
      "type": "string",
      "minLength": 1
    },
    "fromPhoneNumberId": {
      "type": "string",
      "minLength": 1
    },
    "composioUserId": {
      "type": "string"
    }
  },
  "required": [
    "platform",
    "to",
    "body"
  ]
}

dm.list_threads

GET

List DM threads on a platform. Returns both locally-mirrored conversations and, when Composio is connected, live threads from the platform.

  • AI tool: dm_list_threads
  • API: GET /api/invoke/dm.list_threads

Input

Field Type Required Description
platform string — Filter to a single platform slug (twitter, linkedin, sms, …). Omit to list all.
composioUserId string —
limit integer —
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "platform": {
      "description": "Filter to a single platform slug (twitter, linkedin, sms, …). Omit to list all.",
      "type": "string"
    },
    "composioUserId": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}